8.1.2 Apache Cassandra
Cassandra Extract用のOracle GoldenGate for Distributed Applications and Analytics (GG for DAA)キャプチャ(Extract)は、Apache Cassandraデータベースから変更を取得するために使用します。
UIの「抽出オプション」の「開始」で、Extractの開始位置を選択できます。「今すぐ」を選択するか、「カスタム時間」を定義することができます。
- 概要
- Cassandra Extractチェンジ・データ・キャプチャの設定
- 重複排除
- トポロジの変更
- CDCログでのデータの可用性
- 初期ロードExtractの使用
- チェンジ・データ・キャプチャのExtractの使用
- RDBMSターゲットへの複製
- 静的な列のパーティション更新または挿入
- パーティション削除
- セキュリティと認証
- CDCコミット・ログ・ファイルのクリーン・アップ
Cassandra CDCコミット・ログ・パージ・プログラムを使用すると、使用されていないCDCコミット・ログ・ファイルをパージできます。 - 複数のExtractのサポート
- CDC構成リファレンス
- トラブルシューティング
- Cassandraキャプチャ・クライアント依存性
Apache Cassandraデータベースに接続するためのCassandraキャプチャ(Extract)の依存性とはどのようなものでしょう。
親トピック: ソース
8.1.2.1 概要
Apache Cassandraは、大量のデータを格納するために設計されたNoSQLデータベース管理システムです。Cassandraクラスタ構成によって、複数のマシン間でデータの水平スケーリングおよびレプリケーションが行われます。Cassandraクラスタ内の複数のノードにデータを複製することによって、高可用性が実現し、シングル・ポイント障害を防ぐことができます。Apache Cassandraはオープン・ソースで、低価格のコモディティ・ハードウェア上で実行できるように設計されています。
Cassandraでは、原子性、整合性、独立性および永続性に関して、従来のリレーショナル・データベース管理システム(RDBMS)の原理が緩和されています。Cassandraの実装を検討する場合は、従来のRDBMSとの相違点と、その相違点が個々のユースケースにどのように影響するかを理解しておくことが重要です。
Cassandraでは最終的に整合性が保たれます。最終的整合性モデルでは、特定の行のデータの状態にアクセスすると、最新の変更によって定義されたとおりに、その行のデータの最新状態を最終的には返します。ただし、行の状態の作成および変更と、その行の状態を問い合せたときの戻り値の間に、レイテンシ期間が生じる場合があります。最終的整合性には、Cassandra構成およびCassandraクラスタが現在置かれているワークロードのレベルに応じてレイテンシ期間が予測されるという利点があります。http://cassandra.apache.org/を参照してください。
データ型のサポートを確認し、「Cassandraのデータ型について」を参照してください。
親トピック: Apache Cassandra
8.1.2.2 Cassandra Extractチェンジ・データ・キャプチャの設定
前提条件
-
Apache Cassandraクラスタでは、少なくとも1つのノードが稼働している必要があります。
-
クラスタ内のすべてのライブ・ノード上でのCDCコミット・ログ・ファイルへの読取りおよび書込みアクセスは、SFTPまたはNFSを介して行われます。詳細は、CassandraノードへのSSH接続の設定を参照してください。
-
Cassandraクラスタ内のすべてのノードで、
cassandra.yaml
構成ファイルのcdc_enabled
パラメータがtrue
に設定されている必要があります。 -
すべてのCassandraノードについて、
cassandra.yaml
でnum_tokens
パラメータを設定することによって、仮想ノードを有効にする必要があります。 - 依存性ダウンローダ・スクリプトを使用してサード・パーティ・ライブラリをダウンロードする必要があります。詳細は、Cassandraキャプチャ・クライアントの依存性を参照してください。
-
チェンジ・データ・キャプチャが有効な新しい表を作成するには、
CREATE TABLE
コマンドでWITH CDC=true
句を使用します。たとえば:CREATE TABLE ks_demo_rep1.mytable (col1 int, col2 text, col3 text, col4 text, PRIMARY KEY (col1)) WITH cdc=true;
次のように、既存の表でCDCを有効にできます。
ALTER TABLE ks_demo_rep1.mytable WITH cdc=true;
- CassandraノードへのSSH接続の設定
Oracle GoldenGate for Distributed Applications and Analytics (GG for DAA)では、すべてのCassandraノードからCassandraコミット・ログ・ファイルが転送されます。Oracle GoldenGateでセキュア・シェル・プロトコル(SFTP)を使用してコミット・ログ・ファイルを転送できるようにするには、known_hosts
SSHファイルを生成します。 - データ型
- Cassandraデータベースの操作
- ソース・タイプを検出するための資格証明ストア・エントリの設定
親トピック: Apache Cassandra
8.1.2.2.1 CassandraノードへのSSH接続の設定
Oracle GoldenGate for Distributed Applications and Analytics (GG for DAA)では、すべてのCassandraノードからCassandraコミット・ログ・ファイルが転送されます。Oracle GoldenGateでセキュア・シェル・プロトコル(SFTP)を使用してコミット・ログ・ファイルを転送できるようにするには、known_hosts
SSHファイルを生成します。
known_hosts
SSHファイルを生成する手順は、次のとおりです。
8.1.2.2.2 データ型
サポートされているCassandraソース・データ型
サポートされているソース・データ型は次のとおりです:
-
ASCII
-
BIGINT
-
BLOB
-
BOOLEAN
-
DATE
-
DECIMAL
-
DOUBLE
-
DURATION
-
FLOAT
-
INET
-
INT
-
SMALLINT
-
TEXT
-
TIME
-
TIMESTAMP
-
TIMEUUID
-
TINYINT
-
UUID
-
VARCHAR
-
VARINT
サポートされていないソース・データ型
サポートされていないソース・データ型は次のとおりです:
-
COUNTER
-
MAP
-
SET
-
LIST
-
UDT
(ユーザー定義型) -
TUPLE
-
CUSTOM_TYPE
8.1.2.2.3 Cassandraデータベースの操作
サポートされている操作
サポートされる操作は次のとおりです。
-
INSERT
-
UPDATE
(INSERT
としてキャプチャ) -
DELETE
サポートされていない操作
TRUNCATE
DDL
(CREATE
、ALTER
およびDROP
)操作はサポートされていません。Cassandraコミット・ログ・ファイルはUPDATE
またはDELETE
操作の操作前イメージを記録しないため、キャプチャされた操作には操作前イメージがありません。競合の検出や解決など、操作前イメージのレコードに依存するOracle GoldenGate機能は使用できません。
8.1.2.2.4 ソース・タイプを検出するための資格証明ストア・エントリの設定
userid
の接頭辞に基づいています。userid
の一般的な形式は次のとおりです: <dbtype>://<db-user>@<comma separated list of server addresses>:<port>
userid
には、複数のサーバー/ノード・アドレスを指定できます。
userid
には複数のノード・アドレスを構成できます。
「管理サービス」で、「DB接続」の下に資格証明ストア・エントリを作成できます。Trandataを追加するには、「管理サービス」内の「DB接続」に移動し、資格証明エントリからデータベースに接続し、Trandataを追加します。
alter credentialstore add user cassandra://db-user@127.0.0.1,127.0.0.2:9042 password db-passwd alias cass
8.1.2.3 重複排除
Cassandraクラスタの機能の1つは、高可用性です。高可用性をサポートするために、表のデータの複数の冗長コピーがクラスタ内の異なるノードに格納されます。Oracle GoldenGate for Distributed Applications and Analytics (GG for DAA)のCassandraキャプチャでは、重複する行が自動的にフィルタで除外されます(重複除去)。重複排除はデフォルトでアクティブとなります。データがキャプチャされて重複レコードが推奨されないターゲット(RDBMSターゲットなど)に適用される場合は、重複排除を使用することをお薦めします。
親トピック: Apache Cassandra
8.1.2.4 トポロジの変更
クラスタがライブになったまま、Cassandraノードのステータスが変化(トポロジの変更)する場合があります。GG for DAAのCassandraキャプチャでは、ノードのステータス変化を検出し、必要に応じてそれらの変化に対応できます。Cassandraキャプチャ・プロセスは、クラスタで実行されている次のイベントを検出できます。
-
ノードの停止および起動。
-
ノードのデコミッションおよびコミッション。
-
新しいキースペースおよび表の作成。
トポロジが変更されたため、キャプチャ・プロセスはアクティブなプロデューサ・ノードが停止したことを検出した場合は、使用可能なレプリカ・ノードから欠落した行を回復しようとします。このプロセス中に、一部の行でデータの重複が発生する可能性があります。これは、トポロジの変更による一時的なデータの重複です。トポロジの変更への対処の詳細は、「トラブルシューティング」を参照してください。
親トピック: Apache Cassandra
8.1.2.5 CDCログでのデータの可用性
Cassandra CDC APIは、CDCディレクトリのコミット・ログ・ファイルからのデータのみを読み取ることができます。アクティブなコミット・ログ・ディレクトリ内のデータがCDCコミット・ログ・ディレクトリにアーカイブされる(移動する)とき、レイテンシが発生します。
Cassandraキャプチャ・プロセスの入力データ・ソースはCDCコミット・ログ・ディレクトリです。キャプチャされるデータに遅延が発生する可能性があり、これは、主に、キャプチャ・プロセスでまだ認識されるようになっていないコミット・ログ・ファイルがあることによるものです。
アクティビティの多い本番クラスタでは、データがアクティブなコミット・ログ・ディレクトリからマイクロ秒のオーダーでCDCコミット・ログ・ディレクトリにアーカイブされるため、このレイテンシが最小化されます。
親トピック: Apache Cassandra
8.1.2.6 初期ロードExtractの使用
Cassandra Extractでは、ソース表のデータをGG for DAA証跡ファイルに抽出する、標準の初期ロード機能がサポートされています。
Cassandraの初期ロードを実行すると、変更の複製の前提条件のステップまたはスタンドアロン機能として表を同期化できます。
ソースCassandra表からターゲット表への直接ロードはサポートされていません。
親トピック: Apache Cassandra
8.1.2.7 チェンジ・データ・キャプチャのExtractの使用
GG for DAAインストール・ディレクトリで$HOME/AdapterExamples/big-data/cassandracapture
にあるサンプル.prm
ファイルを確認します。
- 「管理サービス」で、「Extractの追加」をクリックします。
- 「プロセス名」を入力し、「ソース」でCassandraを選択し、「データ・キャプチャExtractの変更」を選択します。
- Extract証跡の名前を指定し、Cassandra用に作成したソース資格証明を選択します。
- 必要に応じて、「管理対象オプション」を更新します。
- 「パラメータ・ファイル」で、TODOとマークされているフィールドを更新します。
- 「作成および実行」。
- Extractパラメータ・ファイルを構成します。
- Apache Cassandra 4x SDK (Apache Cassandra 4.0バージョンと互換性あり)
-
Extractパラメータ・ファイル:
-- ggsci> alter credentialstore add user cassandra://db-user@127.0.0.1 password db-passwd alias cass EXTRACT groupname JVMOPTIONS CLASSPATH ggjava/ggjava.jar:DependencyDownloader/dependencies/cassandra_capture_4x/* JVMOPTIONS BOOTOPTIONS -Dcassandra.config=file://{/path/to/apache-cassandra-4.x}/config/casandra.yaml -Dcassandra.datacenter={datacenter-name} TRANLOGOPTIONS CDCREADERSDKVERSION 4x TRANLOGOPTIONS CDCLOGDIRTEMPLATE /path/to/data/cdc_raw SOURCEDB USERIDALIAS cass EXTTRAIL trailprefix TABLE source.*;
JVMOPTIONS BOOTOPTIONS
を使用してcassandra.yaml
ファイル・パスを指定します。JVMOPTIONS BOOTOPTIONS -Dcassandra.config=file://{/path/to/apache-cassandra-4.x}/config/casandra.yaml -Dcassandra.datacenter={datacenter-name}
ノート:
リモート取得の場合(CassandraサーバーがOracle GoldenGateと同じマシンにない場合)、ご使用のApache Cassandraバージョンのサンプルcassandra.yaml
をGoldenGateマシンにコピーし、このパスをこのcassandra.yaml
ファイル・パス構成に使用する必要があります。JVMOPTIONS BOOTOPTIONS
の下にcassandraデータセンター名を構成します。値を指定しない場合、デフォルトではdatacenter1
が考慮されます。
- Apache Cassandra 3x SDK (Apache Cassandra 3.9、3.10、3.11と互換性あり)
-
Extractパラメータ・ファイル:
-- ggsci> alter credentialstore add user cassandra://db-user@127.0.0.1 password db-passwd alias cass JVMOPTIONS CLASSPATH ggjava/ggjava.jar:DependencyDownloader/dependencies/cassandra_capture_3x/* TRANLOGOPTIONS CDCREADERSDKVERSION 3x TRANLOGOPTIONS CDCLOGDIRTEMPLATE /path/to/data/cdc_raw SOURCEDB USERIDALIAS cass EXTTRAIL trailprefix TABLE source.*;
- DSE Cassandra SDK (DSE Cassandra 6.xバージョンと互換性あり)
-
Extractパラメータ・ファイル
-- ggsci> alter credentialstore add user cassandra://db-user@127.0.0.1 password db-passwd alias cass EXTRACT groupname JVMOPTIONS CLASSPATH ggjava/ggjava.jar:{/path/to/dse-6.x}/resources/cassandra/lib/*:{/path/to/dse-6.x}/lib/*:{/path/to/dse-6.x}/resources/dse/lib/*:DependencyDownloader/dependencies/cassandra_capture_dse/* JVMOPTIONS BOOTOPTIONS -Dcassandra.config=file://{/path/to/dse-6.x}/resources/cassandra/conf/casandra.yaml -Dcassandra.datacenter={datacenter-name} TRANLOGOPTIONS CDCREADERSDKVERSION dse TRANLOGOPTIONS CDCLOGDIRTEMPLATE /path/to/data/cdc_raw SOURCEDB USERIDALIAS cass EXTTRAIL trailprefix TABLE source.*;
JVMOPTIONS BOOTOPTIONS
を使用してcassandra.yaml
ファイル・パスを指定します:JVMOPTIONS BOOTOPTIONS -Dcassandra.config=file://{/path/to/dse-6.x}/resources/cassandra/conf/casandra.yaml -Dcassandra.datacenter={datacenter-name}
ノート:
リモート取得の場合(CassandraサーバーがOracle GoldenGateと同じマシンにない場合)、ご使用のDSEバージョンのサンプルcassandra.yaml
をGoldenGateマシンにコピーし、このパスをこのcassandra.yaml
ファイル・パス構成に使用する必要があります。-
JVMOPTIONS BOOTOPTIONS
の下にcassandraデータセンター名を構成します。値を指定しない場合、デフォルトではCassandra
が考慮されます。
ノート:
DSE 5.xバージョンの場合は、Apache 3xの項の説明に従って、Apache 3x SDKを使用してExtractを構成します。
親トピック: Apache Cassandra
8.1.2.7.1 スキーマ展開の処理
TRANLOGOPTIONS TRACKSCHEMACHANGES
これにより、Extractで実行時にソースから表レベルのDDL変更をキャプチャできるようになります。
証跡内の表メタデータがダウンタイムなしでソースと同期し続けるようにするには、これを有効にします。
TRACKSCHEMACHANGES
が無効になっている場合、ソース表でDDL変更が検出されると、キャプチャ・プロセスはABEND
します。
ノート:
この機能はデフォルトで無効です。有効にするには、前述の構文に示すようにExtractのprmファイルを更新します。親トピック: チェンジ・データ・キャプチャのExtractの使用
8.1.2.8 RDBMSターゲットへの複製
Cassandra証跡ファイルからRDBMSターゲットにソースUPDATE
操作を複製する場合は、特に注意する必要があります。ソースUPDATE
操作はOracle GoldenGate証跡ファイルにINSERT
レコードとして出現します。ソースUPDATE
操作がターゲット・データベースでINSERT
操作として適用されている場合、Replicatが異常終了することがあります。
次のオプションがあります。
-
OVERRIDEDUPS
: ソース・データベースに数多くのINSERT
操作とわずかなUPDATE
操作が含まれることが想定される場合は、OVERRIDEDUPS
をお薦めします。少数のソースUPDATE
操作の複製中に、Replicatが重複キー・エラーから回復できます。OVERRIDEDUPS
\NOOVERRIDEDUPS
を参照してください。
-
UPDATEINSERTS
とINSERTMISSINGUPDATES
: ソース・データベースに数多くのUPDATE
操作とわずかなINSERT
操作が含まれることが想定される場合は、この構成を使用します。この構成では、Replicatの回復する必要がある欠落行エラーが少なくなり、スループットの向上につながります。UPDATEINSERTS
|NOUPDATEINSERTS
とINSERTMISSINGUPDATES
|NOINSERTMISSINGUPDATES
を参照してください。
-
ターゲット表で重複行を受け入れることができる場合や重複行でReplicatを異常終了させる場合、追加の構成は必要ありません。
BATCHSQL
を使用するようにReplicatを構成した場合、バッチ・モードで重複行エラーまたは欠落行エラーが発生することがあります。このエラーによってReplicatのスループットが減少しますが、Replicatは、これらのエラーから自動的に回復します。ソース操作のほとんどがINSERTS
である場合は、BATCHSQL
が適切です。
親トピック: Apache Cassandra
8.1.2.9 静的な列のパーティション更新または挿入
ソースCassandra表に静的な列が含まれる場合は、表内にあるすべてのクラスタリング・キー列をスキップすることによって、静的な列値を変更できます。
たとえば:
create table ks_demo_rep1.nls_staticcol
(
teamname text,
manager text static,
location text static,
membername text,
nationality text,
position text,
PRIMARY KEY ((teamname), membername)
)
WITH cdc=true;
insert into ks_demo_rep1.nls_staticcol (teamname, manager, location) VALUES ('Red Bull', 'Christian Horner', '<unknown>
挿入CQL
には、クラスタリング・キーmembername
が欠落しています。このような操作は、パーティション挿入となります。
同様に、パーティション更新操作であるCQL
のWHERE
句で、パーティション・キーのみを使用して静的な列を更新することもできます。Cassandra Extractでは、キー列が欠落しているINSERT
またはUPDATE
操作を証跡に書き込むことができません。これは、パーティションのINSERT
またはUPDATE
操作が検出されると異常終了します。
親トピック: Apache Cassandra
8.1.2.10 パーティション削除
Cassandra表には、1つ以上のパーティション・キー列およびクラスタリング・キー列で構成される主キーが含まれている可能性があります。WHERE
句からのクラスタリング・キー列をスキップすることによってCassandra表でDELETE
操作が実行される場合、パーティション削除操作が行われます。
たとえば:
create table ks_demo_rep1.table1
(
col1 ascii, col2 bigint, col3 boolean, col4 int,
PRIMARY KEY((col1, col2), col4)
) with cdc=true;
delete from ks_demo_rep1.table1 where col1 = 'asciival' and col2 = 9876543210; /** skipped clustering key column col4 **/
Cassandra Extractはキー列が欠落しているDELETE
操作を証跡に書き込むことができず、パーティションDELETE
操作の検出で異常終了します。
親トピック: Apache Cassandra
8.1.2.11 セキュリティと認証
-
Cassandra Extractはユーザー名/パスワード・ベースの認証およびSSL認証を使用してCassandraクラスタに接続できます。
-
Kerberos対応Cassandraクラスタへの接続は、このリリースではサポートされていません。
親トピック: Apache Cassandra
8.1.2.11.1 SSLの構成
SSLを有効にするには、SSLパラメータをGLOBALS
ファイルまたはExtractパラメータ・ファイルに追加します。さらに、JavaおよびCPPドライバに別の構成が必要です。CDC構成リファレンスを参照してください。
Javaドライバ用のSSL構成(GLOBALSファイル)
JVMBOOTOPTIONS -Djavax.net.ssl.trustStore=/path/to/SSL/truststore.file -Djavax.net.ssl.trustStorePassword=password -Djavax.net.ssl.keyStore=/path/to/SSL/keystore.file -Djavax.net.ssl.keyStorePassword=password
Javaドライバ用のSSL構成(Extractパラメータ・ファイル)
JVMOPTIONS BOOTOPTIONS -Djavax.net.ssl.trustStore=/path/to/SSL/truststore.file -Djavax.net.ssl.trustStorePassword=password -Djavax.net.ssl.keyStore=/path/to/SSL/keystore.file -Djavax.net.ssl.keyStorePassword=password
ノート:
Extractパラメータ・ファイル構成の優先順位が高くなります。https://docs.datastax.com/en/cassandra/3.0/cassandra/configuration/secureSSLIntro.html
Apache Cassandra 4x SDK/DSE Cassandra SDKの使用
- 次のプロパティを使用して
application.conf
ファイルを作成し、適切な値でオーバーライドします:datastax-java-driver { advanced.ssl-engine-factory { class = DefaultSslEngineFactory # Whether or not to require validation that the hostname of the server certificate's common # name matches the hostname of the server being connected to. If not set, defaults to true. hostname-validation = false # The locations and passwords used to access truststore and keystore contents. # These properties are optional. If either truststore-path or keystore-path are specified, # the driver builds an SSLContext from these files. If neither option is specified, the # default SSLContext is used, which is based on system property configuration. truststore-path = {path to truststore file} truststore-password = password keystore-path = {path to keystore file} keystore-password = cassandra } }
- 次のように、
JVMCLASSPATH
の下にapplication.conf
ファイルを含むディレクトリのパスを指定します。JVMCLASSPATH ggjava/ggjava.jar:DependencyDownloader/dependencies/cassandra_capture_4x/*:/path/to/driver/config
ノート:
これは、GLOBALS
ファイルの場合のみ有効です。JVMOPTIONS CLASSPATH ggjava/ggjava.jar:DependencyDownloader/dependencies/cassandra_capture_4x/*:/path/to/driver/config/
詳細は、https://github.com/datastax/java-driver/blob/4.x/core/src/main/resources/reference.confを参照してください。
Cassandra CPPドライバ用のSSL構成
SSL構成を操作するには、次のパラメータをOracle GoldenGateのGLOBALS
ファイルまたはExtractパラメータ・ファイルに追加する必要があります。
CPPDRIVEROPTIONS SSL PEMPUBLICKEYFILE /path/to/PEM/formatted/public/key/file/cassandra.pem CPPDRIVEROPTIONS SSL PEERCERTVERIFICATIONFLAG 0
この構成は、SSLが有効になっているCassandraクラスタに接続するために必要です。また、これらの設定をcassandra.yaml
ファイルに追加する必要があります。
client_encryption_options:
enabled: true
# If enabled and optional is set to true encrypted and unencrypted connections are handled.
optional: false
keystore: /path/to/keystore
keystore_password: password
require_client_auth: false
PEM形式の証明書は、次の手順に従って生成できます。
https://docs.datastax.com/en/developer/cpp-driver/2.8/topics/security/ssl/
親トピック: セキュリティと認証
8.1.2.12 CDCコミット・ログ・ファイルのクリーン・アップ
Cassandra CDCコミット・ログ・パージ・プログラムを使用して、使用されていないCDCコミット・ログ・ファイルをパージできます。
詳細は、パージ・ユーティリティの実行方法を参照してください。
- Cassandra CDCコミット・ログ・パージ機能
ステージングされたCDCコミット・ログ・ファイルをパージするCassandraハンドラのパージ・ユーティリティ。Cassandra Extractは、各ノードのCDCコミット・ログ・ファイル($CASSANDRA/data/cdc_raw
内)をステージング・ディレクトリに移動して処理します。
親トピック: Apache Cassandra
8.1.2.12.1 Cassandra CDCコミット・ログ・パージ機能
ステージングされたCDCコミット・ログ・ファイルをパージするCassandraハンドラのパージ・ユーティリティ。Cassandra Extractは、各ノードのCDCコミット・ログ・ファイル($CASSANDRA/data/cdc_raw
内)をステージング・ディレクトリに移動して処理します。
cdc_raw
コミット・ログ・ディレクトリが/path/to/cassandra/home/data/cdc_raw
である場合、ステージング・ディレクトリは/path/to/cassandra/home/data/cdc_raw/../cdc_raw_staged
になります。CDCコミット・ログ・パージ機能は、次のロジックに基づいてcdc_raw_staged
内にあるこれらのファイルをパージします。
パージ・プログラムはoggdirディレクトリをスキャンし、dirchk/<EXTGRP>_casschk.json
の下で次のJSONチェックポイント・ファイルを探します。dirchk内には次のようなJSONファイルがあります。
{
"start_timestamp": -1,
"sequence_id": 34010434,
"updated_datetime": "2018-04-19 23:24:57.164-0700",
"nodes": [
{ "address": "10.247.136.146", "offset": 0, "id": 0 }
,
{ "address": "10.247.136.142", "file": "CommitLog-6-1524110205398.log", "offset": 33554405, "id": 1524110205398 }
,
{ "address": "10.248.10.24", "file": "CommitLog-6-1524110205399.log", "offset": 33554406, "id": 1524110205399 }
]
}
JSONチェックポイント・ファイル内の各ノード・アドレスについて、パージ・プログラムはCDCファイル名とIDを取得します。JSONチェックポイント・ファイルから取得した各IDについて、パージ・プログラムはステージングされたCDCコミット・ログ・ディレクトリを調べ、JSONチェックポイント・ファイルで取得されたIDよりも小さいIDを持つコミット・ログ・ファイルをパージします。
例:
JSONファイル内に1524110205398というIDがあります。
CDCステージング・ディレクトリには、CommitLog-6-1524110205396.log
、CommitLog-6-1524110205397.log
、CommitLog-6-1524110205398.log
というファイルがあります。
CDCステージング・ディレクトリから導出されたIDは、1524110205396、1524110205397および1524110205398です。パージ・ユーティリティは、CDCステージング・ディレクトリ内のファイルの中からIDがJSONファイルで読み取ったID(1524110205398)より小さいものをパージします。ID 1524110205396および524110205397に関連付けられたファイルがパージされます。
- パージ・ユーティリティの実行方法
- ローカル・ファイル・システムのサンプルconfig.properties
- 引数cassCommitLogPurgerConfFile
- 引数purgeInterval
オプションの引数purgeInterval
は、デーモンとして実行するプロセスの構成に役立ちます。 - 引数cassUnProcessedFilesPurgeInterval
オプションの引数cassUnProcessedFilesPurgeInterval
を設定すると、最後に処理されたファイルがないすべてのノードの履歴コミット・ログをパージできます。
親トピック: CDCコミット・ログ・ファイルのクリーン・アップ
8.1.2.12.1.1 パージ・ユーティリティの実行方法
8.1.2.12.1.1.1 このプログラムの実行に必要なサードパーティ・ライブラリ
<dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> <version>0.1.54</version> <scope>provided</scope> </dependency>
親トピック: パージ・ユーティリティの実行方法
8.1.2.12.1.1.2 プログラムを実行するコマンド
java -Dlog4j.configurationFile=log4j-purge.properties -Dgg.log.level=INFO -cp <OGG_HOME>/ggjava/resources/lib/*:<OGG_HOME>/thirdparty/cass/jsch-0.1.54.jar oracle.goldengate.cassandra.commitlogpurger.CassandraCommitLogPurger --cassCommitLogPurgerConfFile <OGG_HOME>/cassandraPurgeUtil/commitlogpurger.properties --purgeInterval 1 --cassUnProcessedFilesPurgeInterval 3
<OGG_HOME>/ggjava/resources/lib/*
は、パージ・ユーティリティがあるディレクトリです。<OGG_HOME>/thirdparty/cass/jsch-0.1.54.jar
は、パージ・プログラムを実行するための依存jarです。---cassCommitLogPurgerConfFile
、--purgeInterval
および--cassUnProcessedFilesPurgeInterval
はランタイム引数です。
コミット・ログ・パージ・ユーティリティを実行するサンプル・スクリプト:
#!/bin/bash echo "fileSystemType=remote" > commitlogpurger.properties echo "chkDir=dirchk" >> commitlogpurger.properties echo "cdcStagingDir=data/cdc_raw_staged" >> commitlogpurger.properties echo "userName=username" >> commitlogpurger.properties echo "password=password" >> commitlogpurger.properties java -cp ogghome/ggjava/resources/lib/*:ogghome/thirdparty/cass/jsch-0.1.54.jar oracle.goldengate.cassandra.commitlogpurger.CassandraCommitLogPurger --cassCommitLogPurgerConfFile commitlogpurger.properties --purgeInterval 1 --cassUnProcessedFilesPurgeInterval 3
親トピック: パージ・ユーティリティの実行方法
8.1.2.12.1.1.3 ランタイム引数
実行するには、ユーティリティ・クラスCassandraCommitLogPurger
に必須ランタイム引数cassCommitLogPurgerConfFile
が必要です。
CassandraCommitLogPurger
クラスで使用可能なランタイム引数は次のとおりです:
[required] --cassCommitLogPurgerConfFile path to config.properties
[optional] --purgeInterval
[optional] --cassUnProcessedFilesPurgeInterval
親トピック: パージ・ユーティリティの実行方法
8.1.2.12.1.2 ローカル・ファイル・システムのサンプルconfig.properties
fileSystemType=local chkDir=apache-cassandra-3.11.2/data/chkdir/ cdcStagingDir=apache-cassandra-3.11.2/data/$nodeAddress/commitlog/
親トピック: Cassandra CDCコミット・ログ・パージ機能
8.1.2.12.1.3 引数cassCommitLogPurgerConfFile
cassCommitLogPurgerConfFile
引数は、次の必須フィールドを持つ構成ファイルを取ります。
表8-1 引数cassCommitLogPurgerConfFile
パラメータ | 説明 |
---|---|
fileSystemType | デフォルト: local
必須: はい 有効な値: remote/ local。 説明: クラスタ内のすべてのライブ・ノードで、SFTPまたはNFSを介してステージングされたCDCコミット・ログにアクセスできます。 |
chkDir | デフォルト: なし
必須: はい 有効な値: チェックポイント・ディレクトリのパス。説明: |
cdcStagingDir | デフォルト: なし
必須: はい 有効な値: ステージング・ディレクトリのパス。説明: CDCコミット・ログが存在するCassandraステージング・ディレクトリの場所。たとえば、 |
userName | デフォルト: なし
必須: いいえ 有効な値: 有効なSFTP認証ユーザー名。説明: サーバーとの接続に使用するSFTPユーザー名。 |
password | デフォルト: なし
必須: いいえ 有効な値: 有効なSFTP認証パスワード。説明: サーバーとの接続に使用するSFTPパスワード。 |
port | デフォルト: 22
必須: いいえ 有効な値: 有効なSFTP認証ポート。説明: SFTPポート番号。 |
privateKey |
デフォルト: なし 必須: いいえ 有効な値: privateKeyファイルへの有効なパス。説明: 秘密キーは認証の実行に使用され、パスワードを指定せずにログインすることを可能にします。 |
passPhase |
デフォルト: なし 必須: いいえ 有効な値: privateKeyの有効なパスワード。説明: 秘密キーは通常、パスワードで保護されています。指定する場合は、 |
親トピック: Cassandra CDCコミット・ログ・パージ機能
8.1.2.12.1.3.1 ローカル・ファイル・システムのサンプルconfig.properties
fileSystemType=local chkDir=apache-cassandra-3.11.2/data/chkdir/ cdcStagingDir=apache-cassandra-3.11.2/data/$nodeAddress/commitlog/
8.1.2.12.1.4 引数purgeInterval
オプションの引数purgeInterval
は、デーモンとして実行するプロセスの構成に役立ちます。
この引数はクリーン・アップの実行期間を表す整数値です。たとえば、purgeInterval
が1に設定されている場合、プロセスは毎日、プロセスが開始した時刻に実行されます。
親トピック: Cassandra CDCコミット・ログ・パージ機能
8.1.2.12.1.5 引数cassUnProcessedFilesPurgeInterval
オプションの引数cassUnProcessedFilesPurgeInterval
を設定すると、最後に処理されたファイルがないすべてのノードの履歴コミット・ログをパージできます。
cassUnProcessedFilesPurgeInterval
が設定されていない場合、デフォルト値は2日に構成され、2日より古いファイルまたは構成済の値日数に従って、コミット・ログ・ファイルがパージされます。CassandraCommitLogPurger
ユーティリティは、1日より古いファイルをパージできません。デフォルトの2日またはそれより古いものである必要があります。
{ "start_timestamp": -1, "sequence_id": 34010434, "updated_datetime": "2018-04-19 23:24:57.164-0700", "nodes": [ { "address": "10.247.136.146", "offset": 0, "id": 0 } , { "address": "10.247.136.142", "file": "CommitLog-6-1524110205398.log", "offset": 33554405, "id": 1524110205398 } , { "address": "10.248.10.24", "file": "CommitLog-6-1524110205399.log", "offset": 33554406, "id": 1524110205399 } , { "address": "10.248.10.25", "offset": 0, "id": 0 } , { "address": "10.248.10.26", "offset": 0, "id": 0 } ] }
この例では、Cassandraノードのアドレス10.248.10.25
および10.248.10.26
に最後に処理されたファイルはありません。これらのノードのコミット・ログ・ファイルは、cassUnProcessedFilesPurgeInterval
引数値の構成済日数に従ってパージされます。
ノート:
次の理由により、最後の処理ファイルを使用できない可能性があります:- 新しいノードがクラスタに追加され、Cassandra Extractを介してコミット・ログ・ファイルがまだ処理されていません。
- このノードから処理されたすべてのコミット・ログ・ファイルに、表のワイルドカード一致による操作データが含まれていません。
- このノードから処理されたすべてのコミット・ログ・ファイルに、重複解除のために証跡ファイルに書き込まれなかった操作レコードが含まれています。
親トピック: Cassandra CDCコミット・ログ・パージ機能
8.1.2.13 複数のExtractのサポート
単一のOracle GoldenGate for Distributed Applications and Analytics (GG for DAA)インストールで、同じCassandraクラスタに接続するように複数のExtractグループを構成できます。
複数のExtractグループを実行するには、次のようにします。
- 1つ(唯一)のExtractグループを、Cassandraノードの
cdc_raw
ディレクトリ内のコミット・ログ・ファイルをステージング・ディレクトリに移動するように構成できます。movecommitlogstostagingdir
パラメータはデフォルトで有効になっているので、このExtractグループに追加の構成は必要ありません。 - 他のすべてのExtractグループは、Extractパラメータ(
.prm
)ファイルでnomovecommitlogstostagingdir
パラメータを指定して構成する必要があります。
親トピック: Apache Cassandra
8.1.2.14 CDC構成リファレンス
次のプロパティは、Cassandraチェンジ・データ・キャプチャで使用されます。
プロパティ | 必須/オプション | 場所 | デフォルト | 説明 |
---|---|---|---|---|
|
オプション |
パラメータ( |
|
初期ロード・プロセス時にのみ使用します。
|
|
オプション |
パラメータ( |
最小値は 最大値は |
初期ロード・プロセス時にのみ使用します。 データベース・サーバーに送信される各リクエストに対して、ドライバがフェッチを試みるデータの行数を指定します。 パラメータ値は、データベース構成ファイル 初期ロードにおけるExtractのパフォーマンスを最適化するために、このパラメータ値を5000に設定することをお薦めします。 |
|
必須 |
パラメータ( |
なし |
CDCコミット・ログのディレクトリ・パス・テンプレート。テンプレートには、必要に応じて、各ノードのアドレスに解決される |
|
オプション |
パラメータ( |
なし |
コミット・ログ・ファイルをプルして転送するセキュア・ファイル転送プロトコル(SFTP)の接続詳細。次の1つ以上のオプションを使用できます。 |
|
オプション |
GLOBALSファイル
ノート: Oracle GoldenGate for Big Dataリリース23.1.0.0.0以降、このパラメータは非推奨になります。 |
|
Cassandraクラスタへの接続に使用されるノードのカンマ区切りリスト。少なくとも1つのノード・アドレスを指定する必要があります。パラメータ・オプションは、次のとおりです。 |
|
オプション |
パラメータ( |
|
CDCリーダー・キャプチャAPIのSDKバージョン。 |
|
オプション |
パラメータ( |
|
|
|
オプション |
パラメータ( |
|
CDCコミット・ログ・ファイルの抽出後処理をパージします。値が |
JVMOPTIONS [CLASSPATH <classpath> | BOOTOPTIONS <options>] |
必須 |
パラメータ( |
なし |
|
|
オプション |
GLOBALSファイル
ノート: Oracle GoldenGate for Big Dataリリース23.1.0.0.0以降、このパラメータは非推奨になります。 |
なし |
Java仮想マシンのブート・オプション。複数のオプションは空白文字で区切られます。 |
|
必須 |
GLOBALSファイル
ノート: Oracle GoldenGate for Big Dataリリース23.1.0.0.0以降、このパラメータは非推奨になります。 |
なし |
Java仮想マシンのクラスパス。任意のディレクトリ内のすべてのJARファイルと一致するように、ワイルドカードとしてアスタリスク( |
|
必須 |
GLOBALSファイル
ノート: Oracle GoldenGate for Big Dataリリース23.1.0.0.0以降、このパラメータは非推奨になります。 |
なし |
CDCキャプチャまたはデータベースの問合せのソース・データベース。有効な値は |
|
必須 |
パラメータ( |
なし |
Cassandraクラスタへの接続、およびキャプチャした表のメタデータの問合せに使用される単一のCassandraノード・アドレス。 |
|
オプション |
パラメータ( |
|
この値が |
|
オプション |
パラメータ( |
|
この値が |
|
オプション |
パラメータ( |
|
デフォルトで有効になっており、Extractグループに対し、Cassandraノードの |
|
オプション |
GLOBALSファイルまたはExtractパラメータ( |
|
接続時の基本的なSSLサポートに使用します。これを有効にする場合、Javaシステム・プロパティによる追加のJSSE構成が必要となります。 ノート: 次のSSLプロパティは |
|
オプション |
GLOBALSファイルまたはExtractパラメータ( 完全修飾名による絶対パスを示す文字列。このファイルはSSL接続用である必要があります。 |
なし。 |
ピアの証明書の検証に使用されるPEM形式の公開キー・ファイルであることを示します。このプロパティは、一方向ハンドシェイクまたは基本的なSSL接続に必要です。 |
|
オプション |
GLOBALSファイルまたはExtractパラメータ( |
|
有効にすると、クライアントとサーバー間の双方向SSL暗号化を示します。PEM形式の証明書によってクライアントとサーバーの両方を認証する必要があります。このプロパティには、 |
|
オプション |
GLOBALSファイルまたはExtractパラメータ( 完全修飾名による絶対パスを示す文字列。このファイルはSSL接続用である必要があります。 |
なし。 |
クライアントの証明書の検証に使用されるPEM形式の公開キー・ファイル名に使用します。これは、 |
|
オプション |
GLOBALSファイルまたはExtractパラメータ( 完全修飾名による絶対パスを示す文字列。このファイルはSSL接続用である必要があります。 |
なし。 |
クライアントの証明書の検証に使用されるPEM形式の秘密キー・ファイル名に使用します。これは、 |
|
オプション |
GLOBALSファイルまたはExtractパラメータ( 文字列 |
なし。 |
クライアントの証明書の検証に使用されるPEM形式の秘密キー・ファイルのパスワードを設定します。これは、秘密キー・ファイルがパスワードで保護されている場合、必須です。 |
|
オプション |
GLOBALSファイルまたはExtractパラメータ( 整数 |
|
ピアの証明書で必要な検証を設定します。範囲は0–4です: 0–証明書アイデンティティの検証を無効にします。 1–ピア証明書を検証します 2–ピア・アイデンティティを検証します 3–使用されないため、証明書アイデンティティの検証の無効化と同様です。 4–ドメイン名によってピア・アイデンティティを検証します |
|
オプション |
GLOBALSファイルまたはExtractパラメータ( |
|
逆IP参照を使用したIPアドレスのホスト名の取得を有効にします。 |
TRANLOGOPTIONS TRACKSCHEMACHANGES |
オプション | パラメータ(.prm )ファイルを抽出します。
|
デフォルトでは、このプロパティは無効になっています。 |
これにより、Extractで実行時にソースから表レベルのDDL変更をキャプチャできるようになります。 証跡内の表メタデータがダウンタイムなしでソースと同期し続けるようにするには、これを有効にします。 |
親トピック: Apache Cassandra
8.1.2.15 トラブルシューティング
Cassandra Extractプロセスによってデータがキャプチャされません。
-
Cassandraデータベースは、アクティブなコミット・ログ・ファイルからCDCコミット・ログ・ファイルにデータをフラッシュしていません。フラッシュは、Cassandraクラスタのロードに依存します。
-
Cassandra ExtractではCDCコミット・ログ・ファイルからのみデータをキャプチャします。
-
ソース表のCDCプロパティを確認します。ソース表のCDCプロパティは
true
に設定する必要があります。 -
TRANLOGOPTIONS CDCREADERSDKVERSION
3.9パラメータが使用され、JVMCLASSPATH
がCassandra 3.10または3.11のJARファイルを指すように構成されている場合、データはキャプチャされません。
エラー: OGG-01115 関数getInstanceは実装されていません。
-
次の行がGLOBALSファイルから欠落しています。
OGGSOURCE CASSANDRA
エラー: Cassandraクラスタに接続できません。例外: com.datastax.driver.core.exceptions.NoHostAvailableException
これは、Cassandraクラスタへの接続が失敗したことを示します。
次のパラメータを確認します。
CLUSTERCONTACTPOINTS
エラー: スレッド"main" java.lang.NoClassDefFoundError: oracle/goldengate/capture/cassandra/CassandraCDCProcessManager内の例外
GLOBALSファイルのJVMOPTIONS CLASSPATH
パラメータを確認します。
エラー: oracle.goldengate.util.Util - オブジェクトの構築時にメソッドを呼び出すことができません。クラス"oracle.goldengate.capture.cassandracapture311.SchemaLoader3DOT11"のオブジェクトを作成できません。原因: java.lang.NoSuchMethodError: org.apache.cassandra.config.DatabaseDescriptor.clientInitialization()V
Cassandra SDKバージョン構成に不一致があります。TRANLOGOPTIONS CDCREADERSDKVERSION 3.11
パラメータが使用されているため、JVMCLASSPATH
にCassandra 3.9 JARファイル・パスが存在する可能性があります。
エラー: OGG-25171 証跡ファイル'/path/to/trail/gg'はリモートです。このExtractにはローカル証跡のみ許可されます。このExtractにはローカル証跡のみ許可されます。
Cassandra Extractは、ローカル証跡ファイルに書き込むようにのみ構成する必要があります。Cassandra Extractの証跡ファイルを追加する場合は、EXTTRAIL
オプションを使用します。たとえば:
ADD EXTTRAIL ./dirdat/z1, EXTRACT cass
エラー: OGG-868エラー・メッセージまたはOGG-4510エラー・メッセージ
原因は、次のいずれかです。
-
不明なユーザーまたは無効なパスワード
-
不明なノード・アドレス
-
メモリー不足
別の原因として、Cassandraデータベースへの接続が切断された可能性があります。エラー・メッセージが、発生したデータベース・エラーを示します。
エラー: OGG-251712 キースペースkeyspacenameはデータベースに存在しません。
この問題は次の条件に起因する可能性があります。
-
Extract初期ロード・プロセス時に、Cassandraデータベースから
KEYSPACE keyspacename
を削除した可能性があります。 -
KEYSPACE keyspacename
がCassandraデータベースに存在しません。
エラー: OGG-25175 行のフェッチ中に予期しないエラーが発生しました
これは、初期ロード・プロセス時にCassandraデータベースへの接続が切断された場合に発生する可能性があります。
エラー: “サーバー側警告: 問合せSELECT * FROM keyspace.table(tombstone_warn_thresholdを参照)に対して、915936の有効な行および12823104のツームストン・セルを読み取ります”
初期ロードのDBOPTIONS FETCHBATCHSIZE
パラメータの値が、Cassandraデータベース構成パラメータtombstone_warn_threshold
よりも大きい場合に発生する可能性が高くなります。
この問題回避するには、tombstone_warn_threshold
の値を増やすか、またはDBOPTIONS FETCHBATCHSIZE
値を減らします。
Cassandra Extractの証跡でレコードが重複しています。
複数ノードのCassandraクラスタに対する内部テストによって、Cassandra CDCコミット・ログ・ファイルで重複レコードの可能性があることが明らかになりました。Cassandraコミット・ログ・ファイル内の重複は、大量の書込み並列化、ノードでの書込みエラーおよびCassandraノードでの複数回の再試行がある場合には一般的です。この場合、Cassandra証跡ファイルに重複レコードがあることが予想されます。
Extractレポート・ファイルでのJSchExceptionまたはSftpException
SFTP資格証明(user
、password
およびprivatekey
)が正しいことを確認します。SFTPユーザーに、Cassandraクラスタ内の各ノードのcdc_raw
ディレクトリに対する読取り/書込み権限があることを確認します。
ERROR o.g.c.c.CassandraCDCProcessManager - CDC ステージング・ディレクトリ [{}]java.nio.file.AccessDeniedExceptionの作成中に例外が発生しました
ExtractプロセスにCDCコミット・ログ・ステージング・ディレクトリを作成する権限がありません。たとえば、cdc_raw
コミット・ログ・ディレクトリが/path/to/cassandra/home/data/cdc_raw
である場合、ステージング・ディレクトリは/path/to/cassandra/home/data/cdc_raw/../cdc_raw_staged
になります。
Extractレポート・ファイルに大量のDEBUGログ文が表示されます
本番システムでは、デバッグ・ロギングを有効にする必要はありません。INFO
レベル・ロギングを使用するには、Extractパラメータ・ファイルにこれが含まれていることを確認してください
JVMBOOTOPTIONS -Dlogback.configurationFile=AdapterExamples/big-data/cassandracapture/logback.xml
Oracle Golden Gate Cassandra ExtractでSSLを有効にする場合は、GLOBALSファイルまたはExtractパラメータ・ファイルでSSLを有効にする必要があります。
SSLキーワードがない場合、ExtractではSSLなしで接続するものとみなされます。したがって、Cassandra.yaml
ファイルにSSL構成エントリがある場合、接続は失敗します。
SSLが有効になっていて一方向ハンドシェイクである場合
CPPDRIVEROPTIONS SSL PEMPUBLICKEYFILE /scratch/testcassandra/testssl/ssl/cassandra.pem
プロパティを指定する必要があります。
このプロパティがない場合、Extractでは次のエラーが生成されます。
2018-06-09 01:55:37 ERROR OGG-25180 The PEM formatted public key file used to verify the peer's certificate is missing.SSLが有効になっている場合は、Oracle GoldenGateのGLOBALSファイルまたはExtractパラメータ・ファイルでPEMPUBLICKEYFILEを設定する必要があります。
SSLが有効になっていて双方向ハンドシェイクである場合
SSL双方向ハンドシェイクには、次のプロパティを指定する必要があります。
CPPDRIVEROPTIONS SSL ENABLECLIENTAUTH CPPDRIVEROPTIONS SSL PEMCLIENTPUBLICKEYFILE /scratch/testcassandra/testssl/ssl/datastax-cppdriver.pem CPPDRIVEROPTIONS SSL PEMCLIENTPRIVATEKEYFILE /scratch/testcassandra/testssl/ssl/datastax-cppdriver-private.pem CPPDRIVEROPTIONS SSL PEMCLIENTPRIVATEKEYPASSWD cassandra
さらに、次の点を考慮してください。
-
ENABLECLIENTAUTH
がない場合、Extractでは一方向ハンドシェイクであるとみなされるため、PEMCLIENTPRIVATEKEYFILE
およびPEMCLIENTPRIVATEKEYFILE
は無視されます。cassandra.yaml
ファイルでrequire_client_auth
がtrue
に設定されている必要があるため、次のエラーが発生します。2018-06-09 02:00:35 ERROR OGG-00868 No hosts available for the control connection.
-
ENABLECLIENTAUTH
が使用され、PEMCLIENTPRIVATEKEYFILE
がない場合は、次のエラーが発生します。2018-06-09 02:04:46 ERROR OGG-25178 The PEM formatted private key file used to verify the client's certificate is missing. For two way handshake or if ENABLECLIENTAUTH is set, then it is mandatory to set PEMCLIENTPRIVATEKEYFILE in your Oracle GoldenGate GLOBALS file or in Extract parameter file.
-
ENABLECLIENTAUTH
が使用され、PEMCLIENTPUBLICKEYFILE
がない場合は、次のエラーが発生します。2018-06-09 02:06:20 ERROR OGG-25179 The PEM formatted public key file used to verify the client's certificate is missing. For two way handshake or if ENABLECLIENTAUTH is set, then it is mandatory to set PEMCLIENTPUBLICKEYFILE in your Oracle GoldenGate GLOBALS file or in Extract parameter file.
-
クライアント秘密キー・ファイルの生成時にパスワードが設定されている場合、このエラーを回避するために
PEMCLIENTPRIVATEKEYPASSWD
を追加する必要があります。2018-06-09 02:09:48 ERROR OGG-25177 The SSL certificate: /scratch/jitiwari/testcassandra/testssl/ssl/datastax-cppdriver-private.pem can not be loaded. Unable to load private key.
-
指定された絶対パスにPEMファイルがない場合は、次のエラーが発生します。
2018-06-09 02:12:39 ERROR OGG-25176 Can not open the SSL certificate: /scratch/jitiwari/testcassandra/testssl/ssl/cassandra.pem.
com.jcraft.jsch.JSchException: UnknownHostKey
この問題で抽出プロセスが異常終了した場合、Cassandraノード・アドレスの一部またはすべてがSSH known-hosts
ファイルで欠落している可能性があります。詳細は、CassandraノードへのSSH接続の設定を参照してください。
一般的なSSLエラー
次の一般的なエラーを検討してみます。
-
ExtractまたはGLOBALSファイルでSSL必須パラメータをすべて有効にしたのに、
cassandra.yaml
ファイルでSSLが構成されていない場合、SSL接続が失敗する可能性があります。 -
PEMファイルの絶対パスまたは修飾名が正しくない可能性があります。PEMファイルの格納場所にアクセス問題がある可能性があります。
-
クライアント秘密キー・ファイルの生成中に追加されたパスワードが正しくないか、Extractパラメータ・ファイルまたはGLOBALSファイルで有効になっていない可能性があります。
親トピック: Apache Cassandra
8.1.2.16 Cassandraキャプチャ・クライアント依存性
Apache Cassandraデータベースに接続するためのCassandraキャプチャ(Extract)の依存性とはどのようなものでしょう。
Cassandraチェンジ・データ・キャプチャを実行するには、次のサード・パーティ・ライブラリが必要です。
Apache Cassandra 3.xバージョンからのキャプチャ:
- cassandra-driver-core (com.datastax.cassandra)バージョン3.3.1
- cassandra-all (org.apache.cassandra)バージョン3.11.0
- gson (com.google.code.gson)バージョン2.8.0
- jsch (com.jcraft)バージョン0.1.54
- java-driver-core (com.datastax.oss)バージョン4.14.1
- cassandra-all (org.apache.cassandra)バージョン4.0.5
- gson (com.google.code.gson)バージョン2.8.0
- jsch (com.jcraft)バージョン0.1.54
依存関係ダウンロード・スクリプトを使用して、Datastax Javaドライバおよび関連する依存関係をダウンロードできます。詳細は、依存性ダウンローダを参照してください。
親トピック: Apache Cassandra