プライマリ・コンテンツへ移動
Oracle® Fusion Middleware Oracle GoldenGate for Big Dataの統合
リリース12.3.0.1
E88297-01
目次へ移動
目次

前
次

1 GoldenGate for Big Dataの概要

この章では、Oracle GoldenGate for Big Dataの概念および機能の概要を示します。環境を検証および設定する方法、Replicatとともに使用する方法、ロギング・データ、その他の構成の詳細について説明します。内容は次のとおりです。

1.1 概要

Oracle GoldenGate for Big Data統合は、Oracle GoldenGate Java Deliveryフレームワークへのプラガブル機能として実行され、Javaアダプタ・フレームワークとも言います。この機能は、Java Deliveryの機能を拡張します。『Oracle GoldenGateアダプタの管理』で、Java Deliveryの説明を確認することをお薦めします。

1.2 サポート対象の理解

Oracle GoldenGate for Big Dataは特定の構成をサポートし、ハンドラは明確に定義されたソフトウェア・バージョンと互換性があり、多くのサポート・トピックがあります。この項では、関連するすべてのサポート情報を示します。

内容は次のとおりです。

1.2.1 動作保証要件とシステム要件の確認

サポートされているハードウェアまたはソフトウェア構成で製品をインストールしていることを確認します。詳細は、「Oracle Fusion Middleware Supported System Configurations」ページのリリースの動作保証に関するドキュメントを参照してください。

Oracleでは、動作保証済のすべてのシステムおよび環境で製品のパフォーマンスをテストおよび検証しており、新しい動作保証情報が発表された場合は、適切な動作保証ドキュメントにすぐに追加されます。新しい動作保証情報は常に発生する可能性があるため、動作保証ドキュメントはドキュメント・ライブラリの外部に保持され、Oracle Technology Networkで利用できます。

1.2.2 ハンドラの互換性の理解

この項では、Oracle GoldenGate for Big Dataのそれぞれのハンドラが、ディストリビューション、データベース・リリース、ドライバなどの様々なデータ・コレクションとどのように互換性があるかについて説明します。

内容は次のとおりです。

1.2.2.1 HDFSハンドラ

HDFSハンドラは、次のバージョンと連動する設計になっています。

ディストリビューション バージョン

Apache Hadoop

2.7.x

2.6.0

2.5.x

2.4.x

2.3.0

2.2.0

3.0.0-alpha 1

Hortonworks Data Platform (HDP)

HDP 2.5 (HDFS 2.7.3)

HDP 2.4 (HDFS 2.7.1)

HDP 2.3 (HDFS 2.7.1)

HDP 2.2 (HDFS 2.6.0)

HDP 2.1 (HDFS 2.4.0)

Cloudera Distribution Include Apache Hadoop (CDH)

CDH 5.8.x (HDFS 2.6.0)

CDH 5.7.x (HDFS 2.6.0)

CDH 5.6.x (HDFS 2.6.0)

CDH 5.5.x (HDFS 2.6.0)

CDH 5.4.x (HDFS 2.6.0)

CDH 5.3.x (HDFS 2.5.0)

CDH 5.2.x (HDFS 2.5.0)

CDH 5.1.x (HDFS 2.3.0)

1.2.2.2 HBaseハンドラ

Cloudera HBase 5.4.x以降にはApache HBase 1.0.0クライアント・インタフェースが完全に採用されていないため、そのHBaseクライアント・インタフェースに下位互換性を提供するApache HBaseコード行と完全に同期しません。つまり、Cloudera HBaseは新しいHBase 1.0.0インタフェースのバイナリ互換性を損ない、Oracle GoldenGate for Big Data HBase Handlerと統合するときに、NoSuchMethodErrorが生じます。これは次の2つの方法のいずれかで解決できます。

  • HBaseハンドラ構成プロパティhBase98Compatibletrueに設定して0.98.x HBaseインタフェースを使用するようHBaseハンドラを構成します。

  • または、CDH 5.4.x以降のHBaseに接続する際に、Apache HBaseクライアント・ライブラリを使用できます。

HBaseハンドラは、次と連動する設計になっています。

ディストリビューション バージョン

Apache HBase

hBase98Compatibleプロパティをtrueに設定した場合は0.98.xおよび0.96.x

1.2.x、1.1.xおよび1.0.x

Hortonworks Data Platform (HDP)

HDP 2.5 (HBase 1.1.2)

HDP 2.4 (HBase 1.1.2)

HDP 2.3 (HBase 1.1.1)

hBase98Compatibleプロパティをtrueに設定した場合はHDP 2.2 (HBase 0.98.4)。

Cloudera Distribution Including Apache Hadoop (CDH)

hBase98Compatibleプロパティをtrueに設定した場合はCDH 5.8.x (HBase 1.2.0)。

hBase98Compatibleプロパティをtrueに設定した場合はCDH 5.7.x (HBase 1.2.0)。

hBase98Compatibleプロパティをtrueに設定した場合はCDH 5.6.x (HBase 1.0.0)。

hBase98Compatibleプロパティをtrueに設定した場合はCDH 5.5.x (HBase 1.0.0)。

