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

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

7.5.1 依存性ファイルのインストール

Oracle GoldenGate for Big Dataは、レプリケーション・プロセスでクライアント・ライブラリを使用します。レプリケーション・プロセスを設定する前に、Oracle GoldenGate for Big Dataで使用可能な依存性ダウンローダ・ユーティリティを使用してこれらのライブラリをダウンロードする必要があります。依存性ダウンローダは、Mavenおよび他のリポジトリから依存性jarファイルをダウンロードするシェル・スクリプトのセットです。

Oracle GoldenGate for Big Dataでは、3ステップのプロセスを使用して、ParquetをS3バケットに収集します:
  • 証跡ファイルからローカル・ファイルを生成します(これらのローカル・ファイルはOCI GoldenGateではアクセスできません)
  • ローカル・ファイルをParquet形式に変換します
  • AWS S3バケットにファイルをロードします
Oracle GoldenGate for Big Dataを使用してローカルparquetファイルを生成する場合、Replicatはファイル・ライター・ハンドラ(「フラット・ファイル」を参照)およびParquetイベント・ハンドラ(「Parquet」を参照)を使用します。Oracle GoldenGate for Big Dataでは、AWS S3にParquetファイルをロードするために、S3イベント・ハンドラ(「Amazon S3」を参照)をファイル・ライターおよびParquetイベント・ハンドラとともに使用します。

Oracle GoldenGate for Big Dataでは、3つの異なるクライアント・ライブラリ・セットを使用してParquetファイルを作成し、AWS S3にロードします。

必要な依存性ファイルをインストールするには:

  1. 依存性ダウンローダのインストール場所に移動します: GG_HOME/opt/DependencyDownloader/
  2. parquet.sh (「Parquet」を参照)、hadoop.sh (「HDFSイベント・ハンドラ」およびaws.shを必要なバージョンで実行します。
    ディレクトリはGG_HOME/opt/DependencyDownloader/dependenciesに作成されます。たとえば、/u01/app/ogg/opt/DependencyDownloader/dependencies/aws_sdk_1.12.30です。

    図7-26 必要なバージョンでparquet.sh、hadoop.shおよびaws.shaを実行します。

    必要なバージョンでparquet.sh、hadoop.shおよびaws.shaを実行します。
    次のディレクトリがGG_HOME/opt/DependencyDownloader/dependenciesに作成されます:
    • /u01/app/ogg/opt/DependencyDownloader/dependencies/aws_sdk_1.12.309
    • /u01/app/ogg/opt/DependencyDownloader/dependencies/hadoop_3.3.0
    • /u01/app/ogg/opt/DependencyDownloader/dependencies/parquet_1.12.3

    図7-27 S3ディレクトリ

    S3ディレクトリ

7.5.2 Oracle GoldenGate for Big DataでのReplicatの作成

Oracle GoldenGate for Big DataでReplicatを作成するには:

  1. Oracle GoldenGate for Big Data UIの「管理サービス」タブで、「+」記号をクリックしてReplicatを追加します。

    図7-28 「管理サービス」タブの「+」をクリックします。

    「管理サービス」タブの「+」をクリックします。
  2. Replicatのタイプを選択して、「次へ」をクリックします。

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

    図7-29 Replicatのタイプを選択して、「次へ」をクリックします。

    Replicatのタイプを選択して、「次へ」をクリックします。
  3. 基本情報を入力し、「次へ」をクリックします:
    1. プロセス名: Replicatの名前
    2. 証跡名: 必要な証跡ファイルの名前
    3. ターゲット: このフィールドに入力しないでください

      図7-30 プロセス名、証跡名およびターゲット名

      基本情報を入力し、「次へ」をクリックします。
  4. 「パラメータ・ファイル」の詳細を入力し、「次へ」をクリックします。「パラメータ・ファイル」では、ソースからターゲットへのマッピングを指定するか、ワイルドカード選択でそのままにしておくことができます。Replicatタイプとして「調整済Replicat」を選択した場合は、次の追加パラメータを指定します: TARGETDB LIBFILE libggjava.so SET property=<ggbd-deployment_home>/etc/conf/ogg/your_replicat_name.properties

    図7-31 「パラメータ・ファイル」の詳細を指定し、「次へ」をクリックします。

    「パラメータ・ファイル」の詳細を指定し、「次へ」をクリックします。
  5. 次のプロパティ・リストをプロパティ・ファイルにコピー・アンド・ペーストし、必要に応じて更新し、「作成および実行」をクリックします。
    #The File Writer Handler – no need to change
    gg.handlerlist=filewriter
    gg.handler.filewriter.type=filewriter
    gg.handler.filewriter.mode=op
    gg.handler.filewriter.pathMappingTemplate=./dirout
    gg.handler.filewriter.stateFileDirectory=./dirsta
    gg.handler.filewriter.fileRollInterval=7m
    gg.handler.filewriter.inactivityRollInterval=30s
    gg.handler.filewriter.fileWriteActiveSuffix=.tmp
    gg.handler.filewriter.finalizeAction=delete
    
    ### Avro OCF – no need to change
    gg.handler.filewriter.format=avro_row_ocf
    gg.handler.filewriter.fileNameMappingTemplate=${groupName}_${fullyQualifiedTableName}_${currentTimestamp}.avro
    gg.handler.filewriter.format.pkUpdateHandling=delete-insert
    gg.handler.filewriter.format.metaColumnsTemplate=${optype},${position}
    gg.handler.filewriter.format.iso8601Format=false
    gg.handler.filewriter.partitionByTable=true
    gg.handler.filewriter.rollOnShutdown=true
    
    #The Parquet Event Handler – no need to change
    gg.handler.filewriter.eventHandler=parquet
    gg.eventhandler.parquet.type=parquet
    gg.eventhandler.parquet.pathMappingTemplate=./dirparquet
    gg.eventhandler.parquet.fileNameMappingTemplate=${groupName}_${fullyQualifiedTableName}_${currentTimestamp}.parquet
    gg.eventhandler.parquet.writeToHDFS=false
    gg.eventhandler.parquet.finalizeAction=delete
    
    #TODO Select S3 Event Handler – no need to change
    gg.eventhandler.parquet.eventHandler=s3
    
    #TODO Set S3 Event Handler- please update as needed
    gg.eventhandler.s3.type=s3
    gg.eventhandler.s3.region=your-aws-region
    gg.eventhandler.s3.bucketMappingTemplate=target s3 bucketname
    gg.eventhandler.s3.pathMappingTemplate=ogg/data/${fullyQualifiedTableName}
    gg.eventhandler.s3.accessKeyId=XXXXXXXXX
    gg.eventhandler.s3.secretKey=XXXXXXXX
    
    #TODO Set the classpath to the Parquet client libries and the Hadoop client with the path you noted in step1
    gg.classpath=
    jvm.bootoptions=-Xmx512m -Xms32m
    
  6. Replicatが正常に起動すると、Replicatは実行状態になります。「アクション」/「詳細」/「統計」に移動して、レプリケーション統計を確認できます。

    図7-32 レプリケーション統計

    レプリケーション統計
  7. AWS S3コンソールに移動し、バケットを確認します。

    図7-33 S3バケット

    S3バケット

ノート: