サーバーレス・アプリケーションを使用してデータ・ウェアハウスへのデータのロードを自動化

Oracle Functionsは、Oracle Cloud Infrastructure上に構築され、オープンソースのFn Projectエンジンを搭載した、サーバーレスで拡張性が高く完全マネージド型のFunctions-as-a-Serviceプラットフォームです。開発者は、Oracle Functionsを使用して、基礎となるインフラストラクチャのプロビジョニングや管理を心配せずにビジネス価値を提供するコードを記述およびデプロイできます。Oracle Functionsはコンテナネイティブで、Dockerコンテナ・イメージとしてパッケージ化されている関数です。

アーキテクチャ

このリファレンス・アーキテクチャは、サーバーレス・ファンクションを使用して、様々なデータベースまたはアプリケーションによって生成されるファイルからデータを抽出し、分析のためにデータをデータ・ウェアハウスにロードするプロセスを自動化する方法を示します。

アーキテクチャの図は、データ・フローを示しています。圧縮されたCSVファイルがOracle Cloud Infrastructure Object Storageの特定のバケットにアップロードされると、イベント・サービスがトリガーされます。生成されたイベントにより、アップロードされたファイルからデータが抽出され、データがOracle Autonomous Data Warehouseインスタンスにロードされます。データがデータ・ウェアハウスにロードされた後で、処理されたCSVファイルがOracle Cloud Infrastructure Object Storageの別のバケットに移動します。

autoload-adw.pngの説明が続きます
図autoload-adw.pngの説明

autoload-adw-oracle.zip

このアーキテクチャには次のコンポーネントがあります。

  • リージョン

    Oracle Cloud Infrastructureリージョンは、可用性ドメインと呼ばれる1つ以上のデータ・センターを含む、ローカライズされた地理的領域です。リージョンは他のリージョンから独立し、広大な距離(国または大陸間)を分離できます。

  • 可用性ドメイン

    可用性ドメインは、リージョン内のスタンドアロンの独立したデータ・センターです。各可用性ドメインの物理リソースは、フォルト・トレランスを提供する他の可用性ドメインのリソースから分離されます。可用性ドメインでは、電源や冷却、内部の可用性ドメイン・ネットワークなどのインフラストラクチャは共有されません。そのため、ある可用性ドメインでの障害が、リージョン内の他の可用性ドメインに影響することはほとんどありません。

  • 仮想クラウド・ネットワーク(VCN)とサブネット

    VCNは、Oracle Cloud Infrastructureリージョンで設定する、カスタマイズ可能なソフトウェア定義のネットワークです。VCNは、従来のデータ・センター・ネットワークと同様に、ネットワーク環境を完全に制御できます。VCNには複数の重複しないCIDRブロックを含めることができ、VCNの作成後に変更できます。VCNをサブネットに分割できます。サブネットは、リージョンまたは可用性ドメインにスコープ指定できます。各サブネットは、VCN内の他のサブネットと重複しない連続したアドレスの範囲で構成されます。サブネットのサイズは、作成後に変更できます。サブネットはパブリックまたはプライベートにできます。

    このリファレンス・アーキテクチャでは、関数はプライベート・リージョナル・サブネットにデプロイされます。

  • イベントおよび関数

    Oracle Cloud Infrastructureサービスでは、イベント(リソースの変更を記述する構造化メッセージ)を発行します。イベントは、作成、読取り、更新または削除(CRUD)操作、リソースのライフサイクル状態変更およびクラウド・リソースに影響するシステム・イベントに対して発行されます。

    Oracle Functionsでは、コードのデプロイ、直接コールまたはイベントに応じてトリガーできます。Oracle Functionsでは、Oracle Cloud Infrastructure RegistryでホストされているDockerコンテナが使用されます。

    このアーキテクチャでは、ファイルがOracle Cloud Infrastructure Object Storageのバケットにアップロードされると、イベントが発行されます。このイベントにより、Pythonベースの機能が呼び出され、ファイルからデータが抽出されてOracle Autonomous Data Warehouseにロードされます。その後、処理されたファイルが別のバケットに移動されます。

  • オブジェクト・ストレージ

    オブジェクト・ストレージを使用すると、データベースのバックアップ、分析データ、イメージやビデオなどのリッチ・コンテンツなど、あらゆるコンテンツ・タイプの構造化データと非構造化データにすばやくアクセスできます。インターネットまたはクラウド・プラットフォーム内部から、安全かつセキュアにデータを直接格納し、取得できます。パフォーマンスやサービスの信頼性を低下させることなく、ストレージをシームレスにスケーリングできます。標準ストレージは、迅速、即時、頻繁にアクセスするために必要な「ホット」ストレージに使用します。長期間保持し、ほとんどアクセスしない「コールド」ストレージにはアーカイブストレージを使用します。

  • Autonomous Data Warehouse

    Oracle Autonomous Data Warehouseは、データ・ウェアハウスのワークロード向けに最適化された、自動運転、自己保護、自己修復型のデータベース・サービスです。ハードウェアの構成や管理、ソフトウェアのインストールを行う必要はありません。Oracle Cloud Infrastructureでは、データベースの作成およびデータベースのバックアップ、パッチ適用、アップグレードおよびチューニングを処理します。

