8.5 Oracle GoldenGate for Distributed Applications and Analytics 23.8以降によるAWS S3バケットへのリアルタイムParquet取込み

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

Amazon Simple Storage Service (Amazon S3)は、Amazon Web Servicesによって提供されているオブジェクト・ストレージ・サービスです。

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

8.5.1 前提条件

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

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

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

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

GG for DAAでは、3ステップのプロセスを使用して、s3バケットにparquetを取り込みます:

  • 証跡ファイルからローカル・ファイルを生成します
  • ローカル・ファイルをParquet形式に変換します
  • AWS S3バケットにファイルをロードします

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

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

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

    ノート:

    s3.shを実行すると、AWS sdkバージョン2.xに必要なすべての依存性がダウンロードされます。バージョン1.xの依存性をダウンロードする必要がある場合は、かわりにaws.shを使用します。

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

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

    /u01/app/ogg/opt/DependencyDownloader/dependencies/s3_2.28.11/*

    /u01/app/ogg/opt/DependencyDownloader/dependencies/hadoop_3.4.0/*

    /u01/app/ogg/opt/DependencyDownloader/dependencies/parquet_1.12.3/*

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

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

    図8-28 管理サービス

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

    クラシックと調整済という2つの異なるReplicatタイプがあります。クラシックReplicatは単一のスレッド・プロセスですが、調整済Replicatは、トランザクションをパラレルに適用するマルチスレッド・プロセスです。

    図8-29 Replicatオプション

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

    図8-30 レプリケートの追加


    ターゲットを選択して「次」をクリックします。

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

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

    「管理対象オプション」はそのままにして、「次」をクリックします。
  5. 「パラメータ・ファイル」で、パラメータ・ファイルの詳細を指定し、「次」をクリックします。
    「パラメータ・ファイル」では、ソースからターゲットへのマッピングを指定するか、ワイルドカード選択でそのままにしておくことができます。「Replicatタイプ」として「調整済Replicat」を選択した場合は、さらに次のパラメータを指定する必要があります:
    TARGETDB LIBFILE libggjava.so SET property=<ggbd-deployment_home>/etc/conf/ogg/your_replicat_name.properties
    .

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

    「パラメータ・ファイル」の詳細を入力して「次」をクリックします。
  6. 「プロパティ・ファイル」で、#TODOとマークされているプロパティを更新し、「作成および実行」をクリックします。たとえば:

    # Properties file for Replicat

    S3 gg.target=s3

    #TODO: format can be 'parquet' or 'orc' or one of the pluggable formatter types. Default is 'parquet'.
    gg.format=parquet
    #TODO: Update S3 region
    gg.eventhandler.s3.region=
    #TODO: Uncomment and configure the proxy host and port.
    #gg.eventhandler.s3.proxyServer=
    #gg.eventhandler.s3.proxyPort=
    #TODO: Update S3 bucket details
    gg.eventhandler.s3.bucketMappingTemplate=
    gg.eventhandler.s3.pathMappingTemplate=
    gg.eventhandler.s3.finalizeAction=none
    #TODO: Set the AWS credentials.
    gg.eventhandler.s3.accessKeyId=
    gg.eventhandler.s3.secretKey=
    gg.eventhandler.s3.enableBucketAdmin=false
    #TODO: Set to the location of the AWS SDK.
    gg.classpath=/path/to/aws-deps/*:/path/to/hadoop-deps/:/path/to/parquet_deps/*
    
    
  7. Replicatが正常に起動されると、それが実行状態になります。Replicat名をクリックし、「統計」を選択してレプリケーション統計を確認できます。

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

    「統計」を選択してレプリケーション統計を確認します。
  8. AWS S3コンソールに移動してバケットを確認できます。

    図8-34 AWS S3コンソール

    AWS S3コンソールに移動してバケットを確認します。

ノート:

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