hBase98Compatibleプロパティをtrueに設定した場合はCDH 5.4.x (HBase 1.0.0)。

hBase98Compatibleプロパティをtrueに設定した場合はCDH 5.3.x (HBase 0.98.6)。

hBase98Compatibleプロパティをtrueに設定した場合はCDH 5.2.x (HBase 0.98.6)。

hBase98Compatibleプロパティをtrueに設定した場合はCDH 5.1.x (HBase 9.98.1)。

1.2.2.3 Flumeハンドラ

Oracle GoldenGate for Big DataのFlumeハンドラは、バージョン1.6.x、1.5.xおよび1.4.xのApache Flumeと連携して機能します。1.4.0より前のバージョンのFlumeについては、互換性は保証されません。

Flumeハンドラは次のバージョンと互換します。

ディストリビューション バージョン

ディストリビューション: Apache Flume

バージョン: 1.7.x、1.6.x、1.5.x、1.4.x

Hortonworks Data Platform (HDP)

HDP 2.5 (Flume 1.5.2)

HDP 2.4 (Flume 1.5.2)

HDP 2.3 (Flume 1.5.2)

HDP 2.2 (Flume 1.5.2)

HDP 2.1 (Flume 1.4.0)

Cloudera Distribution Including Apache Hadoop (CDH)

CDH 5.8.x (Flume 1.6.0)

CDH 5.7.x (Flume 1.6.0)

CDH 5.6.x (Flume 1.6.0)

CDH 5.5.x (Flume 1.6.0)

CDH 5.4.x (Flume 1.5.0)

CDH 5.3.x (Flume 1.5.0)

CDH 5.2.x (Flume 1.5.0)

CDH 5.1.x (Flume 1.5.0)

1.2.2.4 Kafkaハンドラ

Kafkaハンドラは、8.2.2.2以降のバージョンのKafkaとは互換性がありません

Kafkaハンドラは、次と連動する設計になっています。

ディストリビューション バージョン

Apache Kafka

0.9.0.x

0.10.0.0

0.10.0.1

Hortonworks Data Platform (HDP)

HDP 2.5 (Kafka 0.10.0)

HDP 2.4 (Kafka 0.9.0)

Cloudera Distribution Including Apache Hadoop (CDH)には現在Kafkaは含まれていません。Clouderaは現在KafkaをApache KafkaのCloudera Distributionとして別途配布しています

Cloudera Distribution of Apache Kafka 2.0.x (Kafka 0.9.0.0)

Confluent Platform

3.0.1 (Kafka 0.10.0.0)

2.0.0 (Kafka 0.9.0.0)

1.2.2.5 Cassandraハンドラ

Cassandraハンドラは、Apache CassandraのDatastax 3.1.0 Java Driverを使用します。このドライバは、ソース証跡ファイルからCassandraデータベース内の対応する表に変更データ取得をストリーミングします。

HDFSハンドラは、次のバージョンと連動する設計になっています。

ディストリビューション バージョン

Apache Cassandra

1.2

2.0

2.1

2.2

3.0

Datastax Enterprise Cassandra

3.2

4.0

4.5

4.6

4.7

4.8

1.2.2.6 MongoDBハンドラ

MongoDBハンドラでは、ネイティブJavaドライバのバージョン3.2.2を使用します。次のMongoDBバージョンと互換します。

  • MongoDB 2.4 

  • MongoDB 2.6

  • MongoDB 3.0

  • MongoDB 3.2

  • MongoDB 3.4

1.2.2.7 JBDCハンドラ

JDBCハンドラは、汎用JDBC APIを内部的に使用します。これは、JDBC準拠のデータベース・ドライバに準拠する必要がありますが、次のターゲットに対してJDBCハンドラが動作保証されています。

  • Oracle JDBCドライバを使用したOracle Databaseターゲット。

  • MySQL JDBCドライバを使用したMySQL Databaseターゲット。

  • Netezza JDBCドライバを使用したIBM Netezzaターゲット。

  • Redshift JDBCドライバを使用したAmazon Redshiftターゲット。

1.2.3 その他のサポートに関する考慮事項。

この項では、Oracle GoldenGate for Big Dataのハンドラのその他のサポートに関する考慮事項について説明します。

プラガブル・フォーマッタ - サポート

次に示すように、ハンドラは、「プラガブル・フォーマッタの使用」で説明されているプラガブル・フォーマッタをサポートします。

  • HDFSハンドラは、すべてのプラガブル・ハンドラをサポートします。
  • プラガブル・フォーマッタは、HBaseハンドラには適用されません。データは、プロプライエタリなHBaseクライアント・インタフェースを使用してHBaseにストリーミングされます。

  • Flumeハンドラは、「プラガブル・フォーマッタの使用」で説明されているすべてのプラガブル・ハンドラをサポートします。

  • Kafkaハンドラは、「プラガブル・フォーマッタの使用」で説明されているすべてのプラガブル・ハンドラをサポートします。

  • Cassandra、MongoDBおよびJDBCハンドラは、プラガブル・フォーマッタを使用しません

Avroフォーマッタ - バイナリ・ソース・データのサポートの向上

