8.9 Oracle GoldenGate for Distributed Applications and Analytics 23.8以降によるOCIオブジェクト・ストレージへのリアルタイムParquet取込み

このクイックスタートでは、Oracle GoldenGate for Distributed Applications and Analytics (GG for DAA)を使用してリアルタイムでOCIオブジェクト・ストレージ・バケットにparquetファイルを取り込む方法を手順を追って説明します。

OCIオブジェクト・ストレージは、Oracle Cloud Infrastructure(OCI)によって提供されている、スケーラブルで高パフォーマンスのストレージ・サービスです。これを使用すると、大量の非構造化データ(イメージ、ビデオ、ログ・ファイル、バックアップ、その他のタイプのファイルなど)を格納し管理できます。

GG for DAAのOCIオブジェクト・ストレージ・ハンドラは、ファイル・ライター・ハンドラおよびParquetハンドラ(parquetが必要な場合)と連携して機能します。ファイル・ライター・ハンドラによってファイルがローカルに生成され、オプションでParquetハンドラによりparquet形式に変換され、OCIオブジェクト・ストレージ・ハンドラによりOCIオブジェクト・ストレージ・バケットにロードされます。

8.9.1 前提条件

このクイックスタートを正常に完了するには、次のものが必要です:

  • OCIオブジェクト・ストレージへのアクセス

このクイックスタートでは、GG for DAAに付属のサンプル証跡ファイル(trという名前)を使用します。サンプル証跡ファイルを使用して続行する場合、それはGG for DAAインスタンスのGG_HOME/opt/AdapterExamples/trail/にあります。

8.9.2 必要な依存性ファイルのインストール

GG for DAAでは、レプリケーション・プロセスでクライアント・ライブラリが使用されるため、これらのライブラリを、レプリケーション・プロセスを設定する前にダウンロードする必要があります。依存性ダウンローダを使用してそれらのクライアント・ライブラリをダウンロードできます。依存性ダウンローダは、Mavenおよび他のリポジトリから依存性jarファイルをダウンロードするシェル・スクリプトのセットです。

  • GG for DAAでは、3ステップのプロセスを使用して、OCIオブジェクト・ストレージ・バケットにparquetを取り込みます:
  • 証跡ファイルからローカル・ファイルを生成します
  • ローカル・ファイルをParquet形式に変換します
  • OCIオブジェクト・ストレージ・バケットにファイルをロードします

GG for DAAを使用してローカルparquetファイルを生成する場合は、Replicatで、ファイル・ライター・ハンドラおよびParquetハンドラが使用されます。GG for DAAでは、parquetファイルをロードするために、OCIイベント・ハンドラが、ファイル・ライターおよびParquetイベント・ハンドラとともに使用されます。

