1.1 Oracle GoldenGate for Distributed Applications and Analyticsの理解
この項では、Oracle GoldenGate for Distributed Applications and Analytics (GG for DAA)の概念と基本構造について説明します。
Oracle GoldenGate Microservicesの概要についてのこのビデオ(GoldenGate Microservicesの概要)を視聴してください
1.1.1 Oracle GoldenGate for Distributed Applications and Analyticsの理解
Oracle GoldenGate for Distributed Applications and Analytics (GG for DAA)は、Oracle GoldenGateインスタンスと統合されます。
Oracle GoldenGate製品を使用すると、次のことが行えます。
- トランザクション変更をソース・データベースから取得します。
- Oracle GoldenGate証跡と呼ばれる、データベースに依存しないファイルのセットとしてこれらの変更を送信およびキューイングします
- オプションで、マッピング・パラメータおよび関数を使用してソース・データを変更します
- 証跡内のトランザクションをターゲット・システム・データベースに適用します
Oracle GoldenGateでは、この取得と適用が異種データベース、プラットフォームおよびオペレーティング・システム間でほぼリアルタイムで行われます。
1.1.1.1 Oracle GoldenGate VAMメッセージの取得
Oracle GoldenGate VAMのメッセージ取得は、Oracle GoldenGate Extractプロセスでのみ機能します。Oracle GoldenGateのメッセージの取得では、JMSメッセージングに接続してメッセージを解析し、メッセージ・データからOracle GoldenGate証跡を作成するOracle GoldenGate ExtractプロセスにVAMインタフェースを介して送信します。これによって、ターゲット・データベース用に稼働しているOracle GoldenGateシステムにJMSメッセージが配信されます。Oracle GoldenGate VAMのメッセージ取得には、Java 8が必須の依存関係です。
Oracle GoldenGate JMSメッセージ取得を使用するには、Oracle GoldenGate Extractプロセスにアタッチされ、動的にリンクされた共有VAMライブラリが必要です。
1.1.1.1.1 メッセージ取得構成オプション
メッセージ取得の3つの部分を構成するオプションは次のとおりです。
-
メッセージ接続: プロパティ・ファイルの値によって、JMSクライアントのJavaクラスパス、JMSソース宛先名、JNDI接続プロパティ、セキュリティ情報などの接続プロパティが設定されます。
-
解析: プロパティ・ファイルの値によって、固定幅、カンマ区切りまたはXMLのメッセージの解析ルールが設定されます。これには、使用されるデリミタ、トランザクションの先頭と末尾の値、日付形式などの設定があります。
-
VAMインタフェース: VAM、
dll
またはso
ライブラリを識別するパラメータおよびプロパティ・ファイルがOracle GoldenGateコアExtractプロセス用に設定されます。
1.1.1.1.2 一般的な構成
次の図に、JMSメッセージを取得するための一般的な構成を示します。
この構成では、JMSメッセージは、Oracle GoldenGate for Distributed Applications and Analytics (GG for DAA)のJMSハンドラによって取得され、アダプタのメッセージ取得VAMを使用してExtractプロセスに転送されます。Extractによってデータが証跡に書き込まれ、証跡がデータ・ポンプExtractによってネットワーク経由でOracle GoldenGateターゲット・インスタンスに送信されます。ターゲットReplicatは証跡を使用してターゲット・データベースを更新します。
1.1.1.2 Oracle GoldenGate Java配信
Oracle GoldenGateによって取得されたトランザクション・データは、Oracle GoldenGate Java APIを介して、リレーショナル・データベース以外のターゲットに配信できます(JMS (Java Message Service)、ディスクに書き込まれたファイル、Oracle GoldenGate for Distributed Applications and Analytics (GG for DAA)アプリケーションへのデータのストリーミング、またはカスタム・アプリケーションJava APIとの統合など)。Oracle GoldenGate Java配信は、ExtractまたはReplicatプロセスと連携できます。ベスト・プラクティスとして、Oracle GoldenGate Replicatプロセスを使用してください。Oracle GoldenGate Java配信には依存関係としてJava 8が必要です。
Java用Oracle GoldenGateには、Oracle GoldenGate ReplicatプロセスからJavaコードを実行する機能があります。JavaのためのOracle GoldenGateを使用するには、次の条件が満たされている必要があります。
-
C/C++で実装され、Oracle GoldenGate Replicatプロセスの拡張モジュールを統合している動的リンク・ライブラリまたは共有ライブラリ。
-
Oracle GoldenGate Java APIを構成するJavaライブラリのセット(JAR)。このJavaフレームワークは、Java Native Interface (JNI)を介してReplicatと通信します。
-
Java 8がインストールされており、Oracle GoldenGate Java配信のプロセス(複数も可)をホストしているマシンでアクセスできる必要があります。Javaとその関連ライブラリを解決するには、環境変数が正しく設定されている必要があります。
1.1.1.3 配信構成オプション
Java配信モジュールは、GoldenGate Replicatプロセスによってロードされ、これはReplicatパラメータ・ファイルを使用して構成できます。ロード時に、Java配信モジュールはアダプタ・プロパティ・ファイルに存在する構成に基づいて引き続き構成されます。アプリケーションの動作は、次のようにしてカスタマイズできます。
-
プロパティ・ファイルの編集。たとえば、次のような編集があります。
-
ターゲット・タイプ、ホスト名、ポート番号、出力ファイル名、JMS接続設定の設定
-
debugレベルのロギングなどの有効化/無効化。
-
使用されるメッセージ形式の識別。
-
-
レコードは、次の方法でカスタム・フォーマットにできます。
-
既存のフォーマット・プロセス(固定長またはフィールド区切りのメッセージ形式、XML、JSONまたはAvro用)のプロパティの設定
-
Velocityテンプレート・マクロ言語を使用したメッセージ・テンプレートのカスタマイズ;
-
(オプション)カスタムJavaコードの記述。
-
-
(オプション)トランザクションおよび操作のカスタム処理、フィルタリング、またはカスタム・メッセージ形式の実装を行うカスタムJavaコードの記述。
JMSを使用したメッセージの送信およびディスクへのファイルの書込み用に既存の実装(ハンドラ)があります。Oracle GoldenGate for Distributed Applications and Analytics (GG for DAA)のターゲット用に、サポートされているデータベースに書き込むための組込みの統合ハンドラがあります。
メッセージの送信用にあらかじめ定義されたメッセージ形式がいくつかあります(XML、フィールド区切りなど)。あるいは、テンプレートを使用してカスタム形式を実装できます。各ハンドラには、その構成プロパティを表すドキュメンテーションがあります。たとえば、ファイル名をファイル・ライターに対して指定したり、JMSキュー名をJMSハンドラに対して指定できます。一部のプロパティは複数のハンドラに適用されます。たとえば、同一のメッセージ形式をJMSとファイルに使用できます。
1.1.1.4 アダプタ統合オプション
Oracle GoldenGate for Distributed Applications and Analytics (GG for DAA)アーキテクチャに基づく主要製品は2つあります。
-
Oracle GoldenGate Javaアダプタは全体的なフレームワークです。この製品では、カスタム・コードを実装し、特定の要件に従ってOracle GoldenGateの証跡レコードを処理できます。Oracle GoldenGate File Writerモジュールが組み込まれており、フラット・ファイルを統合する目的で使用できます。
-
GG for DAA。GG for DAA製品には、操作データをOracle GoldenGate証跡レコードから様々なGG for DAAターゲット(HDFS、HBase、Kafka、Flume、JDBC、CassandraおよびMongoDBなど)に書き込むための、組込みのサポートが含まれています。GG for DAAアプリケーションとの統合には、カスタム・コードを記述する必要はありません。この機能は、サードパーティ・アプリケーションおよびフォーマッタと統合される複数のハンドラに分けられます。これらのハンドラは、データを様々な形式(Avro、JSON、区切りテキスト、XMLなど)に変換します。HBase APIの場合など、サードパーティ・ツールとの統合に所有権が設定されていることがあります。このような場合、フォーマッタには、関連付けられたハンドラはありません。
Oracle GoldenGate JavaアダプタとGG for DAA製品には機能に重複する部分があるため、ハンドラは関連付けられたフォーマッタなしで存在します。次のリストでは、主な機能と、どの製品にその機能が含まれているかを示します。
-
JMSメッセージを読み取り、Oracle GoldenGate証跡として配信します。この機能はGG for DAAに含まれています。
-
Oracle GoldenGate証跡を読み取り、トランザクションをJMSプロバイダ、他のメッセージング・システムまたはカスタム・アプリケーションに配信します。この機能はGG for DAA製品に含まれています。
-
Oracle GoldenGate証跡を読み取り、他のアプリケーションによって使用可能なファイルにトランザクションを書き込みます。この機能はGG for DAAにのみ含まれています。
-
Oracle GoldenGate証跡を読み取り、トランザクションをGG for DAAターゲットに書き込みます。GG for DAA統合機能は、GG for DAA製品にのみ含まれています。
1.1.1.4.1 トランザクションの証跡への取得
Oracle GoldenGateのメッセージ取得を使用して、キューからメッセージを読み取り、Oracle GoldenGate Extractプロセスと通信して、処理したデータを含む証跡を生成します。
メッセージ取得処理は、通常のExtractプロセスのベンダー・アクセス・モジュール(VAM)プラグインとして実装されます。プロパティ、ルールおよび外部ファイルのセットによってメッセージ接続情報が指定され、メッセージの解析方法とターゲットOracle GoldenGate証跡のレコードへのマップ方法が定義されます。
現在このアダプタでは、JMSテキスト・メッセージの取得がサポートされています。
親トピック: アダプタ統合オプション
1.1.1.4.2 トランザクションの証跡からの適用
Oracle GoldenGate Javaアダプタの配信を使用すると、トランザクションの変更点をリレーショナル・データベース以外のターゲット(DataStage、Ab Initio、InformaticaなどのETLツール、JMSメッセージング、Oracle GoldenGate for Distributed Applications and Analytics (GG for DAA)アプリケーション、カスタムAPIなど)に適用できます。Oracle GoldenGateとの統合には、様々なオプションがあります。
-
フラット・ファイル統合: 主にETL(プロプライエタリまたはレガシー・アプリケーション)用で、Oracle GoldenGate File Writerは、バッチ・ファイルを入力とするツールによって消費されるマイクロ・バッチをディスクに書き込むことができます。データは、デリミタ区切り、長さ区切り、バイナリなどターゲット・アプリケーションの仕様に合せてフォーマットされます。バッチ・ファイル・ロールオーバーの時間ウィンドウを分または秒に短縮することで、これらのシステムへのほぼリアルタイムでのフィードが実現されます。
-
メッセージング: トランザクションまたは操作はメッセージ(XML形式など)としてJMSにパブリッシュされます。JMSプロバイダは、ActiveMQ、JBoss Messaging、TIBCO、Oracle WebLogic JMS、WebSphere MQなど複数のJMS実装と連携するように構成されます。
-
Java API: カスタム・ハンドラをJavaで記述し、Oracle GoldenGateによってソース・システムで取得されたトランザクション、操作およびメタデータの変更を処理できます。これらのカスタムJavaハンドラで、ターゲット・システムで公開されているサードパーティJava APIにこれらの変更を適用します。
-
GG for DAA統合: ソース証跡ファイルから様々なGG for DAAターゲットにトランザクション・データを書き込むには、構成プロパティを設定します。GG for DAA製品には、HDFS、HBase、KafkaおよびFlumeターゲットに書き込むための、組込みのGG for DAAハンドラが含まれています。
4つのオプションはすべて、コアOracle GoldenGate製品の拡張として実装されています。
-
JMSまたはJava APIを使用したJava統合の場合、Java用Oracle GoldenGateを使用します。
-
GG for DAA統合の場合は、GG for DAAモジュールと統合するようにOracle GoldenGate Replicatを構成できます。各種の形式でGG for DAAターゲットに書き込む操作は、一連のプロパティを使用して構成でき、プログラミングの必要はありません。
親トピック: アダプタ統合オプション
1.1.1.5 Oracle GoldenGate Javaアダプタのプロパティの使用
Oracle GoldenGate Javaアダプタ、GoldenGate for Distributed Applications and Analytics (GG for DAA)ハンドラおよびフォーマッタは、事前定義済プロパティを通じて構成します。これらのプロパティは、アダプタ・プロパティ・ファイルという別個のプロパティ・ファイルに格納されます。Oracle GoldenGateが機能するには、Replicatプロセスの構成ファイルがdirprm
ディレクトリにあり、その構成ファイルが次の命名規則に従っている必要があります。
Replicatプロセス名
.prm
ベスト・プラクティスとして、アダプタ・プロパティ・ファイルもdirprm
ディレクトリにあり、そのアダプタ・プロパティ・ファイルが次のいずれかの命名規則に従っていることも必要です。
Replicatプロセス名
.props
または
Replicatプロセス名
.properties
1.1.1.5.2 プロパティ・ファイルの場所
DAAプロパティ・ファイルのサンプルGGは、インストール・ディレクトリのAdapterExamples
サブディレクトリにインストールされます。これらのファイルは、必要に応じてコピーして名前を変更したり、内容を変更したりして、dirprm
サブディレクトリに移動することができます。
次の説明のとおり、これらの各プロパティ・ファイルは、パラメータまたは環境変数を介して指定する必要があります。これらの設定によって名前または場所を変更できますが、命名と場所についてはベスト・プラクティスに従うことをお薦めします。
次のサンプル・ファイルが含まれています。
-
ffwriter.properties
これには、ファイル・ライターのプロパティが格納されます。
CUSEREXIT
パラメータで設定されます。 -
jmsvam.properties
これには、JMSメッセージ取得VAMのプロパティが格納されます。これは、Extract
VAM
パラメータで設定されます。 -
javaue.properties
これには、メッセージの配信に使用されるJavaアプリケーションのプロパティが格納されます。次の環境変数を介して設定されます。
アダプタ・プロパティ・ファイルの名前と場所は、Replicatプロセスのプロパティ・ファイルにおける構成によって解決されます。
次では、Replicatプロセスでアダプタ・プロパティ・ファイルの名前と場所を解決する方法について説明します。
TARGETDB LIBFILE libggjava.so SET property=dirprm/javaue.properties
1.1.1.5.3 プロパティ・ファイルでのコメントの使用
行の先頭に#
接頭辞を付けることで、プロパティ・ファイルにコメントを入力できます。たとえば:
# This is a property comment some.property=value
プロパティ自体をコメントにすることもできます。これによって、前のプロパティ設定を保持したまま構成をテストできます。
1.1.1.6 パフォーマンスの監視
パフォーマンスの監視の詳細は、『Oracle GoldenGate Microservices Architectureの使用』のパフォーマンス・メトリック・サービスでのパフォーマンスの監視を参照してください。