Lindormは、Lindorm Distributed Processing System(LDPS)という計算エンジンサービスを提供しています。 Lindormインスタンスに対してLDPSがアクティブ化されると、Lindorm Change Data Capture(CDC)データソースがLindormインスタンスに割り当てられます。 Lindormインスタンスに対してアクティブ化されている他のエンジンサービスに格納されているデータの変更は、CDCデータソースに同期されます。 Spark SQLを使用して、CDCデータソースからこれらのデータ変更をクエリできます。
前提条件
- Lindorm Tunnel Service(LTS)がLindormインスタンスに対してアクティブ化されています。 詳細については、LTSサービスを購入してLTS Web UIにログオンするをご参照ください。
- LindormTableのサブスクリプションチャネルが作成されています。 詳細については、データサブスクリプション用のプルチャネルを作成するをご参照ください。説明 サブスクリプションチャネルを作成する際は、以下の点にご注意ください。
- [メッセージの列名にファミリープレフィックスを無視する] を選択しないでください。
- [json] を [シリアル化タイプ] パラメーターに選択します。
- 1つのトピック名は、1つのLindormテーブル名にのみ対応します。
- HBaseテーブルのLINDORM_HBASE_CATALOG属性を設定します。 詳細については、LindormTableのデータにアクセスするをご参照ください。説明 LINDORM_HBASE_CATALOG属性は、Spark SQLスキーマとHBaseテーブルのスキーマ間のマッピングを指定します。 Lindorm CDCデータソースは、この属性の値に基づいてHBaseテーブルのスキーマを抽出します。
制限事項
- HBaseテーブルのみがサポートされています。 HBaseテーブルとは、HBaseクライアントを使用してLindormTableにデータが書き込まれるテーブルです。
- リアルタイム変更追跡機能では、[JSON] 形式のファイルのみを使用できます。
ジョブの送信方法
Lindorm CDCデータソースのSparkジョブを記述して送信するには、次のいずれかの方法を使用できます。
説明 Lindorm CDCデータソースとのデータの読み書きに使用される構文については、Lindorm CDCデータソースを設定するをご参照ください。
Lindorm CDCデータソースを設定する
Lindorm CDCデータソースのテーブルスキーマとデータベーススキーマ
- LDPSによって提供されるLindorm CDCデータソースの名前はlindorm_cdcです。
- Lindorm CDCデータソースのネームスペースは管理できません。 Lindorm CDCデータソースのテーブルのみを管理できます。 Lindorm CDCデータソースのテーブルは、データサブスクリプションチャネルの作成時に指定した [トピック] と同じ名前を使用します。
Lindorm CDCデータソースのスキーマ
Lindorm CDCデータソースは、LINDORM_HBASE_CATALOG属性に基づいてHBaseテーブルのスキーマを抽出し、抽出されたスキーマをLindorm CDCデータソースのスキーマとして使用します。 Lindorm CDCデータソースはKafkaからデータを読み取ります。 各操作レコードが保存されます。 次の表に、Lindorm CDCデータソースのスキーマでサポートされているメタフィールドを示します。
| フィールド | カテゴリ | 説明 | 構成 |
| _cdc_timestamp_kafka | long | 操作レコードがKafkaに書き込まれたときのタイムスタンプ。 単位:ミリ秒。 | 構成は不要です。 スキーマに含まれているデフォルトの構成値が使用されます。 |
| _cdc_operation_type | string | 操作レコードの変更タイプ。
| 構成は不要です。 スキーマに含まれているデフォルトの構成値が使用されます。 |
| _cdc_timestamp_lindorm | long | LDPS以外のLindormエンジンサービスによって操作レコードが処理されたときのタイムスタンプ。 単位:ミリ秒。 | spark.sql.catalog.lindorm_cdc.lindormTsEnabled |
| _cdc_timestamp_lts | long | LTSによって操作レコードが処理されたときのタイムスタンプ。 単位:ミリ秒。 | spark.sql.catalog.lindorm_cdc.ltsTsEnabled |
Lindorm CDCデータソースの構成項目
次の表に、Lindorm CDCデータソースの構成項目を示します。
| 構成項目 | 必須 | 説明 | 例 |
| spark.sql.catalog.lindorm_cdc.username |
| LindormTableへの接続に使用するユーザー名。 | root(デフォルトのユーザー名) |
| spark.sql.catalog.lindorm_cdc.password |
| LindormTableへの接続に使用するパスワード。 | root(デフォルトのパスワード) |
| spark.sql.catalog.lindorm_cdc.lindormTsEnabled | いいえ | Lindormが操作レコードを処理したときのタイムスタンプをスキーマに含めるかどうかを指定します。 デフォルト値はfalseです。 このパラメーターをtrueに設定すると、_cdc_timestamp_lindormフィールドがLindorm CDCデータソースのスキーマに追加されます。 | true |
| spark.sql.catalog.lindorm_cdc.ltsTsEnabled | いいえ | LTSが操作レコードを処理したときのタイムスタンプをスキーマに含めるかどうかを指定します。 デフォルト値はfalseです。 このパラメーターをtrueに設定すると、_cdc_timestamp_ltsフィールドがLindorm CDCデータソースのスキーマに追加されます。 | true |
Lindorm CDCデータソースでサポートされているステートメント
次の表に、Lindorm CDCデータソースで実行できるステートメントを示します。
| ステートメント | 説明 | 例 |
| USE table_name | 指定されたテーブルを使用します。 | USE test |
| SHOW TABLES | すべてのテーブルを表示します。 | SHOW TABLES |
| DESCRIBE table_name | 指定されたテーブルの詳細を表示します。 | DESC test または DESCRIBE test |
| SELECT | SELECTステートメントの詳細については、Spark SQL をご参照ください。 説明 SELECTステートメントを実行する場合は、次の項目に注意してください。
| |