目次

Search

  1. はじめに
  2. 一括取り込みデータベース

一括取り込みデータベース

一括取り込みデータベース

Amazon S3、Google Cloud Storage、およびAzure Data Lake Storage Gen2ターゲット上のCDCファイルのデフォルトのディレクトリ構造

Amazon S3、Google Cloud Storage、およびAzure Data Lake Storage Gen2ターゲット上のCDCファイルのデフォルトのディレクトリ構造

データベース取り込みジョブは、Amazon S3、Google Cloud Storage、およびMicrosoft Azure Data Lake Storage Gen2ターゲットにディレクトリを作成して、変更データ処理に関する情報を格納します。
次のディレクトリ構造がデフォルトでターゲットに作成されます。
Bucket └───
connection_folder
└───
job_folder
├───cycle │ ├───completed │ │ ├───
completed_cycle_folder
│ │ │ └───Cycle-
timestamp
.csv │ │ │ ... │ │ └───
completed_cycle_folder
│ │ └───Cycle-
timestamp
.csv │ └───contents │ ├───
cycle_folder
│ │ └───Cycle-contents-
timestamp
.csv │ │ ... │ └───
cycle_folder
│ └───Cycle-contents-
timestamp
.csv └───data └───
table_name
├───data │ ├───
cycle_folder
│ │ └───
table_name
_
timestamp
.csv │ │ ... │ └───
cycle_folder
│ └───
table_name
_
timestamp
.csv └───schema └───V1 └───
table_name
.schema
次の表に、デフォルト構造に含まれるディレクトリを示します。
フォルダ
説明
connection_folder
一括取り込みデータベースのオブジェクトが含まれています。このフォルダは、Amazon S3接続プロパティの
[フォルダパス]
フィールドまたはMicrosoft Azure Data Lake Storage Gen2接続プロパティの
[ディレクトリパス]
フィールドで指定されています。
このフォルダは、Google Cloud Storageターゲット用には作成されていません。
job_folder
ジョブ出力ファイルが含まれています。このフォルダは、データベース取り込みタスクウィザードの
[ターゲット]
ページの
[ディレクトリ]
フィールドで指定されています。
cycle/completed
各完了CDCサイクルのサブフォルダが含まれています。各完了サイクルサブフォルダには、完了サイクルファイルが含まれています。
cycle/contents
各CDCサイクルのサブフォルダが含まれます。各サイクルサブフォルダには、サイクルコンテンツファイルが含まれています。
data
各テーブルの出力データファイルとスキーマファイルが含まれています。
data/
table_name
/schema/V1
スキーマファイルが含まれています。
出力ファイルがParquet形式を使用している場合、一括取り込みデータベースはスキーマファイルをこのフォルダに保存しません。
data/
table_name
/data
出力データファイルを生成する各CDCサイクルのサブフォルダが含まれています。

サイクルディレクトリ

一括取り込みデータベースは、次のパターンを使用してサイクルディレクトリに名前を付けます。
[dt=]
yyyy
-
mm
-
dd
-
hh
-
mm
-
ss
データベース取り込みタスクウィザードの
[ターゲット]
ページの
[ディレクトリタグの追加]
チェックボックスを選択すると、サイクルフォルダ名に「dt=」プレフィックスが追加されます。

サイクルコンテンツファイル

サイクルコンテンツファイルはcycle/contents/
cycle_folder
サブディレクトリにあります。サイクルコンテンツファイルには、サイクル中にDMLイベントが発生した各テーブルのレコードが含まれています。サイクル内のテーブルでDML操作が発生しなかった場合、そのテーブルはサイクルコンテンツファイルに表示されません。
一括取り込みデータベースは、次のパターンを使用してサイクルコンテンツファイルに名前を付けます。
Cycle-contents-
timestamp
.csv
サイクルコンテンツのcsvファイルには、次の情報が含まれています。
  • テーブル名
  • サイクル名
  • テーブルのサイクルフォルダへのパス
  • テーブルの開始シーケンス
  • テーブルの終了シーケンス
  • 挿入操作の数
  • 更新操作の数
  • 削除操作の数
  • 複合ロードジョブのみ
    : 切り捨て操作の数
  • 複合ロードジョブのみ
    : 初期ロードフェーズ中に発生した挿入操作の数
  • 複合ロードジョブのみ
    : 初期ロードフェーズ中に発生した削除操作の数
  • スキーマバージョン
  • スキーマバージョンのスキーマファイルへのパス
    出力データファイルがParquet形式を使用している場合、一括取り込みデータベースは、サイクルコンテンツファイルで指定されたパスにスキーマファイルを保存しません。代わりに、データベース取り込みタスクウィザードの
    [ターゲット]
    ページの
    [Avroスキーマディレクトリ]
    フィールドで指定されているフォルダ内のスキーマファイルを使用できます。

