目次

Search

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

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

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

Amazon S3、Google Cloud Storage、フラットファイル、Microsoft Fabric OneLake、およびADLS Gen2ターゲット上の出力ファイルのカスタムディレクトリ構造

Amazon S3、Google Cloud Storage、フラットファイル、Microsoft Fabric OneLake、およびADLS Gen2ターゲット上の出力ファイルのカスタムディレクトリ構造

デフォルトの構造を使用しない場合は、初期ロードジョブ、増分ロードジョブ、または初期ロードと増分ロードの組み合わせジョブがAmazon S3、Google Cloud Storage、フラットファイル、またはMicrosoft Azure Data Lake Storage(ADLS)Gen2、またはMicrosoft Fabric OneLakeターゲットに書き込む出力ファイルのカスタムディレクトリ構造を設定できます。

初期ロード

デフォルトでは、初期ロードジョブは出力ファイルを親ディレクトリの下の
tablename
_
timestamp
サブディレクトリに書き込みます。Amazon S3、フラットファイル、およびADLS Gen2ターゲットについては、タスクウィザードの
[ターゲット]
ページで
[親としての接続ディレクトリ]
チェックボックスが選択されている場合、親ディレクトリはターゲット接続プロパティで指定されます。
  • Amazon S3接続では、この親ディレクトリは
    [フォルダパス]
    フィールドで指定されます。
  • フラットファイル接続では、この親ディレクトリは
    [ディレクトリ]
    フィールドで指定されます。
  • ADLS Gen2接続では、この親ディレクトリは
    [ディレクトリパス]
    フィールドで指定されます。
Google Cloud Storageターゲットでは、親ディレクトリは、タスクウィザードの
[ターゲット]
ページにある
[バケット]
フィールドで指定されたバケットコンテナです。
Microsoft Fabric OneLakeターゲットの場合、親ディレクトリは、Microsoft Fabric OneLake接続プロパティの
[レイクハウスのパス]
フィールドで指定されたパスです。
ニーズに合うようにディレクトリ構造をカスタマイズできます。例えば、初期ロードの場合、環境に合わせてファイルを整理したり、ファイルを見つけやすくしたりするために、ルートディレクトリや、接続プロパティで指定された親ディレクトリとは異なるディレクトリパスに出力ファイルを書き込むことができます。または、すべてのファイルの自動処理を容易にするために、タイムスタンプ付きのサブディレクトリにファイルを別々に書き込むのではなく、テーブルのすべての出力ファイルをテーブル名の付いたディレクトリに直接統合できます。
ディレクトリ構造を設定するには、取り込みタスクウィザードの
[ターゲット]
ページにある
[データディレクトリ]
フィールドを使用する必要があります。デフォルト値は
{TableName}_{Timestamp}
です。これにより、出力ファイルが親ディレクトリの下の
tablename
_
timestamp
サブディレクトリに書き込まれます。大文字と小文字を区別しないプレースホルダとディレクトリ名の任意の組み合わせで構成されるディレクトリパターンを作成することにより、カスタムディレクトリパスを設定できます。プレースホルダは次のとおりです。
  • ターゲットテーブル名は{TableName}
  • 初期ロードジョブがターゲットへのデータの転送を開始した日付と時刻は{Timestamp}(yyyymmdd_hhmissms形式)
  • ターゲットスキーマ名は{Schema}
  • 2桁の年は{YY}
  • 4桁の年は{YYYY}
  • 2桁の月の値は{MM}
  • 月の2桁の日は{DD}
パターンには、次の関数を含めることもできます。
  • toLower()は、かっこ内のプレースホルダで表される値を小文字にするのに使用します
  • toUpper()は、かっこ内のプレースホルダで表される値を大文字にするのに使用します
デフォルトでは、ターゲットスキーマもデータディレクトリに書き込まれます。スキーマに別のディレクトリを使用する場合は、
[スキーマディレクトリ]
フィールドでディレクトリパターンを定義できます。
例1
:
Amazon S3ターゲットを使用していて、出力ファイルとターゲットスキーマを、接続プロパティの
[フォルダパス]
フィールドで指定された親ディレクトリの下にある同じディレクトリに書き込みたいとします。この場合、親ディレクトリは
idr-test/DEMO/
です。テーブルのすべての出力ファイルを、タイムスタンプなしでテーブル名と一致する名前を持つディレクトリに書き込みたいと考えています。
[データディレクトリ]
フィールドに入力し、
[親としての接続ディレクトリ]
チェックボックスを選択する必要があります。次の画像は、タスクウィザードの
[ターゲット]
ページにあるこの設定を示しています。
この設定に基づき、結果として得られるディレクトリ構造は次のようになります。
例2
Amazon S3ターゲットを使用していて、出力データファイルをカスタムディレクトリパスに書き込み、ターゲットスキーマを別のディレクトリパスに書き込みたいとします。Amazon S3接続プロパティの
[フォルダパス]
フィールドで指定されたディレクトリをデータディレクトリとスキーマディレクトリの親ディレクトリとして使用するには、
[親としての接続ディレクトリ]
を選択します。この場合、親ディレクトリは
idr-test/DEMO/
です。
[データディレクトリ]
フィールドと
[スキーマディレクトリ]
フィールドで、data_dirやschema_dirなどの特定のディレクトリ名を使用して、その後にデフォルトの{TableName}_{Timestamp}プレースホルダ値を指定することによって、ディレクトリパターンを定義します。プレースホルダは書き込み先の
tablename
_
timestamp
ディレクトリを作成します。次の画像は、タスクウィザードの
[ターゲット]
ページにあるこの設定を示しています。
この設定に基づき、結果として得られるデータディレクトリ構造は次のようになります。
結果として得られるスキーマディレクトリ構造は次のようになります。