以前のリリースでは、AvroフォーマッタはAvroのbyteデータ型をサポートしていませんでした。バイナリ・データがかわりにBase64に変換され、stringデータ型のフィールドとしてAvroメッセージに保存されていました。これには、Base64からバイナリにデータを戻すための追加の変換手順が必要でした。

Avroフォーマッタは、Avroバイト・フィールドにマップされるバイナリ・ソース・フィールドを識別できるようになりました。ソース証跡ファイルからの元のバイト・ストリームは、Base64に変換せずに対応するAvroメッセージに伝播されます。 

Avroフォーマッタ - 汎用ラッパー

schema_hashフィールドはschema_fingerprintフィールドに変更されました。schema_fingerprintはlong型で、org.apache.avro.SchemaNormalizationクラスのparsingFingerprint64(Schema s)メソッドを使用して生成されます。この識別子によって、汎用ラッパー・メッセージから、汎用ラッパー・メッセージに含まれるAvroペイロード・メッセージの生成に使用されるAvroスキーマへのトレーサビリティが向上します。

JSONフォーマッタ - 行モデル化データ

JSONフォーマッタは、操作モデル化データに加えて、行モデル化データもサポートします。行モデル化データには、挿入操作後のイメージ・データ、更新操作後のイメージ・データ、削除操作前のイメージ・データ、および主キー更新の特別な処理が含まれます。

Extractを使用するJava配信

Extractを使用するJava配信はサポートされておらず、このリリースで非推奨となりました。Java配信のサポートは、Replicatプロセスの使用でのみサポートされています。Replicatにより、パフォーマンスが向上し、チェックポイントのサポートが改善され、トランザクションのグループ化の制御が改善されます。

Kafkaハンドラ - バージョン

Kafkaバージョン0.8.2.2、0.8.2.1および0.8.2.0のサポートは中止されました。これにより、Kafkaプロデューサでのフラッシュ・コールの実装が可能になり、フロー制御およびチェックポイント化のサポートが改善されました。

HDFSハンドラ - ファイル作成

抽出、ロード、変換(ELT)を使用できるように、HDFSハンドラに新機能が追加されました。前のファイルが閉じるとただちに新しいファイルを作成するgg.handler.name.openNextFileAtRoll=trueプロパティが新しく追加されました。前のファイル・ストリームをクローズした直後に、新しいファイルがHDFSディレクトリに表示されます。

Avroオブジェクト・コンテナ・ファイル(OCF)形式または順序ファイル形式でHDFSファイルを書き込む際には、この機能は動作しません。

MongoDBハンドラ - サポート
  • このハンドラのみが、ソース表から一意の行を複製できます。ソース表に定義済の主キーがなく、重複行がある場合、MongoDBターゲットに重複行を複製すると、重複キー・エラーが発生し、Replicatプロセスが異常終了します。

  • 欠落した更新および削除は検出されないため、無視されます。

  • シャード・コレクションでテストされていません。

  • ミリ秒の精度の日時データ型のみをサポートします。証跡からの値でマイクロ秒またはナノ秒の精度のものは、ミリ秒の精度に切り捨てられます。

  • 証跡でtimezoneを含むdatetimeデータ型は、サポートされていません。

  • BSONドキュメントの最大サイズは16MBです。証跡レコード・サイズがこの制限を超えると、ハンドラはレコードを複製できません。

  • DDL伝播はありません。

  • 切捨て操作はありません。

JDBCハンドラ - サポート
  • JDBCハンドラは汎用JDBC APIを使用します。つまりJDBCドライバが実装されたターゲット・データベースは、このハンドラを使用できる必要があります。JDBC APIをサポートする様々なデータベースが無数にあるため、OracleではすべてのターゲットのJDBCを動作保証できるわけではありません。Oracleでは、次のRDBMSターゲットのJDBCハンドラが動作保証されています。

    • Oracle
    • MySQL
    • Netezza
    • Redshift
  • ハンドラはREPERRORおよびHANDLECOLLISIONSパラメータを使用したReplicatをサポートします。『Oracle GoldenGateリファレンスfor Windows and UNIX』を参照してください。

  • Redshift JDBCドライバを介して取得されたデータベース・メタデータには、既知の制約事項があります。『Oracle GoldenGate for Big Dataリリース・ノート』を参照してください。

    Replicatパラメータ・ファイルのRedshiftターゲット表名は、小文字で、二重引用符で囲む必要があります。次に例を示します。

     MAP SourceSchema.SourceTable, target “public”.”targetable”;  
  • DDL操作はデフォルトで無視され、WARNレベルで記録されます。

  • 調整Replicatは、シリアルではなくパラレルでトランザクションを適用するマルチスレッド・プロセスです。個々のスレッドは割り当てられたワークロードに対するフィルタリング、マッピング、変換、SQL構築およびエラー処理をすべて扱います。コーディネータ・スレッドは依存関係を示すようにスレッド間のトランザクションを調整します。これにより、データベース固有のルールに基づいた行ロック、ブロック・ロックまたは表ロックの問題が原因で同時に同じオブジェクトで特定のDMLが発生することを回避する同期的な方法で、DMLが適用されます。 データベース・ロックの問題がある場合、調整Replicatのパフォーマンスは、非常に遅くなるか一時停止します。『Oracle GoldenGateの管理for Windows and UNIX』を参照してください

