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 前提条件
このクイックスタートを正常に完了するには、次のものが必要です:
- Amazon S3バケット
- Amazon S3のアクセス・キーおよびシークレット
このクイックスタートでは、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にロードされます。
- GG for DAA VMで、依存性ダウンローダ・ユーティリティに移動します。それは
GG_HOME/opt/DependencyDownloader/
にあります - 必要なバージョンを指定して
parquet.sh
、hadoop.sh
およびs3.sh
を実行します。ノート:
s3.sh
を実行すると、AWS sdkバージョン2.xに必要なすべての依存性がダウンロードされます。バージョン1.xの依存性をダウンロードする必要がある場合は、かわりにaws.sh
を使用します。図8-27 必要な依存性ファイルのインストール
- 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の作成
- 「管理サービス」に移動し、「+」記号をクリックしてReplicatを追加します。
図8-28 管理サービス
- Replicatのタイプを選択して、「次へ」をクリックします。
クラシックと調整済という2つの異なるReplicatタイプがあります。クラシックReplicatは単一のスレッド・プロセスですが、調整済Replicatは、トランザクションをパラレルに適用するマルチスレッド・プロセスです。
図8-29 Replicatオプション
- 「Replicatオプション」を指定して「次」をクリックします。
- Replicatトレイル: 必要な証跡ファイルの名前。サンプル証跡の場合は、
tr
を指定します。 - サブディレクトリ: サンプル証跡を使用する場合は、
GG_HOME/opt/AdapterExamples/trail/
と指定します。 - ターゲット: Amazon S3
- 形式: ファイル形式を選択します。
図8-30 レプリケートの追加
- Replicatトレイル: 必要な証跡ファイルの名前。サンプル証跡の場合は、
- 「管理対象オプション」はそのままにして、「次」をクリックします。
図8-31 管理対象オプション
- 「パラメータ・ファイル」で、パラメータ・ファイルの詳細を指定し、「次」をクリックします。
「パラメータ・ファイル」では、ソースからターゲットへのマッピングを指定するか、ワイルドカード選択でそのままにしておくことができます。「Replicatタイプ」として「調整済Replicat」を選択した場合は、さらに次のパラメータを指定する必要があります:
TARGETDB LIBFILE libggjava.so SET property=<ggbd-deployment_home>/etc/conf/ogg/your_replicat_name.properties
.図8-32 パラメータ・ファイル
- 「プロパティ・ファイル」で、#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/*
- Replicatが正常に起動されると、それが実行状態になります。Replicat名をクリックし、「統計」を選択してレプリケーション統計を確認できます。
図8-33 レプリケーション統計
- AWS S3コンソールに移動してバケットを確認できます。
図8-34 AWS S3コンソール
ノート:
- ターゲットのS3バケットが存在しない場合は、GGBDによって自動作成できます。テンプレート・キーワードを使用してS3バケット名を動的に割り当てることができます。
- S3ハンドラをプロキシ・サーバー用に構成できます。詳細は、S3イベント・ハンドラを参照してください。
- 様々なプロパティを使用して、ファイル書込みの動作を制御できます。ファイル・サイズ、非アクティブ期間などを設定できます。詳細は、ファイル・ライターのブログ投稿を参照してください。