GG for DAAでは、3つの異なるクライアント・ライブラリ・セットを使用してparquetファイルが作成され、AWS S3にロードされます。

  1. GG for DAA VMで、依存性ダウンローダ・ユーティリティに移動します。それはGG_HOME/opt/DependencyDownloader/にあります
  2. 必要なバージョンを指定してparquet.shhadoop.shおよびoracle_oci.shを実行します。

    図8-59 必要な依存性ファイルのインストール

    必要な依存性ファイルをインストールします。
  3. 3つのディレクトリがGG_HOME/opt/DependencyDownloader/dependenciesに作成されます。これらのディレクトリを書き留めます。
    • /u01/app/ogg/opt/DependencyDownloader/dependencies/oracle_oci_3.2.0/*:
    • /u01/app/ogg/opt/DependencyDownloader/dependencies/hadoop_3.3.0/*:
    • /u01/app/ogg/opt/DependencyDownloader/dependencies/parquet_1.12.3/*

8.9.3 Oracle Cloud Infrastructureの資格証明の構成

OCIへの認証のために構成ファイルを作成する必要があります。理想的な構成ファイルには、user、fingerprint、key_file、tenancyおよびregionとそれぞれの値が含まれています。デフォルトの構成ファイルの名前と場所は、~/.oci/configです。詳細は、「必要なキーとOCID」を参照してください。

サンプル構成ファイル

[DEFAULT]
user=<your_user_ocid>
fingerprint=<your_fingerprint>
key_file=~/.oci/oci_api_key.pem #path-to_your_key_file
tenancy=<your_tenancy_ocid>

8.9.4 Oracle GoldenGate for Distributed Applications and AnalyticsでのReplicatの作成

  1. 「管理サービス」に移動し、「+」記号をクリックしてReplicatを追加します。

    図8-60 管理サービス

    「管理サービス」に移動し、「+」記号をクリックしてReplicatを追加します。
  2. 「Replicatタイプ」を選択して「次」をクリックします

    クラシックと調整済という2つの異なるReplicatタイプがあります。クラシックReplicatは単一のスレッド・プロセスですが、調整済Replicatは、トランザクションをパラレルに適用するマルチスレッド・プロセスです。調整済Replicatでは、マルチスレッド・プロセスが実行されているため、複数のファイルが作成されます。

    図8-61 Replicat情報

    「Replicatタイプ」を選択して「次」をクリックします。
  3. 「Replicatオプション」を入力して「次」をクリックします。
    • Replicatトレイル: 必要な証跡ファイルの名前。サンプル証跡の場合は、trを指定します。
    • サブディレクトリ: サンプル証跡を使用する場合は、GG_HOME/opt/AdapterExamples/trail/と入力します。
    • ターゲット: OCIオブジェクト・ストレージ
    • 形式: ファイル形式を選択します。

    図8-62 Replicatオプション

    「Replicatオプション」を入力して「次」をクリックします。
  4. 「管理対象オプション」はそのままにして、「次」をクリックします。

    図8-63 管理対象オプション

    「管理対象オプション」はそのままにして、「次」をクリックします。
  5. 「パラメータ・ファイル」の詳細を入力し、「次へ」をクリックします。

    「パラメータ・ファイル」では、ソースからターゲットへのマッピングを指定するか、ワイルドカード選択でそのままにしておくことができます。「Replicatタイプ」として「調整済Replicat」を選択した場合は、さらに次のパラメータを指定する必要があります:

    TARGETDB LIBFILE libggjava.so SET property=<ggbd-deployment_home>/etc/conf/ogg/your_replicat_name.properties

    図8-64 パラメータ・ファイル

    「パラメータ・ファイル」の詳細を入力して「次」をクリックします。
  6. 「プロパティ・ファイル」で、#TODOとマークされているプロパティを更新し、「作成および実行」をクリックします。
    # Properties file for Replicat 
    
    # Configuration to load GoldenGate trail operation records
    # into OCI Object storage by chaining
    # File writer handler -> OCI Event handler.
    # Note: Recommended to only edit the configuration marked as TODO
    
    gg.target=oci
    
    #TODO: format can be 'parquet' or 'orc' or one of the pluggable formatter types. Default is 'parquet'.
    gg.format=parquet
    
    #TODO: Edit the OCI region
    gg.eventhandler.oci.region=<oci-region>
    #TODO: Edit the OCI compartment OCID
    gg.eventhandler.oci.compartmentID=<oci-compartment-ocid>
    #TODO: Edit the OCI bucket name
    gg.eventhandler.oci.bucketMappingTemplate=<oci-bucket-name>
    #TODO: Edit the OCI Config file path
    gg.eventhandler.oci.configFilePath=./oci/config
    #TODO: Edit to include the OCI Java SDK.
    gg.classpath= ./oci-java-sdk/lib/*:./oci-java-sdk/third-party/lib/*:/path/to/hadoop-deps/:/path/to/parquet_deps/*
    
  7. Replicatが正常に起動されると、それが実行状態になります。action/details/statisticsに移動して、レプリケーション統計を確認します

    図8-65 レプリケーション統計

    レプリケーション統計の詳細
  8. OCIコンソールに移動してバケットを確認します。

    図8-66 OCIコンソール

    OCIコンソール

ノート:

  • ターゲットのOCIオブジェクト・ストレージ・バケットが存在しない場合は、GG for DAAによって自動作成されます。テンプレート・キーワードを使用してOCIバケット名を動的に割り当てることができます。
  • OCIオブジェクト・ストレージ・イベント・ハンドラをプロキシ・サーバー用に構成できます。詳細は、OCIオブジェクト・ストレージ・イベント・ハンドラを参照してください。
  • 様々なプロパティを使用して、ファイル書込みの動作を制御できます。ファイル・サイズ、非アクティブ期間などを設定できます。詳細は、ファイル・ライターのブログ投稿を参照してください。