1.3 Oracle GoldenGate for Big Dataの設定

この項では、ビッグ・データ・ターゲットとのOracle GoldenGate for Big Data統合を設定するために実行する必要がある様々なタスクについて説明します。

内容は次のとおりです。

1.3.1 Java環境設定

Oracle GoldenGate for Big Data統合は、実行時にJava仮想マシンのインスタンスを作成します。Oracle GoldenGate for Big Dataには、最低でもOracle Java 8 JREをインストールする必要があります。

Java 8のインストール・ディレクトリを指すようにJAVA_HOME環境変数を設定することをお薦めします。また、Java Deliveryプロセスはlibjvm.so (Windowsではlibjvm.dll)とlibjsig.so (Windowsではlibjsig.dll)のJava共有ライブラリをロードする必要があります。これらのライブラリは、JREの一部としてインストールされます。これらの共有ライブラリの場所を解決する必要があり、動的なライブラリを解決するように設定された適切な環境変数を、実行時にロードできます(つまり、LD_LIBRARY_PATHPATHまたはLIBPATH)。

1.3.2 プロパティ・ファイル

Oracle GoldenGate Java Deliverのユーザー・イグジット(Oracle GoldenGate Javaアダプタとも言う)を実行するために必要なOracle GoldenGateプロパティ・ファイルが、2つあります。ビッグ・データ統合を含むJava統合をホストするOracle GoldenGate Java Deliveryです。いずれかのプロセスを実行するには、Replicatプロパティ・ファイルが必要です。Replicatファイル名に必要な命名規則は、process_name.prmです。Replicatプロパティ・ファイルでのエグジット構文には、Javaアダプタ・プロパティ・ファイルの名前と場所を指定します。Javaアダプタの構成プロパティにGoldenGate for Big Data統合が含まれるのは、Javaアダプタ・プロパティ・ファイルです。Oracle GoldenGate for Big Data統合を実行するには、ReplicatとJavaアダプタのプロパティ・ファイルが必要です。

あるいは、デフォルト構文process_name.propertiesを使用しても、Javaアダプタ・プロパティは解決できます。Javaアダプタ・プロパティ・ファイルのデフォルトの命名を使用すると、Javaアダプタ・プロパティ・ファイルの名前をReplicatプロパティ・ファイルから省略できます。

Oracle GoldenGate for Big Data統合のプロパティ・ファイルの例は、次のディレクトリのサブディレクトリにあります。

GoldenGate_install_dir/AdapterExamples/big-data

1.3.3 トランザクションのグループ化

Oracle GoldenGate for Big Data統合でパフォーマンスを向上させる主な方法は、トランザクションのグループ化を利用する方法です。トランザクションのグループ化では、複数のトランザクションの操作をグループ化し、1つの大きいトランザクションにまとめます。大きいグループにまとめられたトランザクションを実行したほうが、通常は、小さい個別のトランザクションを実行するより効率的だからです。「Replicatによる実行」で説明されているように、トランザクションのグループ化は、Replicatプロセスで可能です。

1.4 GoldenGate for Big Dataの構成

この項では、GoldenGate for Big Dataのハンドラの構成方法について説明します。

内容は次のとおりです。

1.4.1 Replicatによる実行

この項では、Oracle GoldenGate ReplicatプロセスでJavaアダプタを実行する方法について説明します。内容は次のとおりです。

1.4.1.1 Replicatの構成

Javaアダプタで仕様するReplicatプロセス・プロパティ・ファイルの構成方法の例を次に示します。

REPLICAT hdfs
TARGETDB LIBFILE libggjava.so SET property=dirprm/hdfs.properties 
--SOURCEDEFS ./dirdef/dbo.def 
DDL INCLUDE ALL
GROUPTRANSOPS 1000
MAPEXCLUDE dbo.excludetable
MAP dbo.*, TARGET dbo.*;

次に示すのは、このReplicat構成エントリの説明です。

REPLICAT hdfs - Replicatプロセスの名前。

TARGETDB LIBFILE libggjava.so SET property=dirprm/hdfs.properties - libggjava.soを終了するときのターゲット・データベースを設定し、Javaアダプタ・プロパティ・ファイルをdirprm/hdfs.propertiesに設定します。

--SOURCEDEFS ./dirdef/dbo.def - ソース・データベース定義ファイルを設定します。これは、Oracle GoldenGateの証跡ファイルが証跡でメタデータを提供するため、コメント・アウトされています。

GROUPTRANSOPS 1000 - ソース証跡ファイルからの1000個のトランザクションを1つのターゲット・トランザクションにグループ化します。これがデフォルトで、ビッグ・データ統合のパフォーマンスが向上します。

MAPEXCLUDE dbo.excludetable - 除外する表を設定します。

MAP dbo.*, TARGET dbo.*; - 入力表から出力表へのマッピングを設定します。

1.4.1.2 Replicatプロセスの追加

