変更テーブル
ターゲット エンドポイントのツールを使用し、変更テーブルのメタデータを使用して情報を取得できます。このデータは、変更テーブル スキーマに追加されたヘッダー列によって定義されます。これらのヘッダーについては、次の表で説明します。
レプリケーション タスクのすべてのターゲット テーブルについて、対応する名前を持つ変更テーブルが、ターゲット テーブルを持つデータベース内で保持されます。詳細は、変更テーブルの操作をご覧ください。変更テーブルには、元のテーブル列とヘッダー列が含まれます。名前がソース テーブルの列名と競合しないように、ヘッダー列にはプレフィックスが含まれています。既定のプレフィックスは header__
です。このプレフィックスを変更する方法については、 [タスク設定] の [メタデータ] にある、 [変更テーブル] リストを参照してください。次の表は、既定の変更テーブルのヘッダー列を示しています。
列名 | タイプ | 説明 |
---|---|---|
varchar (35) |
タスクのすべての変更テーブルに共通の、単調に増加する変更シーケンス。変更シーケンスの形式は次のとおりです。 YYYYMMDDHHmmSShhxxxxxxxxxxxxxxxxxxx 条件:
時間部分は通常、変更レコードを含むトランザクションのコミット時間を指します。Qlik Talend Data Integration にはシーケンス番号の単調性を維持するロジックが含まれているため、エンドポイント時間を変更または調整すると、同じタイムスタンプ内でありながら変更番号が増加しているように見える複数の変更が生じる可能性があります。 xxx...xxx は通常、データ レコードの内部変更番号です。ただし、BEFORE-IMAGE レコードの場合は、一致する UPDATE レコードの変更番号と同じになります (例: BEFORE-IMAGE の変更番号が 1000 で UPDATE の変更番号が 1001 である場合、両方とも 1001 になります)。これにより、テーブルとそれ自体の間の単純な左外部結合が可能になります。左側では、ある時点までスキャンしますが、 |
|
|
varchar (1) |
操作の種類。これは次のいずれかになります。
|
|
varbinary (128) |
変更マスクは、変更テーブル内のどのデータ列がソース テーブルで変更された列に関連付けられているかを示します。 変更マスク内のビット位置は、変更テーブル内の列の序数に基づきます。つまり、ヘッダー列が 5 つある場合、それらはビット 0 ~ 4 を占め、最初のデータ列は変更マスクのビット 5 になります。 変更マスクは、変更マスクをリトルエンディアン順で表すバイナリ列 (バイト配列) です。 バイト0 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 バイト 1 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 この例では、 ビットのセマンティクスの説明は次のとおりです。
スペースと処理効率を高めるために、変更マスクに保存される実際のバイト数は null を取り除くことができます。つまり、末尾のゼロを保存する必要はありません。処理ロジックではこれを考慮する必要があります。 |
|
varchar (128) |
ソース CDC ストリームの位置。 |
|
varchar (12) |
変更レコードに関連付けられた操作。次のいずれかになります。
|
|
varchar (32) |
変更レコードが属するトランザクションの ID。 値は、128 ビットのトランザクション ID の 16 進文字列です。 |
|
タイムスタンプ |
元の変更の UTC タイムスタンプ (値はおおよその値である可能性があります)。 情報メモ PostgreSQL ソースの場合、タイムスタンプはコミットが発生した後にしかわかりません。したがって、変更がソース テーブルにコミットされるまでは、既定の日付 (例: 1970-01-01) が表示されます。
|
[header__] |
文字列 |
[データ パーティションの変更] が有効な場合にターゲット上に作成されるパーティションの名前。パーティションの開始時刻と終了時刻で構成されるパーティション名。 例: 20170313T123000_20170313T170000 |