Oracle GoldenGate for Big Data統合は、Oracle GoldenGate Java Deliveryフレームワークへのプラガブル機能として実行され、Javaアダプタ・フレームワークとも言います。この機能は、Java Deliveryの機能を拡張します。『Oracle GoldenGateアダプタの管理』で、Java Deliveryの説明を確認することをお薦めします。
Oracle GoldenGate for Big Dataは特定の構成をサポートし、ハンドラは明確に定義されたソフトウェア・バージョンと互換性があり、多くのサポート・トピックがあります。この項では、関連するすべてのサポート情報を示します。
内容は次のとおりです。
サポートされているハードウェアまたはソフトウェア構成で製品をインストールしていることを確認します。詳細は、「Oracle Fusion Middleware Supported System Configurations」ページのリリースの動作保証に関するドキュメントを参照してください。
Oracleでは、動作保証済のすべてのシステムおよび環境で製品のパフォーマンスをテストおよび検証しており、新しい動作保証情報が発表された場合は、適切な動作保証ドキュメントにすぐに追加されます。新しい動作保証情報は常に発生する可能性があるため、動作保証ドキュメントはドキュメント・ライブラリの外部に保持され、Oracle Technology Networkで利用できます。
この項では、Oracle GoldenGate for Big Dataのそれぞれのハンドラが、ディストリビューション、データベース・リリース、ドライバなどの様々なデータ・コレクションとどのように互換性があるかについて説明します。
内容は次のとおりです。
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) |
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ハンドラ構成プロパティhBase98Compatible
をtrue
に設定して0.98.x HBaseインタフェースを使用するようHBaseハンドラを構成します。
または、CDH 5.4.x以降のHBaseに接続する際に、Apache HBaseクライアント・ライブラリを使用できます。
HBaseハンドラは、次と連動する設計になっています。
ディストリビューション | バージョン |
---|---|
Apache HBase |
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)
|
Cloudera Distribution Including Apache Hadoop (CDH) |
|
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) |
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) |
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 |
この項では、Oracle GoldenGate for Big Dataのハンドラのその他のサポートに関する考慮事項について説明します。
次に示すように、ハンドラは、「プラガブル・フォーマッタの使用」で説明されているプラガブル・フォーマッタをサポートします。
プラガブル・フォーマッタは、HBaseハンドラには適用されません。データは、プロプライエタリなHBaseクライアント・インタフェースを使用してHBaseにストリーミングされます。
Flumeハンドラは、「プラガブル・フォーマッタの使用」で説明されているすべてのプラガブル・ハンドラをサポートします。
Kafkaハンドラは、「プラガブル・フォーマッタの使用」で説明されているすべてのプラガブル・ハンドラをサポートします。
Cassandra、MongoDBおよびJDBCハンドラは、プラガブル・フォーマッタを使用しません。
以前のリリースでは、AvroフォーマッタはAvroのbyteデータ型をサポートしていませんでした。バイナリ・データがかわりにBase64に変換され、stringデータ型のフィールドとしてAvroメッセージに保存されていました。これには、Base64からバイナリにデータを戻すための追加の変換手順が必要でした。
Avroフォーマッタは、Avroバイト・フィールドにマップされるバイナリ・ソース・フィールドを識別できるようになりました。ソース証跡ファイルからの元のバイト・ストリームは、Base64に変換せずに対応するAvroメッセージに伝播されます。
schema_hash
フィールドはschema_fingerprint
フィールドに変更されました。schema_fingerprint
はlong型で、org.apache.avro.SchemaNormalization
クラスのparsingFingerprint64(Schema s)
メソッドを使用して生成されます。この識別子によって、汎用ラッパー・メッセージから、汎用ラッパー・メッセージに含まれるAvroペイロード・メッセージの生成に使用されるAvroスキーマへのトレーサビリティが向上します。
JSONフォーマッタは、操作モデル化データに加えて、行モデル化データもサポートします。行モデル化データには、挿入操作後のイメージ・データ、更新操作後のイメージ・データ、削除操作前のイメージ・データ、および主キー更新の特別な処理が含まれます。
Extractを使用するJava配信はサポートされておらず、このリリースで非推奨となりました。Java配信のサポートは、Replicatプロセスの使用でのみサポートされています。Replicatにより、パフォーマンスが向上し、チェックポイントのサポートが改善され、トランザクションのグループ化の制御が改善されます。
Kafkaバージョン0.8.2.2、0.8.2.1および0.8.2.0のサポートは中止されました。これにより、Kafkaプロデューサでのフラッシュ・コールの実装が可能になり、フロー制御およびチェックポイント化のサポートが改善されました。
抽出、ロード、変換(ELT)を使用できるように、HDFSハンドラに新機能が追加されました。前のファイルが閉じるとただちに新しいファイルを作成するgg.handler.name.openNextFileAtRoll=true
プロパティが新しく追加されました。前のファイル・ストリームをクローズした直後に、新しいファイルがHDFSディレクトリに表示されます。
Avroオブジェクト・コンテナ・ファイル(OCF)形式または順序ファイル形式でHDFSファイルを書き込む際には、この機能は動作しません。
このハンドラのみが、ソース表から一意の行を複製できます。ソース表に定義済の主キーがなく、重複行がある場合、MongoDBターゲットに重複行を複製すると、重複キー・エラーが発生し、Replicatプロセスが異常終了します。
欠落した更新および削除は検出されないため、無視されます。
シャード・コレクションでテストされていません。
ミリ秒の精度の日時データ型のみをサポートします。証跡からの値でマイクロ秒またはナノ秒の精度のものは、ミリ秒の精度に切り捨てられます。
証跡でtimezone
を含むdatetime
データ型は、サポートされていません。
BSONドキュメントの最大サイズは16MBです。証跡レコード・サイズがこの制限を超えると、ハンドラはレコードを複製できません。
DDL伝播はありません。
切捨て操作はありません。
JDBCハンドラは汎用JDBC APIを使用します。つまりJDBCドライバが実装されたターゲット・データベースは、このハンドラを使用できる必要があります。JDBC APIをサポートする様々なデータベースが無数にあるため、OracleではすべてのターゲットのJDBCを動作保証できるわけではありません。Oracleでは、次のRDBMSターゲットのJDBCハンドラが動作保証されています。
ハンドラは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』を参照してください
この項では、ビッグ・データ・ターゲットとのOracle GoldenGate for Big Data統合を設定するために実行する必要がある様々なタスクについて説明します。
内容は次のとおりです。
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_PATH
、PATH
またはLIBPATH
)。
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
Oracle GoldenGate for Big Data統合でパフォーマンスを向上させる主な方法は、トランザクションのグループ化を利用する方法です。トランザクションのグループ化では、複数のトランザクションの操作をグループ化し、1つの大きいトランザクションにまとめます。大きいグループにまとめられたトランザクションを実行したほうが、通常は、小さい個別のトランザクションを実行するより効率的だからです。「Replicatによる実行」で説明されているように、トランザクションのグループ化は、Replicatプロセスで可能です。
この項では、GoldenGate for Big Dataのハンドラの構成方法について説明します。
内容は次のとおりです。
この項では、Oracle GoldenGate ReplicatプロセスでJavaアダプタを実行する方法について説明します。内容は次のとおりです。
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.*;
- 入力表から出力表へのマッピングを設定します。
ggsci
でReplicatプロセスを追加して起動するコマンドは、次のとおりです。
ADD REPLICAT hdfs, EXTTRAIL ./dirdat/gg START hdfs
Replicatプロセスは、Replicat構成プロパティGROUPTRANSOPS
を提供してトランザクションのグループ化を制御します。デフォルトでは、Replicatプロセスは1000個のトランザクションを1つのターゲット・トランザクションにグループ化します。トランザクションのグループ化をオフにする場合は、ReplicatプロパティGROUPTRANSOPS
を1
に設定します。
Replicatチェックポイント・ファイル.cpr
のほか、データベースのReplicatにおけるCHECKPOINTTABLE
と似た情報を含む追加のチェックポイント・ファイルdirchk/group.cpj
も作成されます。
次のReplicat機能は、このリリースではサポートされません。
BATCHSQL
SQLEXEC
Stored Procedure
競合の解決および検出(CDR)
REPERROR
ビッグ・データのターゲットに対して使用するOracle GoldenGate for Big Data統合をトラブルシューティングするには、ロギングが必須です。この項では、Oracle GoldenGate for Big Data統合のログと、ロギングのベスト・プラクティスについて説明します。内容は次のとおりです。
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層は重要です。
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
を選択した場合は、FATAL
、ERROR
、WARN
のログ・メッセージがログ・ファイルに書き込まれます)。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
は、ワイルドカードを追加していないプロパティ・ファイルを含むディレクトリである必要があります。
Oracle GoldenGate for Big Dataのハンドラとフォーマッタには、メタデータ変更イベントが発生したときにアクションを実行する機能があります。メタデータ変更イベントが発生したときにアクションを実行できる機能は、ソース証跡ファイルで利用できるメタデータ変更イベントによって異なります。Oracle GoldenGate は、ソースのOracleデータベースからの証跡のメタデータと、DDLデータを伝播をサポートします。ソース証跡ファイルに、証跡のメタデータとDDLデータ(メタデータ変更イベント)がない場合、Oracle GoldenGate for Big Dataはメタデータ変更イベントを処理できません。
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[]
のラッピングでプロパティを構成すると、空白が維持され、行区切り文字は改行文字になります。
個別に構成されるスキーマ・データ(カタログ名、スキーマ名、表名、列名)と列値データの両方についてより強力な検索および置換操作を実行できます。正規表現(regex)は、パターン・マッチングを通じて検索文字列をカスタマイズする文字列です。文字列を1つのパターンまたは正確に一致する部分に一致させることができます。Oracle GoldenGate for Big Dataでは、標準のOracle Java正規表現パッケージjava.util.regex
を使用します。詳細は、The Single UNIX Specification, Version 4の「Base Definitions」巻にある正規表現に関する内容を参照してください。
この項の内容は次のとおりです。
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
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[]
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で事前作成されている場合にサポートされます。 |
次の場合にサポートされます。
|
Kafka |
サポート対象 |
Avroなど、スキーマの伝播をサポートするフォーマットに対してサポートされます。これはあまり望ましくありません。 |
Flume |
サポート対象 |
Avroなど、スキーマの伝播をサポートするフォーマットに対してサポートされます。これはあまり望ましくありません。 |
Cassandra |
サポート対象 |
次の場合にサポートされます。
|
MongoDB |
サポート対象 |
サポート対象 |
JDBC |
サポート対象 |
サポート対象 |
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またはパスワードではなく、別名およびドメインをプロパティ・ファイルで指定します。ユーザー資格証明は、セキュアなウォレット・ストレージで管理されます。
この項の内容は次のとおりです。
ビッグ・データ環境用の資格証明ストアを作成できます。
GGSCI ADD CREDENTIALSTORE
コマンドを使用して、Oracle GoldenGateインストール・ディレクトリ(デフォルト)のdircrd/
サブディレクトリにあるcwallet.sso
という名前のファイルを作成します。
資格証明ストアcwallet.sso
ファイルの場所を指定するには、GLOBALS
ファイルのCREDENTIALSTORELOCATION
パラメータで目的の場所を指定します。
資格証明ストアのコマンドの詳細は、『Oracle GoldenGateリファレンスfor Windows and UNIX』を参照してください。
注意:
Oracle GoldenGateインスタンスごとに1つの資格証明ストアのみ使用できます。
ビッグ・データ環境の資格証明ストアを作成した後、ストアにユーザーを追加できます。
各ユーザーを作成するには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』を参照してください。
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ユーザー・イグジット層ではアクセスされない)構成プロパティは資格証明ストアから解決できます。これにより、機密情報を含む構成エントリを保護する方法に柔軟性を持たせることができます。