1 JavaアダプタとOracle GoldenGate for Big Dataの理解

この章の内容は次のとおりです。

トピック:

概要

この項では、Oracle GoldenGateアダプタの概要を示します。

Oracle GoldenGateの機能

Oracle GoldenGate Javaアダプタは、Oracle GoldenGateインスタンスと統合されます。

Oracle GoldenGate製品を使用すると、次のことが行えます。

  • トランザクション変更をソース・データベースから取得します

  • Oracle GoldenGate証跡と呼ばれる、データベースに依存しないファイルのセットとしてこれらの変更を送信およびキューイングします

  • オプションで、マッピング・パラメータおよび関数を使用してソース・データを変更します

  • 証跡内のトランザクションをターゲット・システム・データベースに適用します

Oracle GoldenGateでは、この取得と適用が異種データベース、プラットフォームおよびオペレーティング・システム間でほぼリアルタイムで行われます。

アダプタ統合オプション

Oracle GoldenGateアダプタ・アーキテクチャに基づく主要な製品は2つあります。

  • Oracle GoldenGate Javaアダプタは全体的なフレームワークです。この製品では、カスタム・コードを実装し、特定の要件に従ってOracle GoldenGateの証跡レコードを処理できます。Oracle GoldenGate File Writerモジュールが組み込まれており、フラット・ファイルを統合する目的で使用できます。

  • Oracle GoldenGate for Big Data。Oracle GoldenGate for Big Data製品には、操作データをOracle GoldenGateの証跡レコードから各種のビッグ・データ・ターゲット(HDFS、HBase、Kafka、Flume、JDBC、CassandraおよびMongoDBなど)に書き込むサポートも組み込まれています。ビッグ・データ・アプリケーションと統合するとき、カスタム・コードを記述する必要はありません。この機能は、サードパーティ・アプリケーションおよびフォーマッタと統合される複数のハンドラに分けられます。これらのハンドラは、データを様々な形式(Avro、JSON、区切りテキスト、XMLなど)に変換します。HBase APIの場合など、サードパーティ・ツールとの統合に所有権が設定されていることがあります。このような場合、フォーマッタには、関連付けられたハンドラはありません。

Oracle GoldenGate JavaアダプタとOracle GoldenGate for Big Data製品には機能に重複する部分があるため、ハンドラは関連付けられたフォーマッタなしで存在します。次のリストでは、主な機能と、どの製品にその機能が含まれているかを示します。

  • JMSメッセージを読み取り、Oracle GoldenGate証跡として配信します。この機能は、Oracle GoldenGateアダプタとOracle GoldenGate for Big Dataの両方の製品に含まれています。

  • Oracle GoldenGate証跡を読み取り、トランザクションをJMSプロバイダ、他のメッセージング・システムまたはカスタム・アプリケーションに配信します。この機能は、Oracle GoldenGateアダプタとOracle GoldenGate for Big Dataの両方の製品に含まれています。

  • Oracle GoldenGate証跡を読み取り、他のアプリケーションによって使用可能なファイルにトランザクションを書き込みます。この機能は、Oracle GoldenGateアダプタ製品にのみ含まれています。

  • Oracle GoldenGateの証跡を読み取り、トランザクションをビッグ・データ・ターゲットに書き込みます。ビッグ・データ統合機能は、Oracle GoldenGate for Big Data製品にのみ含まれています。

トランザクションの証跡への取得

Oracle GoldenGateのメッセージ取得を使用して、キューからメッセージを読み取り、Oracle GoldenGate Extractプロセスと通信して、処理したデータを含む証跡を生成します。

メッセージ取得処理は、通常のExtractプロセスのベンダー・アクセス・モジュール(VAM)プラグインとして実装されます。プロパティ、ルールおよび外部ファイルのセットによってメッセージ接続情報が指定され、メッセージの解析方法とターゲットOracle GoldenGate証跡のレコードへのマップ方法が定義されます。

現在このアダプタでは、JMSテキスト・メッセージの取得がサポートされています。

トランザクションの証跡からの適用