推奨

お客様の要件は、ここで説明するアーキテクチャとは異なる場合があります。開始点として次の推奨事項を使用します。

  • VCN

    VCNを作成する際、VCNのサブネットにアタッチする予定のリソース数に基づいて、必要なCIDRブロックの数および各ブロックのサイズを決定します。標準プライベートIPアドレス領域内にあるCIDRブロックを使用します。

    プライベート接続を設定する予定のその他のネットワーク(Oracle Cloud Infrastructure、オンプレミス・データ・センターまたは別のクラウド・プロバイダ)と重複しないCIDRブロックを選択します。

  • 関数

    このリファレンス アーキテクチャで使用される関数は、Pythonを使用してコーディングされます。Oracle Functionsは、Java、Node、GoおよびRubyもサポートしています。選択したプログラミング言語を使用します。

  • Oracle Autonomous Data Warehouse

    リファレンス・アーキテクチャでは、Simple Oracle Document Access (SODA)を使用してデータ・ウェアハウスにアクセスします。cx_oracleおよびOracle Clientライブラリを使用したSQLなどの他のアクセス方法を実装するには、ファンクションを変更します。

    参照アーキテクチャでは、機能とデータ・ウェアハウスは同じサブネットにあります。必要に応じて、個別のサブネットにデプロイできます。

注意事項

  • 拡張性
    • データベース

      データベースのCPUコア数を任意の時点で手動でスケール・アップまたはダウンできます。自律型データベースの自動スケーリング機能を使用すると、データベースで、CPUの現在のベース数の3倍までいつでも使用できます。要求が高まると、自動スケーリングによって、使用されるコア数が自動的に増加します。自律型データベースにより、可用性やパフォーマンスに影響を及ぼすことなく、いつでもストレージ容量を拡張できます。

    • 関数

      Oracle Functionsは、リクエスト・ロードに基づいてファンクション・コンテナを自動的に作成および削除します。関数が起動され、実行する期間に対してのみ支払います。

  • セキュリティ
    • Oracle Cloud Infrastructure Identity and Access Management (IAM)ポリシーを使用して、クラウド・リソースにアクセスできるユーザーや実行できる操作を制御します。

      特定のグループに割り当てることができるのは、ファンクション割当て権限のみか、ファンクション管理権限およびファンクション起動権限の両方です。

      IAMポリシーを使用して、Oracle FunctionsからOracle Cloud Infrastructure Object Storageへのアクセスを制御することもできます。

    • Oracle Cloud Infrastructure Object Storageでは、暗号化はデフォルトで有効になっており、オフにすることはできません。
    • このリファレンス・アーキテクチャは、同じサブネットのデータ・ウェアハウスと機能を示します。拡張分離の場合、データ・ウェアハウスに個別のサブネットを使用できます。
    • データベース・パスワードまたはその他のシークレットを保護するには、Oracle Cloud Infrastructure Vaultサービスの使用を検討してください。

デプロイ

このリファレンス・アーキテクチャのTerraformコードはGitHubで入手できます。コードを1回のクリックでOracle Cloud Infrastructure Resource Managerにプルし、スタックを作成してデプロイできます。または、GitHubからコンピュータにコードをダウンロードしてコードをカスタマイズし、Terraformコマンドライン・インタフェース(CLI)を使用してアーキテクチャをデプロイします。

  • Oracle Cloud Infrastructure Resource Managerを使用してデプロイ:
    1. Oracle Cloudにデプロイをクリックします

      まだサインインしていない場合は、テナンシおよびユーザー資格証明を入力します。

    2. 契約条件をレビューして受け入れます。
    3. スタックをデプロイするリージョンを選択します。
    4. 画面に表示されるプロンプトと指示に従ってスタックを作成します。
    5. スタックの作成後、「Terraformアクション」をクリックし、「プラン」を選択します。
    6. ジョブが完了するまで待機し、プランを確認します。

      変更を行うには、「スタック詳細」ページに戻り、「スタックの編集」をクリックして必要な変更を行います。次に、「計画」処理を再実行します。

    7. これ以上変更が必要ない場合は、「スタックの詳細」ページに戻り、「Terraformアクション」をクリックして「適用」を選択します。
  • Terraform CLIを使用してデプロイ:
    1. GitHubに移動します。
    2. コードをダウンロードしてローカル・コンピュータにクローニングします。
    3. READMEの手順に従います。

変更ログ

このログには重大な変更のみが表示されます。