ggsciでReplicatプロセスを追加して起動するコマンドは、次のとおりです。

ADD REPLICAT hdfs, EXTTRAIL ./dirdat/gg
START hdfs

1.4.1.3 Replicatのグループ化

Replicatプロセスは、Replicat構成プロパティGROUPTRANSOPSを提供してトランザクションのグループ化を制御します。デフォルトでは、Replicatプロセスは1000個のトランザクションを1つのターゲット・トランザクションにグループ化します。トランザクションのグループ化をオフにする場合は、ReplicatプロパティGROUPTRANSOPS1に設定します。

1.4.1.4 Replicatのチェックポイント化

Replicatチェックポイント・ファイル.cprのほか、データベースのReplicatにおけるCHECKPOINTTABLEと似た情報を含む追加のチェックポイント・ファイルdirchk/group.cpjも作成されます。

1.4.1.5 サポートされないReplicat機能

次のReplicat機能は、このリリースではサポートされません。

  • BATCHSQL

  • SQLEXEC

  • Stored Procedure

  • 競合の解決および検出(CDR)

  • REPERROR

1.4.1.6 マッピング機能

Oracle GoldenGate Replicatプロセスは、カスタム・ターゲット・スキーマへのマッピングをサポートしています。メタデータ・プロバイダ機能を使用して、ターゲット・スキーマ(複数も可)を定義してから、Replicat構成ファイルで標準のReplicatマッピング構文を使用して、マッピングを定義する必要があります。レプリケーション構成ファイルのReplicatマッピング構文の詳細は、『Oracle GoldenGateの管理for Windows and UNIX』を参照してください。

1.4.2 ロギング

ビッグ・データのターゲットに対して使用するOracle GoldenGate for Big Data統合をトラブルシューティングするには、ロギングが必須です。この項では、Oracle GoldenGate for Big Data統合のログと、ロギングのベスト・プラクティスについて説明します。内容は次のとおりです。

1.4.2.1 Replicatプロセスのロギング

Oracle GoldenGate for Big Data統合は、Java Deliveryの機能を利用します。Java Deliveryについては、『Oracle GoldenGateアダプタの管理』を参照してください。この設定では、Oracle GoldenGateのReplicatプロセスがユーザー・エグジット共有ライブラリをロードします。この共有ライブラリは次に、Java仮想マシンをロードし、それによってJavaインタフェースを提供するターゲットとのインタフェースをとります。したがって、データのフローは次のようになります。

Replicatプロセス —> ユーザー・イグジット —> Java層

ユーザーがログを見直して新しいインストールと統合をトラブルシューティングするには、すべての層で正しくログを記録することが重要です。また、問題が発生してOracleサポートへの連絡が必要になった場合も、ログ・ファイルは問題を効率的に解決するために、Oracleサポートに提供する情報としても重要です。

Replicatプロセスを実行すると、GoldenGate_Home/dirrptディレクトリにログ・ファイルが作成または追加されます。ファイルの命名規則は、process_name.rpt.です。新しいOracle GoldenGateプロセスをデプロイするときに問題が発生した場合は、最初に問題の有無を調べるべきログ・ファイルの候補です。ビッグ・データ・アプリケーションと統合する場合、Java層は重要です。

1.4.2.2 Java層のロギング

Oracle GoldenGate for Big Data製品には、Java層からログを記録できる柔軟性があります。ベスト・プラクティスとしては、Log4jロギングを使用してJava層からログを記録することをお薦めします。単純なLog4jロギングを有効にするには、Javaアダプタ構成ファイルで2つの構成値を設定する必要があります。

gg.log=log4j
gg.log.level=INFO

gg.log設定で、Log4jファイルはGoldenGate_Home/dirrptディレクトリに作成され、ファイル名はprocess_name_log level_log4j.logという命名規則に従います。サポートされるLog4jログ・レベルは、ロギングの粒度の順に次のリストになります。

  • OFF

  • FATAL

  • ERROR

  • WARN

  • INFO

  • DEBUG

  • TRACE

ロギング・レベルの選択には、粒度が低いほうのロギング・レベルがすべて含まれます(つまり、WARNを選択した場合は、FATALERRORWARNのログ・メッセージがログ・ファイルに書き込まれます)。Log4jロギングはまた、個々のLog4jプロパティ・ファイルでも制御できます。こうした個別のLog4jプロパティ・ファイルを有効にするには、Javaアダプタ・プロパティ・ファイルでbootoptionsプロパティを編集します。Log4jプロパティ・ファイルの3つの例が、インストール時に追加され、次のクラスパスにも含まれています。

log4j-default.properties
log4j-debug.properites
log4j-trace.properties

これらのファイルのいずれかで、次のようにbootoptionsを変更できます。

javawriter.bootoptions=-Xmx512m -Xms64m -Djava.class.path=.:ggjava/ggjava.jar -Dlog4j.configuration=samplelog4j.properties

カスタマイズした独自のLog4jプロパティ・ファイルを使用してロギングを制御できます。カスタマイズしたLog4jプロパティ・ファイルを、JVMが検索してロードするには、それがJavaクラスパスに存在する必要があります。カスタムLog4jプロパティ・ファイルの例を次に示します。