増分ロード、および初期ロードと増分ロードの組み合わせ

デフォルトでは、増分ロードジョブ、および初期ロードジョブと増分ロードジョブの組み合わせは、サイクルファイルとデータファイルを親ディレクトリの下のサブディレクトリに書き込みます。ただし、カスタムディレクトリ構造を作成して、組織の要件に最も合うようにファイルを整理できます。
この機能は、Amazon S3、Google Cloud Storage、またはMicrosoft Azure Data Lake Storage(ADLS)Gen2ターゲットを持つデータベース取り込み増分ロードタスク、および初期ロードタスクと増分ロードタスクの組み合わせに適用されます。また、Salesforceソースとこれらのターゲットタイプのいずれかを持つアプリケーション取り込み増分ロードジョブにも適用されます。
Google Cloud Storageを除くすべてのターゲットについては、タスクウィザードの
[ターゲット]
ページで
[親としての接続ディレクトリ]
チェックボックスがオンになっている場合、親ディレクトリはターゲット接続プロパティで設定されます。
  • Amazon S3接続では、親ディレクトリは
    [フォルダパス]
    フィールドで指定されます。
  • ADLS Gen2接続では、この親ディレクトリは
    [ディレクトリパス]
    フィールドで指定されます。
Google Cloud Storageターゲットでは、親ディレクトリは、タスクウィザードの
[ターゲット]
ページにある
[バケット]
フィールドで指定されたバケットコンテナです。
ニーズに合うようにディレクトリ構造をカスタマイズできます。例えば、データファイルとサイクルファイルは、接続プロパティで指定された親ディレクトリではなく、タスクのターゲットディレクトリに書き込むことができます。または、1)テーブル名を含むサブディレクトリの下にテーブル固有のデータとスキーマファイルを統合する、2)CDCサイクルごとにデータファイルとサマリコンテンツおよび完了したファイルをパーティション化する、または3)リテラル値とプレースホルダを含むパターンを定義することによって完全にカスタマイズされたディレクトリ構造を作成することができます。例えば、SQLタイプの式を実行して時間に基づいてデータを処理する場合は、CDCサイクルごとにパーティション化せずに、すべてのデータファイルをタイムスタンプサブディレクトリに直接書き込むことができます。
増分ロードタスクのカスタムディレクトリ構造を設定するには、取り込みタスクウィザードの
[ターゲット]
ページで、次のオプションフィールドのいずれかのパターンを定義します。
フィールド
説明
デフォルト
タスクターゲットディレクトリ
増分ロードタスクの出力ファイルを保存するために使用するルートディレクトリの名前。
[親としての接続ディレクトリ]
オプションを選択した場合でも、必要に応じてタスクターゲットディレクトリを指定できます。これは親ディレクトリに追加され、データ、スキーマ、サイクル完了、およびサイクルコンテンツディレクトリのルートを形成します。
このフィールドは、次のディレクトリフィールドのいずれかのパターンで{TaskTargetDirectory}プレースホルダが指定されている場合は必須です。
なし
親としての接続ディレクトリ
接続プロパティで指定された親ディレクトリを使用するには、このチェックボックスを選択します。
選択済み
データディレクトリ
データファイルを含むサブディレクトリへのパス。
データファイルとスキーマファイルがCDCサイクルごとにパーティション化されて
いない
場合、ディレクトリパスでは、{TableName}プレースホルダが必要です。
{TaskTargetDirectory}/data/{TableName}/data
スキーマディレクトリ
スキーマファイルをデータディレクトリに保存しない場合は、スキーマファイルを保存するサブディレクトリへのパス。
データファイルとスキーマファイルがCDCサイクルごとにパーティション化されていない場合、ディレクトリパスでは、{TableName}プレースホルダが必要です。
{TaskTargetDirectory}/data/{TableName}/schema
サイクル完了ディレクトリ
サイクル完了ファイルが含まれているディレクトリへのパス。
{TaskTargetDirectory}/cycle/completed
サイクルコンテンツディレクトリ
サイクルコンテンツファイルが含まれているディレクトリへのパス。
{TaskTargetDirectory}/cycle/contents
データディレクトリにサイクルのパーティション化を使用してください
各データディレクトリの下に、CDCサイクルごとにタイムスタンプサブディレクトリが作成されます。
このオプションが選択されていない場合、別のディレクトリ構造を定義しない限り、個々のデータファイルがタイムスタンプなしで同じディレクトリに書き込まれます。
選択済み
サマリディレクトリにサイクルのパーティション化を使用してください
サマリコンテンツサブディレクトリおよび完了サブディレクトリの下に、CDCサイクルごとにタイムスタンプサブディレクトリが作成されます。
選択済み
コンテンツ内の個々のファイルを一覧表示します
コンテンツサブディレクトリの下にある個々のデータファイルを一覧表示します。
[サマリディレクトリにサイクルのパーティション化を使用する]
がオフの場合、このオプションはデフォルトで選択されています。タイムスタンプや日付などのプレースホルダを使用してカスタムサブディレクトリを設定できる場合を除き、コンテンツサブディレクトリ内の個々のファイルがすべて一覧表示されます。
[データディレクトリにサイクルのパーティション化を使用する]
が選択されている場合でも、必要に応じてこのチェックボックスを選択して、個々のファイルを一覧表示し、CDCサイクルごとにグループ化できます。
[サマリディレクトリにサイクルのパーティション化を使用する]
が選択されている場合は選択されません。
[サマリディレクトリにサイクルのパーティション化を使用する]
をオフにした場合は選択されます。
ディレクトリパターンは、中括弧{ }で示される大文字と小文字を区別しないプレースホルダと特定のディレクトリ名の任意の組み合わせで構成されます。次のプレースホルダがサポートされています。
  • 接続プロパティのディレクトリの代わりに使用するターゲット上のタスク固有のベースディレクトリを表す{TaskTargetDirectory}
  • ターゲットテーブル名は{TableName}
  • 日付と時刻を表す{Timestamp}、形式はyyyymmdd_hhmissms
  • ターゲットスキーマ名は{Schema}
  • 2桁の年は{YY}
  • 4桁の年は{YYYY}
  • 2桁の月の値は{MM}
  • 月の2桁の日は{DD}