完了サイクルファイル

完了サイクルファイルはcycle/completed/
completed_cycle_folder
サブディレクトリにあります。データベース取り込みジョブは、サイクルが完了した後、このサブディレクトリにサイクルファイルを作成します。このファイルが存在しない場合、サイクルはまだ完了していません。
一括取り込みデータベースは、次のパターンを使用して完了サイクルファイルに名前を付けます。
Cycle-
timestamp
.csv
完了サイクルのcsvファイルには、次の情報が含まれています。
  • サイクル名
  • サイクル開始時刻
  • サイクル終了時刻
  • サイクル終了時の現在のシーケンス番号
  • サイクルコンテンツファイルへのパス
  • サイクル終了の理由
    有効な理由の値は、以下のとおりです。
    • NORMAL_COMMIT。サイクルがDML制限に達した後、またはサイクル間隔の終了後に、コミット操作が発生しました。サイクルはコミット境界でのみ終了できます。
    • NORMAL_EXPIRY。サイクル間隔が経過したため、サイクルが終了しました。最後の操作はコミットでした。
    • 複合初期ロードジョブのみ
      : BACKLOG_COMPLETED。CDCバックログ処理が完了したため、サイクルが終了しました。CDCバックログは、ジョブの組み合わせの初期ロードフェーズ中にキャプチャされたイベントで構成されます。バックログには、初期ロードフェーズの開始時または終了時、および初期ロードフェーズからメインのCDC増分処理への移行中にキャプチャされた可能性のあるDML変更が含まれます。
    • 複合ロードジョブのみ:
      INITIAL_LOAD_COMPLETED。初期ロードが完了したため、サイクルが終了しました。
    • 複合ロードジョブのみ:
      RESYNC_STARTED。テーブルの再同期が開始されたため、サイクルが終了しました。

出力データファイル

データファイルには、次の情報を含むレコードが含まれています。
  • 操作タイプ。有効な値は以下のとおりです。
    • I: 挿入操作
    • U: 更新操作
    • D: 削除操作
    • 複合ロードジョブのみ:
      T: 切り詰め操作
    • 複合ロードジョブのみ:
      X: 複合ロードジョブの初期ロードフェーズ中に発生した削除操作
    • 複合ロードジョブのみ:
      Y: 複合ロードジョブの初期ロードフェーズ中に発生した挿入操作
  • ソート可能なシーケンス番号。初期ロードジョブと増分ロードジョブの組み合わせでは、ソート可能なシーケンス番号には20桁のプレフィックスが含まれており、これを使用して行を再同期バージョンおよびロードジョブに合わせることができます。プレフィックスは次の属性を組み合わせたものです。
    1. インカネーション。この9桁の数字は、テーブルが再同期されるたびに増加します。初期値は1です。
    2. スキーマバージョン。この9桁の数字は、テーブルにスキーマドリフトの変更がプロパゲートされるたびに増加します。初期値は1です。
    3. フェーズ。この2桁の数字は、アンロードからバックログ、CDCへの移行が実行されると変化します。有効な値は以下のとおりです。
      • 00: 切り詰め(初期ロードまたは再同期中に最初に書き込まれたデータレコード)
      • 01: 初期ロードまたは再同期中の通常の挿入
      • 02: 初期ロード中に検出された変更
      • 03: 初期ロードまたは再同期が完了した後、メインのCDCフェーズに戻る前に検出された変更
      • 04: 通常のCDCフェーズで検出された変更
  • 日付カラム
    レコードの挿入と削除には、操作後のイメージのみが含まれています。レコードの更新には、更新前後のイメージが含まれています。