# Root logger option 
log4j.rootLogger=INFO, file 
 
# Direct log messages to a log file 
log4j.appender.file=org.apache.log4j.RollingFileAppender 
 
log4j.appender.file.File=sample.log 
log4j.appender.file.MaxFileSize=1GB 
log4j.appender.file.MaxBackupIndex=10 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

カスタムのLog4jプロパティ・ファイルを使用する場合には、重要な要件が2つあります。1つ目に、カスタムLog4jプロパティ・ファイルのパスがjavawriter.bootoptionsプロパティに含まれる必要があります。ロギングは、ロギングの書記化後にgg.classpathプロパティの内容が実際にclassloaderに追加されるとき、JVMが初期化されるとただちに初期化されます。2つ目に、プロパティ・ファイルを正しくロードするclasspathは、ワイルドカードを追加していないプロパティ・ファイルを含むディレクトリである必要があります。

1.4.3 メタデータ変更イベント

Oracle GoldenGate for Big Dataのハンドラとフォーマッタには、メタデータ変更イベントが発生したときにアクションを実行する機能があります。メタデータ変更イベントが発生したときにアクションを実行できる機能は、ソース証跡ファイルで利用できるメタデータ変更イベントによって異なります。Oracle GoldenGate は、ソースのOracleデータベースからの証跡のメタデータと、DDLデータを伝播をサポートします。ソース証跡ファイルに、証跡のメタデータとDDLデータ(メタデータ変更イベント)がない場合、Oracle GoldenGate for Big Dataはメタデータ変更イベントを処理できません。

1.4.4 構成プロパティCDATA[]のラッピング

GoldenGate for Big Dataのハンドラおよびフォーマッタでは、値を空白として解釈できるJavaプロパティ・ファイルで、多くのパラメータの構成がサポートされています。Javaアダプタの構成処理では、Java構成ファイルの構成値から空白が削除されます。空白を削除するこの動作は、構成値によっては望ましいこともありますか、別の構成値には望ましくない場合もあります。また、選択した構成変数で空白が維持されるように、空白値を特殊な構文でラップできます。GoldenGate for Big Dataは、空白を維持するためにCDATA[]のXML構文を借用しています。空白文字と見なされる値を、CDATA[]の内部にラップできます。

区切りテキスト・フォーマッタで、改行を区切り文字として設定しようとする例を次に示します。

gg.handler.{name}.format.lineDelimiter=\n

この構成は成功しません。改行文字は空白として解釈され、構成値から削除されてしまうからです。したがって、gg.handler設定では実質的に、行区切り文字が空白文字列に設定されます。

改行文字の構成を維持するには、次のように、その文字をCDATA[]ラッパーでラップするだけです。

gg.handler.{name}.format.lineDelimiter=CDATA[\n]

CDATA[]のラッピングでプロパティを構成すると、空白が維持され、行区切り文字は改行文字になります。

1.4.5 正規表現を使用した検索と置換

個別に構成されるスキーマ・データ(カタログ名、スキーマ名、表名、列名)と列値データの両方についてより強力な検索および置換操作を実行できます。正規表現(regex)は、パターン・マッチングを通じて検索文字列をカスタマイズする文字列です。文字列を1つのパターンまたは正確に一致する部分に一致させることができます。Oracle GoldenGate for Big Dataでは、標準のOracle Java正規表現パッケージjava.util.regexを使用します。詳細は、The Single UNIX Specification, Version 4の「Base Definitions」巻にある正規表現に関する内容を参照してください。

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

1.4.5.1 スキーマ・データの置換の使用

gg.schemareplaceregexおよびgg.schemareplacestringプロパティを使用してスキーマ・データを置換できます。gg.schemareplaceregexを使用して正規表現を設定してから、それを使用してカタログ名、スキーマ名、表名、および列名で対応する一致項目を検索します。一致項目はgg.schemareplacestring値の内容に置き換えられます。gg.schemareplacestringのデフォルト値は空の文字列または""です。

たとえば、システム表名の中には、$mytableのようにドル記号から始まるものがあります。ほとんどのビッグ・データ・ターゲットでは表名にドル記号を使用できませんが、これらの表を複製する必要がある場合があります。ドル記号を削除するには、次の置換文字列を構成できます。

gg.schemareplaceregex=[$] 
gg.schemareplacestring= 

検索および置換された表名の結果の例はmytableです。これらのプロパティはCDATA[]ラッピングもサポートして、構成値の値の空白を保持します。したがって、前と同じ例でCDATA[]ラッピングすると次のようになります。

gg.schemareplaceregex=CDATA[[$]]
gg.schemareplacestring=CDATA[]

スキーマの検索および置換機能は、次の構成構文を使用した複数の検索正規表現および置換文字列の使用をサポートします。

gg.schemareplaceregex=some_regex
gg.schemareplacestring=some_value
gg.schemareplaceregex1=some_regex
gg.schemareplacestring1=some_value
gg.schemareplaceregex2=some_regex
gg.schemareplacestring2=some_value

1.4.5.2 コンテンツ・データの置換の使用

