8.5 Oracle GoldenGate for Distributed Applications and AnalyticsによるAzure Data Lake StorageへのリアルタイムParquet取込み

概要

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

Azure Data Lake Storage (ADLS)は、構造化データと非構造化データの両方をすべて格納できる、Azureで提供されている一元化されたリポジトリです。

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

GG for DAAでは、ADLS接続のための様々な代替方法が提供されています。このクイックスタートでは、接続にBLOBエンドポイントを使用します。

8.5.1 前提条件

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

  • Azure Storageアカウントおよびコンテナ
  • Azure Storageアカウントのログイン資格証明
このクイックスタートでは、GG for DAAに付属のサンプル証跡ファイル(trという名前)を使用します。サンプル証跡ファイルは、GG for DAAインスタンスのGG_HOME/opt/AdapterExamples/trail/にあります。

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

Oracle GoldenGate for Distributed Applications and Analytics (GG for DAA)では、Azureによって提供されるJava SDKが使用されます。それらのSDKは、GG for DAAに付属の依存性ダウンローダ・ユーティリティを使用してダウンロードできます。依存性ダウンローダは、Mavenおよび他のリポジトリから依存性jarファイルをダウンロードするシェル・スクリプトのセットです。

GG for DAAでは、3ステップのプロセスを使用して、Azure Storageコンテナにparquetを取り込みます:

  • 証跡ファイルからローカル・ファイルを生成します
  • ローカル・ファイルをParquet形式に変換します
  • Azure Storageコンテナにファイルをロードします

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

GG for DAAでは、3つの異なるクライアント・ライブラリ・セットを使用してparquetファイルが作成され、Azure Storageにロードされます。
  1. GG for DAA VMで、依存性ダウンローダ・ユーティリティに移動します。それはGG_HOME/opt/DependencyDownloader/にあります。
  2. 必要なバージョンを指定してparquet.shhadoop.shおよびazure_blob_storage.shを実行します。

    図8-27 II.必要なバージョンを指定してparquet.sh、hadoop.shおよびazure_blob_storage.shを実行します。

    II.必要なバージョンを指定してparquet.sh、hadoop.shおよびazure_blob_storage.shを実行します。
  3. 3つのディレクトリがGG_HOME/opt/DependencyDownloader/dependenciesに作成されます。これらのディレクトリを書き留めます。たとえば:
    • /u01/app/ogg/opt/DependencyDownloader/dependencies/azure_blob_storage_12.21.2
    • /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の作成

Oracle GoldenGate for Distributed Applications and Analytics (GG for DAA)でReplicatを作成するには:

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

    図8-28 「管理サービス」タブをクリック

    「管理サービス」タブをクリックします。
  2. 「クラシックReplicat」のReplicatのタイプを選択し、「次へ」をクリックします。クラシックと調整済という2つの異なるReplicatタイプがあります。クラシックReplicatは単一のスレッド・プロセスですが、調整済Replicatは、トランザクションをパラレルに適用するマルチスレッド・プロセスです。

    図8-29 Replicatの追加

    Replicatの追加
  3. Replicat情報を入力し、「次」をクリックします:
    1. Replicatトレイル: 必要な証跡ファイルの名前。サンプル証跡の場合は、trを指定します。
    2. サブディレクトリ: サンプル証跡を使用する場合は、GG_HOME/opt/AdapterExamples/trail/と入力します。
    3. ターゲット: Azure Data Lake Storage

    図8-30 Replicatオプション

    Replicatオプション
  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. 「プロパティ・ファイル」で、Replicat名でマークされている最初の行を除き(# Properties file for Replicat <replicat_name>)、事前構成済のすべてのプロパティを削除します。次のプロパティ・リストをプロパティ・ファイルにコピー・アンド・ペーストし、#TODOとマークされているプロパティを更新し、「作成および実行」をクリックします。
    #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=5s
    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 ABS Event Handler  – no need to change
    gg.eventhandler.parquet.eventHandler=abs
    
    #TODO Set ABS Event Handler - please update as needed
    gg.eventhandler.abs.type=abs
    gg.eventhandler.abs.bucketMappingTemplate= <abs-container-name>
    gg.eventhandler.abs.pathMappingTemplate=ogg/data/${fullyQualifiedTableName}
    gg.eventhandler.abs.accountName= <storage-account-name>
    #TODO: Edit the Azure storage account key if access key is used
    #gg.eventhandler.abs.accountKey=<storage-account-key>
    #TODO: Edit the Azure shared access signature (SAS) to if SAS is used.
    #gg.eventhandler.abs.sasToken=<sas-token>
    #TODO: Edit the the tenant ID, Client ID and Secret of the application if LDAP is used.
    #gg.eventhandler.abs.tenantId=<azure-tenant-id>
    #gg.eventhandler.abs.clientId=<azure-client-id>
    #gg.eventhandler.abs.clientSecret=<azure-client-secret>
    
    #TODO Set the classpath to the paths you noted in step1
    gg.classpath= path_to/ gcs_12.29.1/: path_to /hadoop_3.4.0/:path_to/parquet_1.12.3/* jvm.bootoptions=-Xmx512m -Xms32m
    
  7. Replicatが正常に起動されると、それが実行状態になります。「Replicat」/「統計」に移動してレプリケーション統計を確認できます。

    図8-33 Replicatの統計

    Replicatの統計
  8. Azure Storageコンソールに移動してそれらのファイルを確認します。

    図8-34 Azure Storageコンソール

    Azure Storageコンソール

ノート:

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