タイムスタンプ、年、月、および日のプレースホルダは、データ、コンテンツ、および完了ディレクトリのパターンで指定した場合はCDCサイクルの開始時点、スキーマディレクトリパターンで指定した場合はCDCジョブの開始時点を表します。
例1
:
タスクウィザードに表示される増分ロードジョブ、または初期ロードジョブと増分ロードジョブの組み合わせのデフォルトのディレクトリ設定を使用するつもりだとします。ターゲットタイプはAmazon S3です。
[親としての接続ディレクトリ]
チェックボックスがデフォルトで選択されているため、Amazon S3接続プロパティの
[フォルダパス]
フィールドで指定されている親ディレクトリパスが使用されます。この親ディレクトリは
idr-test/dbmi/
です。{TaskTargetDirectory}プレースホルダは、後続のディレクトリフィールドのデフォルトパターンで使用されるため、タスクターゲットディレクトリ名(この場合はs3_target)も指定する必要があります。{TableName}プレースホルダはデフォルトのパターンに含まれているため、データディレクトリとスキーマディレクトリ内のファイルはテーブル名でグループ化されます。また、サイクルのパーティション化が有効になっているため、データディレクトリ、スキーマディレクトリ、およびサイクルサマリディレクトリ内のファイルは、CDCサイクルごとにさらに分割されます。次の画像は、指定されたタスクターゲットディレクトリ名を除く、タスクウィザードの
[ターゲット]
ページのデフォルトの設定を示しています。
この設定に基づき、結果として得られるデータディレクトリ構造は次のようになります。
データフォルダをドリルダウンしてから、そのフォルダ内のテーブル(pgs001_src_allint_init)をドリルダウンすると、データサブディレクトリとスキーマサブディレクトリにアクセスできます。
データフォルダをドリルダウンすると、データファイルのタイムスタンプディレクトリにアクセスできます。
サイクルをドリルダウンすると、サマリコンテンツサブディレクトリと完了サブディレクトリにアクセスできます。
例2
スキーマディレクトリを除くすべてのディレクトリパスにサブディレクトリ「demo」と「d1」を追加する増分ロードジョブ、または初期ロードジョブと増分ロードジョブの組み合わせ用のカスタムディレクトリ構造を作成して、デモ用のファイルを簡単に見つけられるようにしたいと考えています。
[親としての接続ディレクトリ]
チェックボックスが選択されているため、Amazon S3接続プロパティの
[フォルダパス]
フィールドで指定されている親ディレクトリパス(
idr-test/dbmi/
)が使用されます。{TaskTargetDirectory}プレースホルダは、後続のディレクトリフィールドのパターンで使用されるため、タスクターゲットディレクトリも指定する必要があります。データディレクトリとスキーマディレクトリ内のファイルは、テーブル名でグループ化されます。また、サイクルのパーティション化が有効になっているため、データディレクトリ、スキーマディレクトリ、およびサイクルサマリディレクトリ内のファイルは、CDCサイクルごとにさらに分割されます。次の画像は、タスクウィザードの
[ターゲット]
ページにあるカスタム設定を示しています。
この設定に基づき、結果として得られるデータディレクトリ構造は次のようになります。