gg.contentreplaceregexおよびgg.contentreplacestringプロパティを使用してコンテンツ・データを置換し、構成された正規表現を使用して列値を検索して、一致項目を置換文字列で置換できます。たとえば、これは列値の改行文字を置き換えるのに役立ちます。区切りテキスト・フォーマッタが使用された場合、データに含まれる改行文字は分析ツールで行区切り文字として誤って解釈されます。

n個のコンテンツ置換regex検索値を構成できます。regex検索および置換は、構成の順序で実行されます。構成される値は、次の特定の順序に従う必要があります。

gg.conentreplaceregex=some_regex
gg.conentreplacestring=some_value
gg.conentreplaceregex1=some_regex
gg.conentreplacestring1=some_value
gg.conentreplaceregex2=some_regex
gg.conentreplacestring2=some_value

添え字2を使用せずに添え字3を構成すると、添え字3の構成が無視されます。

注意

 正規表現の検索と置換にはコンピューティング処理が必要で、Oracle GoldenGate for Big Dataプロセスのパフォーマンスが低下する可能性があります。

改行を空白文字に置き換えるには、次のプロパティ構成を使用できます。

gg.contentreplaceregex=[\n] 
gg.contentreplacestring=CDATA[ ]

これによって、列値が次の値から変更されます。

this is 
me

変更後の値は次のとおりです。 :

this is me

どちらの値もCDATAラッピングをサポートします。2つ目の値はCDATA[]ラッパーでラップする必要があります。1つの空のスペースは空白と解釈されて、Oracle GoldenGate for Big Data構成層でトリミングされます。さらに、複数の検索および置換文字列を構成できます。たとえば、次の文字列から改行を削除するのに加え、列値から先頭および末尾の空白も削除します。

^\\s+|\\s+$
gg.contentreplaceregex1=^\\s+|\\s+$ 
gg.contentreplacestring1=CDATA[]

1.4.6 Oracle GoldenGate for Big Data配信のスケーリング

 Oracle GoldenGate for Big Dataは、スループット向上のために、ソース証跡ファイルの分割をサポートします。複数のReplicatプロセスに分割するか、またはCoordinated Deliveryを使用して単一のReplicatプロセス内で複数のJavaアダプタ・インスタンスをインスタンス化します。これにより、Oracle GoldenGate for Big Data配信をスケーリングできます。

パフォーマンスが最大となるようにハンドラをチューニングした後でも、Oracle GoldenGate for Big Data統合ターゲットへのスループットが、サービス・レベル合意を満たすのに不十分な場合があります。これが発生すると、次のいずれかの方法を使用して、パラレル処理を構成し、ターゲットに配信できます。

  • 複数のReplicatプロセスを、同じソース証跡ファイルからデータを読み取るように構成できます。すべてのプロセスがソース証跡ファイル全体をまとめて処理するように、これらの各Replicatプロセスは、ソース証跡ファイルのデータのサブセットを処理するよう構成されます。 このソリューションを使用した別々のReplicatプロセス間の調整はありません。

  • Oracle GoldenGate Coordinated Deliveryは、単一のReplicatプロセス内のソース証跡ファイルからのデータの処理をパラレル化するために使用できます。このソリューションは、構成済の各サブセットが別の配信スレッドによって処理される論理サブセットへの証跡ファイルの分割を伴います。Coordinated Deliveryの詳細は、https://blogs.oracle.com/dataintegration/entry/goldengate_12c_coordinated_replicatを参照してください。

どちらの方法でも、スループットの向上のため、データをパラレル処理に分割できます。次の2つの方法のいずれかでデータを分割することをお薦めします。

  • ソース・データをソース表別に分割 - データはソース表別のサブセクションに分割されます。たとえば、Replicatプロセス1はソース表(表1および表2)を処理しますが、Replicatプロセス2はソース表(表3および表2)のデータを処理します。データはソース表ごとに分割され、個々の表データはさらに分割されることはありません。

  • ソース表データをサブストリームに分割 - ソース表のデータが分割されます。たとえば、Replicatプロセス1はソース表1のデータ範囲の半分を処理し、Replicatプロセス2はソース表1のもう半分のデータを処理します。

その他の制限事項:

  • パラレル適用はサポートされていません

  • BATCHSQLパラメータはサポートされていません。

例1-1 Oracle GoldenGate for Big Dataのハンドラのスケーリング・サポート

ハンドラ名 ソース・データをソース表別に分割 ソース表データをサブストリームに分割

HDFS

サポート対象

サポート対象外

HBase

必要なすべてのHBaseネームスペースがHBaseで事前作成されている場合にサポートされます。

次の場合にサポートされます。

  • 必要なすべてのHBaseネームスペースがHBaseで事前作成されている場合。

  • 必要なすべてのHBaseターゲット表がHBaseで事前作成されている場合。HBase表にはスキーマ定義がなく、ソース・メタデータ変更にHBaseでのスキーマ変更は必要ではないため、スキーマ展開は問題ではありません。

  • ソース・データに切捨て操作が含まれない場合。

Kafka

サポート対象

Avroなど、スキーマの伝播をサポートするフォーマットに対してサポートされます。これはあまり望ましくありません。

