8.12 Oracle GoldenGate for Distributed Applications and AnalyticsによるAzure Event Hubsへのリアルタイム・メッセージ取込み
概要
このクイックスタートでは、Oracle GoldenGate for Distributed Applications and Analytics (GG for DAA)を使用してリアルタイムでAzure Event Hubにメッセージを取り込む方法を手順を追って説明します。
Azure Event Hubsは、大量のメッセージをストリーミングできるクラウド・ネイティブ・データ・ストリーミング・サービスです。Azure Event Hubsでは、イベント・ハブ上にApache Kafkaエンドポイントが提供されます。これにより、ユーザーが、Kafkaプロトコルを使用してそのイベント・ハブに接続できるようになります。GG for DAAでは、KafkaハンドラでAzure Event Hub Apache Kafkaエンドポイントに接続します。GG for DAAにより、証跡ファイルからソース操作が読み取られ、それらがフォーマットされ、Azure Event Hubsにマップされ、配信されます。
- 前提条件
- 依存性ファイルのインストール
- Azure Event Hubs用のproducer.propertiesの作成
- Oracle GoldenGate for Distirbuted Applications and AnalyticsでのReplicatの作成
親トピック: クイックスタート
8.12.1 前提条件
このクイックスタートを正常に完了するには、次のものが必要です:
- Azure Event Hubsネームスペース
- Azure Event Hubsネームスペース用の共有アクセス・ポリシー
trという名前)を使用します。サンプル証跡ファイルは、GG for DAAインスタンスのGG_HOME/opt/AdapterExamples/trail/にあります。
                  8.12.2 依存性ファイルのインストール
GG for DAAでは、Azure Event Hubs用にApache Kafkaクライアント・ライブラリが使用されます。それらのSDKは、GG for DAAに付属の依存性ダウンローダ・ユーティリティを使用してダウンロードできます。依存性ダウンローダは、Mavenおよび他のリポジトリから依存性jarファイルをダウンロードするシェル・スクリプトのセットです。
- GG for DAA VMで、依存性ダウンローダ・ユーティリティに移動します。それはGG_HOME/opt/DependencyDownloader/にあります。kafka.shを見つけてください。
- 必要なバージョンを指定してkafka.shを実行します。バージョンおよび報告されている脆弱性は、Maven Centralで確認できます。このドキュメントでは、このクイックスタートの公開時の最新バージョンである3.7.0を使用しています。図8-83 kafka.shの実行  
- 新しいディレクトリが/u01/app/ogg/opt/DependencyDownloader/dependencies/kafka_3.7.0に作成されます。
8.12.3 Azure Event Hubs用のproducer.propertiesの作成
GG for DAAインスタンスで、producer.propertiesというファイルを作成し、次の構成をコピーします。
                     
bootstrap.servers=<namespace>.servicebus.windows.net:9093 security.protocol=SASL_SSL sasl.mechanism=PLAIN sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password=" Endpoint=sb://mynamespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=XXXXXXXXXXXXXXXX"; value.serializer = org.apache.kafka.common.serialization.ByteArraySerializer key.serializer = org.apache.kafka.common.serialization.ByteArraySerializer詳細は、Azure Event Hubの共有アクセス・キーを参照してください。
8.12.4 Oracle GoldenGate for Distirbuted Applications and AnalyticsでのReplicatの作成
Oracle GoldenGate for Distributed Applications and Analytics (GG for DAA)でReplicatを作成するには:
- GG for DAA UIの「管理サービス」タブで、「+」記号をクリックしてReplicatを追加します。 
                           図8-84 「管理サービス」タブの「+」をクリックします。  
- 「Replicatタイプ」で「クラシックReplicat」を選択し、「次」をクリックします。クラシックと調整済という2つの異なるReplicatタイプを使用できます。クラシックReplicatは単一のスレッド・プロセスですが、調整済Replicatは、トランザクションをパラレルに適用するマルチスレッド・プロセスです。 
                           図8-85 Replicatの追加  
- 基本情報を入力し、「次へ」をクリックします:
                           - Replicatトレイル: 必要な証跡ファイルの名前(サンプル証跡を使用している場合は、trと指定します)
- サブディレクトリ: サンプル証跡を使用する場合は、GG_HOME/opt/AdapterExamples/trail/と入力します。
- ターゲット: Kafka
 図8-86 Replicatオプション  
- 「管理対象オプション」はそのままにして、「次」をクリックします。
                           図8-87 管理対象オプション  
- 「パラメータ・ファイル」の詳細を入力し、「次へ」をクリックします。「パラメータ・ファイル」では、ソースからターゲットへのマッピングを指定するか、ワイルドカード選択のままにしておくことができます。 
                           図8-88 パラメータ・ファイル  
- 「プロパティ・ファイル」で、TODOとマークされているプロパティを更新し、「作成および実行」をクリックします。#Kafka Handler Template gg.handlerlist=kafkahandler gg.handler.kafkahandler.type=kafka #TODO: Set the name of the Kafka producer properties file. gg.handler.kafkahandler.kafkaProducerConfigFile=/path_to/producer.properties #TODO: Set the template for resolving the topic name. gg.handler.kafkahandler.topicMappingTemplate=<target_event_hub_name> gg.handler.kafkahandler.keyMappingTemplate=${primaryKeys} gg.handler.kafkahandler.mode=op gg.handler.kafkahandler.format=json gg.handler.kafkahandler.format.metaColumnsTemplate=${objectname[table]},${optype[op_type]},${timestamp[op_ts]},${currenttimestamp[current_ts]},${position[pos]} #TODO: Set the location of the Kafka client libraries. gg.classpath=path_to/dependencies/kafka_3.7.0/* jvm.bootoptions=-Xmx512m -Xms32m GG for DAAでは、テンプレート・キーワードによる動的トピック・マッピングがサポートされています。たとえば、topicMappingTemplateを${tablename}として割り当てた場合は、GG for DAAにより、ソース表ごとに、ソース表名でイベント・ハブが作成され、イベントがこれらのトピックにマップされます。keyMappingTemplate=${primaryKeys}を使用することをお薦めします。この場合は、GG for DAAにより、pkが同一のソース操作が、同じパーティションに送信されます。これにより、Azure Event Hubsへの配信中にソース操作の順序を維持できるようになります。
- Replicatが正常に起動すると、実行状態になります。「アクション」/「詳細」/「統計」に移動して、レプリケーション統計を確認できます。 
                           図8-89 Replicatの統計  
- Azure Event Hubコンソールに移動して統計を確認できます。 
                           図8-90 Azure Event Hubコンソール  
Azure Event Hubレプリケーションの詳細は、「Apache Kafka」を参照してください。
ノート:
- ターゲットのkafkaトピックが存在しない場合は、OCIストリーミングのKafka接続設定で自動トピック作成が選択されていると、GG for DAAによってそれが自動作成されます。テンプレート・キーワードを使用してトピック名を動的に割り当てることができます。
- OCIストリーミング・レプリケーションのパフォーマンスを高めるには、ブログを参照してください。