Oracle GoldenGate Javaアダプタの配信を使用して、トランザクションの変更をリレーショナル・データベース以外のターゲット(DataStage、Ab Initio、InformaticaなどのETLツール、JMSメッセージング、ビッグ・データ・アプリケーション、カスタム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にこれらの変更を適用します。

  • ビッグ・データ統合: トランザクション・データをソース証跡ファイルから各種のビッグ・データ・ターゲットに書き込む操作は、構成プロパティを設定することによって行います。Oracle GoldenGate for Big Data製品には、HDFS、HBase、KafkaおよびFlumeターゲットに書き込むためのビッグ・データ・ハンドラが組み込まれています。

4つのオプションはすべて、コアOracle GoldenGate製品の拡張として実装されています。

  • JMSまたはJava APIを使用したJava統合の場合、Java用Oracle GoldenGateを使用します。

  • ビッグ・データ統合のために、Oracle GoldenGateビッグ・データ・モジュールと統合されるようにOracle GoldenGate Replicatを構成できます。各種の形式でビッグ・データ・ターゲットに書き込む操作は、一連のプロパティを使用して構成でき、プログラミングの必要はありません。

 Oracle GoldenGate Javaアダプタのプロパティの使用

Oracle GoldenGate Javaアダプタ、ビッグ・データ・ハンドラおよびフォーマッタは、あらかじめ定義されたプロパティを通じて構成します。これらのプロパティは、アダプタ・プロパティ・ファイルという別個のプロパティ・ファイルに格納されます。Oracle GoldenGateが機能するには、Replicatプロセスの構成ファイルがdirprmディレクトリにあり、その構成ファイルが次の命名規則に従っている必要があります。

Replicatプロセス名.prm

ベスト・プラクティスとして、アダプタ・プロパティ・ファイルもdirprmディレクトリにあり、そのアダプタ・プロパティ・ファイルが次のいずれかの命名規則に従っていることも必要です。

Replicatプロセス名.props

または

Replicatプロセス名.properties

プロパティ・ファイル内の値

Oracle GoldenGateアダプタのプロパティ・ファイル内のプロパティはすべて次の形式です。

property.name=value 

プロパティ・ファイルの場所

サンプルOracle GoldenGateアダプタ・プロパティ・ファイルは、インストール・ディレクトリの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

プロパティ・ファイルでのコメントの使用

行の先頭に#接頭辞を付けることで、プロパティ・ファイルにコメントを入力できます。次に例を示します。

# This is a property comment 
some.property=value 

プロパティ自体をコメントにすることもできます。これによって、前のプロパティ設定を保持したまま構成をテストできます。

プロパティ名内の変数

一部のプロパティは、プロパティ名に変数を含みます。これによって、特定のインスタンスでのみ適用されるプロパティを示すことができます。

たとえば、goldengate.flatfilewriter.writersプロパティを使用して複数のファイル・ライターを宣言し、ファイル・ライターの名前を使用して、異なるプロパティを設定できます。

  1. writerおよびwriter2という名前の2つのファイル・ライターを宣言します。
    goldengate.flatfilewriter.writers=writer,writer2 
    
  2. 各ファイル・ライターのプロパティを指定します。
    writer.mode=dsv 
    writer.files.onepertable=true
    writer2.mode=ldv 
    writer2.files.onpertable=false

Oracle GoldenGateのドキュメント

Oracle GoldenGateアダプタ製品と組み合せて使用するためのコアOracle GoldenGateソフトウェアのインストールおよび構成の詳細は、次のOracle GoldenGateのドキュメントを参照してください。

  • インストレーションおよびセットアップ・ガイド: Oracle GoldenGateによってサポートされるデータベースごとにこのガイドがあります。システム要件、インストール前後の処置、インストール手順、およびOracle GoldenGateレプリケーション・ソリューションをインストールするためのその他のシステム固有の情報が含まれます。

  • Oracle GoldenGateの管理: WindowsおよびUNIXプラットフォームでのOracle GoldenGateレプリケーション・ソリューションの計画、構成および実装方法について説明しています。

  • Oracle GoldenGateリファレンス: WindowsおよびUNIXプラットフォームでのOracle GoldenGateパラメータ、コマンドおよび関数の詳細情報が含まれます。