Flume

サポート対象

Avroなど、スキーマの伝播をサポートするフォーマットに対してサポートされます。これはあまり望ましくありません。

Cassandra

サポート対象

次の場合にサポートされます。

  • Cassandraで必要なターゲット表が事前作成されている場合。

  • メタデータ変更イベントが発生しない場合。

MongoDB

サポート対象

サポート対象

JDBC

サポート対象

サポート対象

1.4.7 Oracle GoldenGate資格証明ストアでの識別子の使用

Oracle GoldenGateの資格証明ストアはユーザーIDおよびその暗号化されたパスワード(ともに資格証明と呼ばれます)を管理します。これらはOracle GoldenGateプロセスにより使用され、ローカル・データベースと対話します。資格証明ストアを使用すると、Oracle GoldenGateのパラメータ・ファイルにユーザー名およびクリアテキスト・パスワードを指定する必要がなくなります。ユーザーIDのかわりにパラメータ・ファイルのオプションの別名を使用して、資格証明ストアのユーザーIDとパスワードのペアにマップすることもできます。資格証明ストアはOracle Credential Store Framework (CSF)内の自動ログイン・ウォレットとして実装されます。LDAPディレクトリの使用は、Oracle GoldenGate資格証明ストアではサポートされていません。自動ログイン・ウォレットは、必要なパスワードを指定するための人の介在を必要とせず、Oracle GoldenGateプロセスの自動再起動をサポートします。

Oracle GoldenGate for Big Dataでは、実際のユーザーIDまたはパスワードではなく、別名およびドメインをプロパティ・ファイルで指定します。ユーザー資格証明は、セキュアなウォレット・ストレージで管理されます。

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

1.4.7.1 資格証明ストアの作成

ビッグ・データ環境用の資格証明ストアを作成できます。

GGSCI ADD CREDENTIALSTOREコマンドを使用して、Oracle GoldenGateインストール・ディレクトリ(デフォルト)のdircrd/サブディレクトリにあるcwallet.ssoという名前のファイルを作成します。

資格証明ストアcwallet.ssoファイルの場所を指定するには、GLOBALSファイルのCREDENTIALSTORELOCATIONパラメータで目的の場所を指定します。

資格証明ストアのコマンドの詳細は、『Oracle GoldenGateリファレンスfor Windows and UNIX』を参照してください。

注意:

Oracle GoldenGateインスタンスごとに1つの資格証明ストアのみ使用できます。

1.4.7.2 資格証明ストアへのユーザーの追加

ビッグ・データ環境の資格証明ストアを作成した後、ストアにユーザーを追加できます。

各ユーザーを作成するにはGGSCI ALTER CREDENTIALSTORE ADD USER userid PASSWORD password [ALIAS alias] [DOMAIN domain]コマンドを実行します。

  • useridはユーザー名です。資格証明ストアに配置できるユーザー名のインスタンスは1つのみです(ALIASまたはDOMAINオプションが使用されていない場合)。

  • passwordはユーザーのパスワードです。このオプションを使用すると、パスワードはエコーされます(不明瞭化されません)。このオプションを省略すると、コマンドはパスワードを要求しますが、入力時に不明瞭化されます(より安全な方法として推奨されます)。

  • aliasはユーザー名の別名です。ログイン資格証明が必要なパラメータとコマンドでは、資格証明のかわりに別名を使用します。ALIASオプションを省略すると、別名はデフォルトでユーザー名に設定されます。

次に例を示します。

ALTER CREDENTIALSTORE ADD USER scott PASSWORD tiger ALIAS scsm2 domain ggadapters

資格証明ストアのコマンドの詳細は、『Oracle GoldenGateリファレンスfor Windows and UNIX』を参照してください。

1.4.7.3 資格証明ストアにアクセスするためのプロパティの構成

Oracle GoldenGate Java Adapterプロパティ・ファイルでは、実行時に資格証明ストアのユーザー名とパスワード・エントリを解決する固有の構文が必要です。ユーザー名を解決するための構文は次のとおりです。

ORACLEWALLETUSERNAME alias domain_name

パスワードを解決するための構文は次のとおりです。

ORACLEWALLETPASSWORD alias domain_name

次の例は、myaliasという別名とmydomainというドメインで資格証明ストアのエントリを構成する方法を示しています。

注意:

HDFS Hive JDBCでは、ユーザー名とパスワードが暗号化されます。

gg.handler.hdfs.hiveJdbcUsername=ORACLEWALLETUSERNAME[myalias mydomain] 
gg.handler.hdfs.hiveJdbcPassword=ORACLEWALLETPASSWORD[myalias mydomain]

資格証明ストアは、ユーザー名とパスワードのペア・タイプの証明書を保存するためのものですが、この機能はさらに一般的に適用できます。ユーザー名とパスワードのエントリは資格証明ストアでアクセス可能な値と見なされます。Java Adapter層で解決される(Cユーザー・イグジット層ではアクセスされない)構成プロパティは資格証明ストアから解決できます。これにより、機密情報を含む構成エントリを保護する方法に柔軟性を持たせることができます。