サポートされるターゲット アプリケーション取り込みとレプリケーション がサポートするターゲットは、アプリケーション取り込みとレプリケーション タスクに指定されているソースによって異なります。
次の表に、各ロードタイプでサポートされているターゲットタイプ(S)を示します。
ターゲットタイプ
初期ロード
増分ロード
初期ロードと増分ロード
Amazon Redshift
S
S
S
Amazon S3
S
S
S
Apache Kafka
-
S
-
Databricks
S
S
S
Google BigQuery
S
S
S
Google Cloud Storage
S
S
S
Microsoft Azure Data Lake Storage Gen2
S
S
S
Microsoft Azure SQL Database
S
S
S
Microsoft Azure Synapse Analytics
S
S
S
Microsoft Fabric OneLake
S
S
S
Oracle
S
S
S
Oracle Cloud Infrastructure(OCI)Object Storage
S
S
S
PostgreSQL
S
S
S
Snowflake
S
S
S
次の表に、アプリケーション取り込みとレプリケーション が各ソースタイプに対してサポートするターゲットを示します。
ソースタイプ
サポートされるターゲットタイプ
Adobe Analytics
Amazon Redshift、Amazon S3、Apache Kafka、Databricks、Google BigQuery、Google Cloud Storage、Microsoft Azure Data Lake Storage Gen2、Microsoft Azure Synapse Analytics、Microsoft Fabric OneLake、Oracle、およびSnowflake
Google Analytics
Amazon Redshift、Amazon S3、Apache Kafka、Databricks、Google BigQuery、Google Cloud Storage、Microsoft Azure Data Lake Storage Gen2、Microsoft Azure Synapse Analytics、Microsoft Fabric OneLake、Oracle、およびSnowflake
Marketo
Amazon Redshift、Amazon S3、Apache Kafka(増分ロード)、Databricks、Google BigQuery、Google Cloud Storage、Microsoft Azure Data Lake Storage Gen2、Microsoft Azure Synapse Analytics、Microsoft Fabric OneLake、Oracle、およびSnowflake
Microsoft Dynamics 365
Amazon Redshift、Amazon S3、Apache Kafka、Databricks、Google BigQuery、Google Cloud Storage、Microsoft Azure Data Lake Storage Gen2、Microsoft Azure Synapse Analytics、Microsoft Azure SQL Database、Microsoft Fabric OneLake、Oracle、およびSnowflake
NetSuite
Amazon Redshift、Amazon S3、Apache Kafka、Databricks、Google BigQuery、Google Cloud Storage、Microsoft Azure Data Lake Storage Gen2、Microsoft Azure Synapse Analytics、Microsoft Fabric OneLake、Oracle、およびSnowflake
Oracle Fusion Cloud
- REST APIの使用 - Amazon Redshift、Amazon S3、Apache Kafka、Databricks、Google BigQuery、Google Cloud Storage、Microsoft Azure Data Lake Storage Gen2、Microsoft Azure Synapse Analytics、Microsoft Fabric OneLake、Oracle、およびSnowflake- BICCの使用 - Amazon Redshift、Amazon S3、Apache Kafka、Databricks、Google BigQuery、Google Cloud Storage、Microsoft Azure Data Lake Storage Gen2、Microsoft Azure Synapse Analytics、Microsoft Fabric OneLake、Oracle、およびSnowflake Salesforce
Amazon Redshift、Amazon S3、Apache Kafka、Databricks、Google BigQuery、Google Cloud Storage、Microsoft Azure Data Lake Storage Gen2、Microsoft Azure Synapse Analytics、Oracle、Microsoft Azure SQL Database、Microsoft Fabric OneLake、およびSnowflake
Salesforce Marketing Cloud
Amazon Redshift、Amazon S3、Databricks、Google BigQuery、Google Cloud Storage、Microsoft Azure Data Lake Storage Gen2、Microsoft Azure Synapse Analytics、Microsoft Fabric OneLake、Oracle、およびSnowflake
SAP
- SAP ODP Extractorコネクタの使用 - Amazon Redshift、Amazon S3、Apache Kafka、Databricks、Google BigQuery、Google Cloud Storage、Microsoft Azure Data Lake Storage Gen2、Microsoft Azure Synapse Analytics、Microsoft Fabric OneLake、Oracle、およびSnowflake- SAP Mass Ingestionコネクタの使用 - Amazon Redshift、Amazon S3、Apache Kafka、Databricks、Google BigQuery、Google Cloud Storage、Microsoft Azure Data Lake Storage Gen2、Microsoft Azure Synapse Analytics、Microsoft Azure SQL Database(初期ロード)、Microsoft Fabric OneLake、Oracle、およびSnowflake ServiceNow
Amazon Redshift、Apache Kafka、Databricks、Amazon S3、Google BigQuery、Google Cloud Storage、Microsoft Azure Data Lake Storage Gen2、Microsoft Azure Synapse Analytics、Microsoft Fabric OneLake、Oracle、およびSnowflake
Workday
- SOAP。Amazon Redshift、Amazon S3、Apache Kafka(増分ロード)、Databricks、Google BigQuery、Google Cloud Storage、Microsoft Azure Data Lake Storage Gen2、Microsoft Azure Synapse Analytics、Microsoft Fabric OneLake、Oracle、およびSnowflake - RaaS。Amazon Redshift、Amazon S3、Databricks、Google BigQuery、Google Cloud Storage、Microsoft Azure Data Lake Storage Gen2、Microsoft Azure Synapse Analytics、Microsoft Fabric OneLake、Oracle、およびSnowflakeZendesk
Amazon Redshift、Amazon S3、Apache Kafka、Databricks、Google BigQuery、Google Cloud Storage、Microsoft Azure Data Lake Storage Gen2、Microsoft Azure Synapse Analytics、Microsoft Fabric OneLake、Oracle、およびSnowflake
ターゲットタイプに使用するコネクタを判断するには、「コネクタと接続」 > 「アプリケーション取り込みおよびレプリケーションコネクタ」を参照してください。
Amazon Redshiftターゲットのガイドライン Amazon Redshiftターゲットを使用する場合は、次のガイドラインを考慮してください。
• Amazon Redshiftターゲットテーブルにデータを書き込む前に、アプリケーション取り込みとレプリケーション ジョブはデータをAmazon S3バケットにステージングします。アプリケーション取り込みとレプリケーション タスクを設定するときに、バケットの名前を指定する必要があります。取り込みジョブはCOPYコマンドを使用して、Amazon S3バケットからAmazon Redshiftターゲットテーブルにデータをロードします。COPYコマンドの詳細については、Amazon Web Servicesのドキュメントを参照してください。• Amazon Redshiftターゲットの接続を定義するときに、アプリケーション取り込みとレプリケーション ジョブによってデータをステージングしてAmazon Redshiftターゲットテーブルにロードする、Amazon S3バケットのアクセスキーとシークレットアクセスキーを指定します。• ソースからAmazon Redshiftターゲットにデータを取り込むときに、データソースに含まれているデータフィールドまたはデータカラムのうち、プライマリキーとして定義されているものが32を超える場合、アプリケーション取り込みとレプリケーション ジョブは失敗します。• 増分ロードジョブと、初期ロードジョブと増分ロードジョブの組み合わせにより、ターゲット上にINFORMATICA_CDC_RECOVERYという名前のリカバリテーブルが生成され、内部サービス情報が格納されます。リカバリテーブルのデータによって、障害後に再開されたジョブが以前に処理されたデータを再度プロパゲートすることが防止されます。リカバリテーブルは、ターゲットテーブルのスキーマで生成されます。Amazon S3、Google Cloud Storage、Microsoft Azure Data Lake Storage Gen2、Microsoft Fabric OneLake、およびOracle Cloud Object Storageターゲットのガイドライン Amazon S3、Google Cloud Storage、Microsoft Azure Data Lake Storage Gen2、Microsoft Fabric OneLake、およびOracle Cloud Infrastructure(OCI)Object Storageターゲットを使用する場合は、次のガイドラインを考慮してください。
• Amazon S3、Google Cloud Storage、Microsoft Azure Data Lake Storage Gen2、Microsoft Fabric OneLake、またはOracle Cloud Object Storageターゲットを使用するアプリケーション取り込みとレプリケーション タスクを設定する場合は、ターゲットに適用するソースデータを含む出力ファイルの形式としてCSV、Avro、Parquetのいずれかを選択できます。• 出力ファイル形式として[CSV] を選択した場合、アプリケーション取り込みとレプリケーション は、ソースフィールドごとに次のファイルをターゲットに作成します。- フィールドのスキーマを記述するschema.iniファイル。このファイルには、ターゲットの出力ファイルに対するいくつかの設定も含まれています。- ソースフィールドに保存されているデータを含む出力ファイル。アプリケーション取り込みとレプリケーション は、日付と時刻が追加されたソースフィールドの名前に基づいて、出力ファイルに名前を付けます。schema.iniファイルには、対応する出力ファイルの行の一連のカラムが一覧表示されます。次の表で、schema.iniファイルのカラムについて説明します。
カラム
説明
ColNameHeader
ソースデータファイルにカラムヘッダーが含まれているかどうかを示します。
Format
出力ファイルの形式。アプリケーション取り込みとレプリケーション はカンマ(,)を使用してカラムの値を区切ります。
CharacterSet
対応する出力ファイルに使用される文字セット。デフォルトでは、アプリケーション取り込みとレプリケーション はUTF-8文字セットでファイルを生成します。
COL<sequence_number>
ソースフィールドの名前とデータ型。
注: schema.iniファイルを編集してはいけません。
• [Avro]出力フォーマットを選択した場合、Avro形式タイプ、ファイル圧縮タイプ、Avroデータ圧縮タイプ、および各ソーステーブルに対して生成されたAvroスキーマ定義を格納するディレクトリを選択できます。スキーマ定義ファイルの命名パターンは、スキーマ名 _テーブル名 .txtです。• Parquet出力形式を選択した場合、必要に応じて、Parquetがサポートする圧縮タイプを選択できます。• Microsoft Azure Data Lake Storage Gen2およびMicrosoft Fabric OneLakeターゲット用に設定されたアプリケーション取り込みとレプリケーション タスクの場合、アプリケーション取り込みとレプリケーション は、空のソースフィールドごとに、ターゲットに空のディレクトリを作成します。• Amazon S3ターゲットについては、接続プロパティでアクセスキーと秘密鍵を指定しない場合、アプリケーション取り込みとレプリケーション はDefaultAWSCredentialsProviderChainクラスによって実装されているデフォルトの資格情報プロバイダチェーンを使用して、AWS資格情報を見つけようとします。詳細については、Amazon Webサービスのドキュメントを参照してください。• CSV出力形式を使用する、ターゲット用に設定された増分ロードジョブまたは初期ロードジョブと増分ロードジョブの組み合わせが、ソースのプライマリキーの値を変更した更新操作をプロパゲートする場合、ジョブは関連するターゲット行に対して削除操作を実行してから、同じ行に対して挿入操作を実行することで、ソースオブジェクトに加えられた変更をレプリケートします。削除操作は操作前のイメージをターゲットに書き込み、後続の挿入イメージは操作後のイメージをターゲットに書き込みます。プライマリキー値を変更しない更新操作の場合、アプリケーション取り込みとレプリケーション ジョブは各更新操作を1つの操作として処理し、操作後のイメージのみをターゲットに書き込みます。
注: ソースオブジェクトにプライマリキーが含まれていない場合、アプリケーション取り込みとレプリケーション は、オブジェクトのすべてのフィールドがプライマリキーの一部であると見なします。そのようなシナリオでは、アプリケーション取り込みとレプリケーション はソースに対して実行された各更新操作を、ターゲットに対する削除操作とそれに続く挿入操作として処理します。
Amazon S3、Google Cloud Storage、およびMicrosoft Azure Data Lake Storage Gen2、およびMicrosoft Fabric OneLakeターゲット上のCDCファイルのデフォルトのディレクトリ構造 アプリケーション取り込みとレプリケーション ジョブは、Amazon S3、Google Cloud Storage、Microsoft Azure Data Lake Storage Gen2、およびMicrosoft Fabric OneLakeターゲットにディレクトリを作成して、変更データ処理に関する情報を格納します。
次のディレクトリ構造がデフォルトでターゲットに作成されます。
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 └───object_name ├───Data │ ├───cycle_folder │ │ └───object_name _timestamp .csv │ │ ... │ └───cycle_folder │ └───object_name _timestamp .csv └───Schema └───V1 └───object_name .schema
次の表に、デフォルト構造に含まれるディレクトリを示します。
フォルダ
説明
connection_folder
アプリケーション取り込みとレプリケーション オブジェクトが含まれています。このフォルダは、Amazon S3接続プロパティの[フォルダパス] フィールド、Microsoft Azure Data Lake Storage Gen2接続プロパティの[ディレクトリパス] フィールド、またはMicrosoft Fabric OneLake接続プロパティの[レイクハウスパス] フィールドで指定されています。
注: このフォルダは、Google Cloud Storageターゲット用には作成されていません。
job_folder
ジョブ出力ファイルが含まれています。このフォルダは、アプリケーション取り込みとレプリケーション タスクウィザードの[ターゲット] ページの[ディレクトリ] フィールドで指定されています。
cycle/Completed
各完了CDCサイクルのサブフォルダが含まれています。各サイクルサブフォルダには、完了サイクルファイルが含まれています。
cycle/Contents
各CDCサイクルのサブフォルダが含まれます。各サイクルサブフォルダには、サイクルコンテンツファイルが含まれています。
data
各オブジェクトの出力データファイルとスキーマファイルが含まれています。
data/object_name /Schema/V1
スキーマファイルが含まれています。
注: 出力ファイルがParquet形式を使用している場合、アプリケーション取り込みとレプリケーション はスキーマファイルをこのフォルダに保存しません。
data/object_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 。オブジェクトの再同期が開始されたため、サイクルが終了しました。出力データファイル データファイルには、次の情報を含むレコードが含まれています。
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 ディレクトリを作成します。
この設定に基づき、結果として得られるデータディレクトリ構造は次のようになります。
結果として得られるスキーマディレクトリ構造は次のようになります。
増分ロード、および初期ロードと増分ロードの組み合わせ デフォルトでは、増分ロードジョブ、および初期ロードジョブと増分ロードジョブの組み合わせは、サイクルファイルとデータファイルを親ディレクトリの下のサブディレクトリに書き込みます。ただし、カスタムディレクトリ構造を作成して、組織の要件に最も合うようにファイルを整理できます。
この機能は、SalesforceソースおよびAmazon S3、Google Cloud Storage、Microsoft Fabric OneLake、またはMicrosoft Azure Data Lake Storage(ADLS)Gen2ターゲットを持つアプリケーション取り込みとレプリケーション 増分ロードジョブに適用されます。
Amazon S3およびADLS Gen2のターゲットについては、タスクウィザードの[ターゲット] ページで[親としての接続ディレクトリ] チェックボックスが選択されている場合、親ディレクトリはターゲット接続プロパティで設定されます。
• Amazon S3接続では、親ディレクトリは[フォルダパス] フィールドで指定されます。• ADLS Gen2接続では、この親ディレクトリは[ディレクトリパス] フィールドで指定されます。Google Cloud Storageターゲットでは、親ディレクトリは、タスクウィザードの[ターゲット] ページにある[バケット] フィールドで指定されたバケットコンテナです。
Microsoft Fabric OneLakeターゲットの場合、親ディレクトリは、Microsoft Fabric OneLake接続プロパティの[レイクハウスのパス] フィールドで指定されたパスです。
ニーズに合うようにディレクトリ構造をカスタマイズできます。例えば、データファイルとサイクルファイルは、接続プロパティで指定された親ディレクトリではなく、タスクのターゲットディレクトリに書き込むことができます。または、1)テーブル名を含むサブディレクトリの下にテーブル固有のデータとスキーマファイルを統合する、2)CDCサイクルごとにデータファイルとサマリコンテンツおよび完了したファイルをパーティション化する、または3)リテラル値とプレースホルダを含むパターンを定義することによって完全にカスタマイズされたディレクトリ構造を作成することができます。例えば、SQLタイプの式を実行して時間に基づいてデータを処理する場合は、CDCサイクルごとにパーティション化せずに、すべてのデータファイルをタイムスタンプサブディレクトリに直接書き込むことができます。
増分ロードタスクのカスタムディレクトリ構造を設定するには、取り込みタスクウィザードの[ターゲット] ページで、次のオプションフィールドのいずれかのパターンを定義します。
フィールド
説明
デフォルト
タスクターゲットディレクトリ
増分ロードタスクの出力ファイルを保存するために使用するルートディレクトリの名前。
[親としての接続ディレクトリ] オプションを選択した場合でも、必要に応じてタスクターゲットディレクトリを指定できます。これは親ディレクトリに追加され、データ、スキーマ、サイクル完了、およびサイクルコンテンツディレクトリのルートを形成します。
このフィールドは、次のディレクトリフィールドのいずれかのパターンで{TaskTargetDirectory}プレースホルダが指定されている場合は必須です。
なし
親としての接続ディレクトリ
接続プロパティで指定された親ディレクトリを使用するには、このチェックボックスを選択します。
このフィールドは、Microsoft Fabric OneLakeターゲットでは使用できません。
選択済み
データディレクトリ
データファイルを含むサブディレクトリへのパス。
データファイルとスキーマファイルが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サイクルごとにさらに分割されます。
この設定に基づき、結果として得られるデータディレクトリ構造は次のようになります。
Apache Kafkaターゲットのガイドライン Apache Kafkaターゲットを使用する場合は、次のガイドラインを考慮してください。
• アプリケーション取り込みとレプリケーション は、増分ロードジョブのターゲットとして、Apache Kafka、Confluent Kafka、Amazon Managed Streaming for Apache Kafka(MSK)、およびKafka対応Azure Event Hubsをサポートします。これらすべてのKafkaターゲットタイプは、Kafka接続タイプを使用します。Kafkaターゲットタイプを指定するには、タスク定義またはKafka接続プロパティでKafkaプロデューサプロパティを指定する必要があります。タスクのこれらのプロパティを指定するには、タスクウィザードの[ターゲット] ページの[プロデューサ設定プロパティ] フィールドに、key :value ペアのカンマ区切りのリストを入力します。Kafka接続を使用するすべてのタスクのプロデューサプロパティを指定するには、プロパティのリストを接続プロパティの[追加接続プロパティ] フィールドに入力します。タスクレベルでプロデューサプロパティを定義することにより、特定のタスクの接続レベルのプロパティをオーバーライドできます。プロデューサプロパティの詳細については、Apache Kafka、Confluent Kafka、Amazon MSK、またはKafka用Azure Event Hubsのドキュメントを参照してください。
• [AVRO] をKafkaターゲットの出力形式として選択した場合、アプリケーション取り込みとレプリケーション は次の形式の名前で、各テーブルのスキーマ定義ファイルを生成します。schemaname_tablename.txt
• ソーススキーマの変更により、増分ロードジョブのターゲットが変更されることが予想される場合は、アプリケーション取り込みとレプリケーション がタイムスタンプを含む一意の名前でAvroスキーマ定義ファイルを再生成します。schemaname_tablename_YYYYMMDDhhmmss.txt
この一意の命名パターンにより、古いスキーマ定義ファイルが監査目的で保持されます。
• Confluent Schema Registryを使用してスキーマを格納するConfluent Kafkaターゲットがある場合は、タスクウィザードの[ターゲット]ページで次の設定を行う必要があります。- [出力形式] フィールドで、[AVRO] を選択します。- [Avroシリアル化形式] フィールドで、[なし] を選択します。• Kafkaプロデューサプロパティをタスクウィザードの[ターゲット] ページの[プロデューサ設定プロパティ] フィールド、またはKafka接続プロパティの[追加接続プロパティ] フィールドいずれかで指定できます。ビジネスニーズに合うように、Kafkaベンダーによってサポートされているproperty=valueのペアを入力します。例えば、Confluent Kafkaを使用する場合は、[プロデューサ設定プロパティ]フィールドまたは[追加接続プロパティ]フィールドで次のエントリを使用してスキーマレジストリのURLを指定し、基本認証を有効にすることができます。
schema.registry.url=http://schema-registry:8081, key.serializer=org.apache.kafka.common.serialization.StringSerializer, value.serializer=io.confluent.kafka.serializers.KafkaAvroSerializer, basic.auth.credentials.source=USER_INFO, basic.auth.user.info=myname:mypassword
Amazon MSKを使用する場合は、次の[追加接続プロパティ] エントリを使用して、Amazon MSKターゲットにアクセスするためのIAMロール認証を有効にすることができます。
security.protocol=SASL_SSL,sasl.mechanism=AWS_MSK_IAM,sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required;,sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler
必ずSecure AgentがインストールされているAmazon EC2インスタンスでIAMロール認証を有効にしてください。
Kafkaプロパティの詳細については、Kafkaベンダーのドキュメントを参照してください。
• アプリケーション取り込みとレプリケーション の増分ロードジョブでは、Confluent Kafka、Amazon MSK、およびAzure Event Hubsターゲットを含め、SASL_SSLで保護されたアクセスをサポートするKafkaターゲットに変更データをレプリケートすることができます。Administratorで、[追加接続プロパティ] フィールドの適切なプロパティをはじめとするKafka接続を設定する必要があります。例えば、Azure Event Hubsの場合、次の[追加接続プロパティ] エントリを使用して、SASL_SSLを有効にすることができます。bootstrap.servers=NAMESPACENAME.servicebus.windows.net:9093 security.protocol=SASL_SSL sasl.mechanism=PLAIN sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="{YOUR.EVENTHUBS.CONNECTION.STRING}";
Databricksターゲットのガイドライン Databricksターゲットを使用する場合は、次のガイドラインを考慮してください。
• Databricksターゲットを初めて使用する場合は、ターゲットに対してアプリケーション取り込みとレプリケーション タスクを設定する前に、次の手順を実行します。1 Databricks接続プロパティで、[JDBCドライバクラス名] プロパティをcom.databricks.client.jdbc.Driver に設定します。2 Windowsでは、Secure Agentが実行されているコンピュータにVisual Studio2013用のVisual C++再配布可能パッケージをインストールします。• 増分ロードジョブの場合、すべてのソースフィールドに対して変更データキャプチャ(Change Data Capture: CDC)を有効にする必要があります。• 次のストレージタイプの上に作成されたDatabricksテーブルにアクセスできます。- Microsoft Azure Data Lake Storage(ADLS)Gen2- Amazon Web Services(AWS)S3Databricks接続は、JDBC URLを使用してDatabricksクラスタに接続します。ターゲットを設定するときは、クラスタへの接続に使用するJDBC URLと資格情報を指定します。また、ターゲットがAmazon S3またはADLS Gen2のステージングロケーションに接続するために使用する接続情報を定義します。
• Databricksターゲットテーブルにデータを書き込む前に、アプリケーション取り込みとレプリケーション ジョブはデータをAmazon S3バケットまたはまたはADLSディレクトリにステージングします。アプリケーション取り込みとレプリケーション タスクを設定するときに、データのディレクトリを指定する必要があります。注: アプリケーション取り込みとレプリケーション は、ディレクトリを決定する際にDatabricks接続プロパティの[ADLSステージングファイルシステム名] と[S3ステージングバケット] プロパティは使用しません。
• アプリケーション取り込みとレプリケーション は、1回だけ実行されるジョブを使用して、AWS S3またはADLS Gen2のステージングファイルから外部テーブルにデータをロードします。デフォルトでは、アプリケーション取り込みとレプリケーション は、Databricks接続プロパティで指定されたクラスタでジョブを実行します。別のクラスタでジョブを実行する場合は、アプリケーション取り込みとレプリケーション タスクウィザードの[ターゲット] ページでdbDeltaUseExistingClusterカスタムプロパティをFALSEに設定します。
• Databricks接続プロパティで指定されたクラスタが稼働していない場合、アプリケーション取り込みとレプリケーション ジョブはクラスタが開始するまで待機します。デフォルトでは、ジョブは10分間待機します。クラスタが10分以内に開始されない場合、接続がタイムアウトし、ジョブのデプロイが失敗します。接続のタイムアウト値を増やす場合は、dbClusterStartWaitingTimeカスタムプロパティを、クラスタが起動して実行されるまで取り込みおよびレプリケーションジョブが待機する必要がある最大時間(秒単位)に設定します。カスタムプロパティはアプリケーション取り込みとレプリケーション タスクウィザードの[ターゲット] ページで設定できます。
• デフォルトでは、アプリケーション取り込みとレプリケーション は、DatabricksのCOPY INTO機能を使用して、ステージングファイルからDatabricksターゲットテーブルにデータをロードします。アプリケーション取り込みとレプリケーション タスクウィザードの[ターゲット] ページでwriterDatabricksUseSqlLoadカスタムプロパティをFALSEに設定すると、すべてのロードタイプでこれを無効にできます。• AWSクラスタを使用する場合は、Databricks接続プロパティの[S3サービスリージョナルエンドポイント] の値を指定する必要があります。以下に例を示します。s3.us-east-2.amazonaws.com
Databricks接続をテストする前には、Databricks接続プロパティの[SQLエンドポイントJDBC URL] フィールドでJDBC URLを指定する必要があります。接続をテストしたら、[SQLエンドポイントJDBC URL] の値を削除します。そうしないと、接続を使用するアプリケーション取り込みとレプリケーション タスクを定義するときに設計時エラーが発生します。これは、アプリケーション取り込みとレプリケーション が、JDBC URLの他に、必須の[Databricksホスト] 、[クラスタID] 、[組織ID] 、[Databricksトークン] の値を使用してターゲットに接続しようとし、ログインエラーを引き起こすためです。
• 基になるParquetファイルを書き換える必要なく、Databricksターゲットテーブルに対してフィールド名の変更操作を処理するには、Databricks Runtime 10.2以降のDatabricksカラムマッピング機能が必要です。タスクウィザードの[スケジュールおよびランタイムオプション] ページで[フィールド名の変更]オプションを[レプリケート] に設定した場合、タスクのデプロイ後、ジョブを実行する前に、生成されたターゲットテーブルを変更して、次のDatabricksテーブルプロパティを設定する必要があります。ALTER TABLE <target_table> SET TBLPROPERTIES ( 'delta.columnMapping.mode' = 'name', 'delta.minReaderVersion' = '2', 'delta.minWriterVersion' = '5')
これらのプロパティにより、必要なリーダーとライターのバージョンのDatabricksカラムマッピング機能が有効になります。これらのプロパティを設定しない場合、アプリケーション取り込みとレプリケーション ジョブは失敗します。
• Databricksターゲットを含むアプリケーション取り込みとレプリケーション は、Databricks Unity Catalogからターゲットテーブルを生成するためのスキーマ情報を取得できます。Unity Catalog内の情報へのアクセスを有効にするには、Databricks接続プロパティの[カタログ名] フィールドにカタログ名を指定します。カタログ名は、データウェアハウスの[SQLウェアハウスJDBC URL] 値に追加されます。注: カタログの使用はSQLウェアハウスの場合はオプションであり、ジョブクラスタには適用されません。
Unity Catalogを使用する場合は、個人用ストレージの場所が自動的にプロビジョニングされます。個人用のステージング場所を使用するには、接続プロパティの[ステージング環境] フィールドで[個人用のステージング場所] を選択します。その後、取り込みジョブのParquetデータファイルをローカルの個人用ストレージの場所にステージングできます。データ保持期間は7日間です。デフォルトでは、ステージング場所はAWSまたはAzureのルートの場所stage://tmp/<user_name> です。<user_name>は、[データベーストークン] 接続プロパティから取得されます。このユーザーには、個人用のステージング場所に対する読み取りおよび書き込みアクセス権が必要です。
• Databricksアンマネージドテーブルをターゲットテーブルとして生成し、ターゲットのアンマネージドテーブルが不要になった場合は、SQL DROP TABLE文を使用してターゲットデータベースからそのテーブルを削除します。Amazon S3またはAzure Data Lake Storageにあるアンマネージドテーブル用の外部ディレクトリは手動で削除しないでください。その場合、そのテーブルを使用する別のジョブをデプロイしようとすると、デプロイはメタデータハンドラエラーで失敗します。Google BigQueryターゲットのガイドライン Google BigQueryターゲットを使用する場合は、次のガイドラインを考慮してください。
• Google BigQueryターゲットを初めて使用する場合は、ターゲットに対してアプリケーション取り込みとレプリケーション タスクを設定する前に、次の手順を実行します。1 Google BigQuery JDBCドライバSimbaJDBCDriverforGoogleBigQuery42_1.6.1.1002をGoogle Cloud のWebサイトからダウンロードします。2 インストールzipからGoogleBigQueryJDBC42.jarファイルのみを次のディレクトリにコピーします。<Secure_Agent_installation_directory >/apps/Database_Ingestion/ext/
注: そのディレクトリに他のGoogle BigQueryドライバ.jarファイルが存在する場合は、それらを削除します。これらは現在、アプリケーション取り込みとレプリケーション にバンドルされています。
3 Secure Agentを再起動します。• Google BigQueryとGoogle Cloud StorageにアクセスするためのサービスアカウントがGoogleアカウントにある必要があります。• サービスアカウントにclient_email、project_id、private_key、およびregionIDの値があることを確認してください。Google BigQuery接続を作成するときに、対応する[サービスアカウントID] 、[プロジェクトID] 、[サービスアカウントキー] 、および[リージョンID] 接続プロパティに値を入力します。 • Google BigQuery接続のタイムアウト間隔を設定する場合は、接続プロパティの[オプションのプロパティを指定] フィールドでタイムアウト間隔プロパティを指定します。次の形式を使用します。"timeout": "<timeout_interval_in_seconds >"
• 次のエンティティへの読み取りおよび書き込みアクセスが必要です。- ターゲットテーブルを含むGoogle BigQueryデータセット。- アプリケーション取り込みとレプリケーション がステージングファイルを作成するGoogle Cloud Storageパス。• Google BigQueryターゲット用に設定されたアプリケーション取り込みとレプリケーション ジョブは、ソースフィールドの変更と名前変更をターゲットにレプリケートしません。• 増分ロードタスクの場合、すべてのソースフィールドに対してソースデータベース変更データキャプチャ(Change Data Capture: CDC)を有効にする必要があります。• Google BigQueryテーブルにデータを書き込むには、次の権限が必要です。- bigquery.datasets.get- bigquery.datasets.getIamPolicy- bigquery.models.*- bigquery.routines.*- bigquery.tables.create- bigquery.tables.delete- bigquery.tables.export- bigquery.tables.get- bigquery.tables.getData- bigquery.tables.list- bigquery.tables.update- bigquery.tables.updateData- bigquery.tables.updateTag- resourcemanager.projects.get- resourcemanager.projects.list- bigquery.jobs.create• アプリケーション取り込みとレプリケーション ジョブをデプロイすると、アプリケーション取り込みとレプリケーション はデフォルトでは、プライマリキーカラムまたは一意のキーカラムでクラスタ化されたGoogle BigQueryターゲットテーブルを生成します。各キーカラムには、Google BigQueryがクラスタリングでサポートする次のいずれかのデータ型が必要です。- STRING- INT64- NUMERIC- BIGNUMERIC- DATE- DATETIME- TIMESTAMP- BOOL- GEOGRAPHYプライマリキーまたはユニークキーのカラムにサポートされていないデータ型がある場合、クラスタリング時にそのカラムはスキップされます。例えば、プライマリキーにC1、C2、C3、C4、C5カラムが含まれていて、C2にサポートされていないデータ型がある場合、ターゲットテーブルはCLUSTER BY句にC1、C3、C4、およびC5カラムを使用して作成されます。
Microsoft Azure Synapse Analyticsターゲットのガイドライン Microsoft Azure Synapse Analyticsターゲットを使用する場合は、次のガイドラインを考慮してください。
• Microsoft Azure Synapse Analyticsターゲットを使用してアプリケーション取り込みとレプリケーション タスクをデプロイして実行するには、ターゲット接続でターゲットデータベースに対するCONTROL権限を持つデータベースユーザーを指定する必要があります。ユーザーにCONTROL権限を付与するには、次のSQL文を使用します。USE database_name ; GRANT CONTROL TO user_name ;
CONTROL権限は、初期ロード、増分ロード、および初期ロードと増分ロードの組み合わせジョブに必要です。この権限により、アプリケーション取り込みとレプリケーション は、ターゲットテーブルと、外部データソース、外部ファイル形式、データベーススコープの資格情報オブジェクト(データベースに存在しない場合)などのデータベースオブジェクトを作成できます。CONTROL権限は、外部データソースおよびデータベーススコープの資格情報オブジェクトを作成するために特に必要です。
注: マスターキーを手動で作成する必要があります。マスターキーを作成するには、データベースに対するCONTROL権限が必要です。
• アプリケーション取り込みとレプリケーション ジョブは、データをMicrosoft Azure Synapse Analyticsターゲットテーブルに書き込む前に、まずMicrosoft Azure Data Lake Storage Gen2ステージングファイルにデータを送信します。ステージングファイルは、フィールド区切り文字として16進数のx1d区切り文字を使用します。データがターゲットに書き込まれた後、ステージングファイルを含むテーブル固有のディレクトリに保存されているデータが削除されます。• Microsoft Azure Synapse Analytics接続でMicrosoft Azure Data Lake Storage Gen2を使用する場合は、Microsoft Azure Data Lake Storageの[階層型名前空間] オプションを有効にする必要があります。この設定では、blobストレージは推奨されません。• Microsoft Azure Synapse Analyticsターゲットのアプリケーション取り込みとレプリケーション タスクを構成するときに、レプリケーションの対象として選択した各ソースオブジェクトが次の条件を満たしていることを確認します。- オブジェクトには1024を超えるフィールドが含まれていてはならず、各フィールドのサイズは500 KB未満である必要があります。- オブジェクトには、サイズが1 MBを超えるレコードが含まれていてはいけません。- オブジェクトには、32を超えるプライマリキーが含まれていてはいけません。- クラスタインデックスキーには、サイズが900バイトを超えるデータを含めることはできません。 - オブジェクトのプライマリキーは、Microsoft Azure Synapse Analyticsがプライマリキーに対してサポートするデータ型である必要があります。• 増分ロードジョブと、初期ロードジョブと増分ロードジョブの組み合わせにより、ターゲット上にINFORMATICA_CDC_RECOVERYという名前のリカバリテーブルが生成され、内部サービス情報が格納されます。リカバリテーブルのデータによって、障害後に再開されたジョブが以前に処理されたデータを再度プロパゲートすることが防止されます。リカバリテーブルは、ターゲットテーブルのスキーマで生成されます。• アプリケーション取り込みとレプリケーション ジョブが外部テーブルを使用してMicrosoft Azure Synapse Analyticsターゲットにデータをロードすると、ジョブの再開時にこれらのテーブルが再作成される場合でも、ジョブはターゲット上に作成されたログテーブルと外部テーブルを削除しません。• Microsoft Azure Synapse Analyticsターゲット用に設定されたアプリケーション取り込みとレプリケーション ジョブは、ソースフィールドの名前変更をターゲットにレプリケートしません。Microsoft Azure SQL DatabaseターゲットおよびSQL Serverターゲットのガイドライン Microsoft Azure SQL DatabaseターゲットおよびMicrosoft SQL ServerターゲットをSAP(初期ロードのみにSAP Mass Ingestionコネクタを使用)、Microsoft Dynamics 365、およびSalesforceソースをすべてのロードタイプで使用する場合は、次のガイドラインを考慮してください。Microsoft SQL Databaseターゲットには、オンプレミス、SQL Server用のMicrosoft Amazon RDS(リレーショナルデータベースサービス)、Azure SQL Managed Instanceターゲットが含まれます。
次のリストは、Microsoft SQL DatabaseターゲットおよびMicrosoft SQL Serveターゲットの準備および使用に関する考慮事項を示しています。
• SQL Server JDBCドライバは、アプリケーション取り込みとレプリケーション とともに提供されます。個別にインストールする必要はありません。• アプリケーション取り込みとレプリケーション ユーザーには、ターゲットテーブルの作成とテーブルへのデータの書き込みを行うため、少なくとも次のデータベースロールが必要です。- db_datareader- db_datawriter- db_ddladmin• Administratorで、SQL Serverターゲットに接続するためのSQL Server接続を定義するときに、次の必須の接続プロパティを設定します。- SQL Serverのバージョン。[SQL Server 2017] または[SQL Server 2019] を選択します。- 認証モード。[SQL Server認証] または[Windows認証v2] を選択します。- ユーザー名- パスワード- ホスト- ポート- データベース名- スキーマ- コードページ必要に応じて、ターゲット接続にSSL暗号化を使用するには、[暗号化方式]プロパティを[SSL]、[要求SSL]、または[ログインSSL]のいずれかのオプションに設定します。暗号化を有効にする場合は、次のプロパティも設定します。
- 暗号プロトコルバージョン- サーバー証明書の検証。[True] を選択します。- トラストストア- トラストストアパスワード- 証明書内のホスト名他の接続プロパティはサポートされていません。
• SQL Serverターゲットを持つアプリケーション取り込みとレプリケーション の増分ロードジョブ、初期および増分ロードジョブは、ターゲットテーブルスキーマに基づいて、いくつかの追加のメタデータカラムとともにLOGテーブルを生成します。LOGテーブルは、変更データがターゲットにフラッシュされる直前に作成されます。受信DMLデータは、ローカルCSVファイルをSQL ServerドライバのBulk Copy APIに提供することにでLOGテーブルに挿入されます。LOGテーブルの情報に基づいてmerge apply文が生成され、DML操作が実際のターゲットテーブルに適用されます。この処理が完了すると、LOGテーブルは削除されます。複数のジョブ、または複数のテーブルを含むジョブを実行している場合、LOGテーブルによって、顧客データベースインスタンスの追加スペースまたはサイズ要件が一時的に急増する可能性があります。LOGテーブルに必要なスペースとサイズは、フラッシュサイクルの一部として受信される行数によって異なります。• アプリケーション取り込みとレプリケーション の増分ロードジョブ、または初期ロードおよび増分ロードジョブがSQL Serverターゲットにプロパゲートできるソースオブジェクト内のフィールド数は、508フィールドを超えることはできません。ソースオブジェクトに508を超えるフィールドが含まれている場合、ジョブはLOGテーブルの作成中に失敗します。 • アプリケーション取り込みとレプリケーション の増分ロードジョブにより、ターゲット上にINFORMATICA_CDC_RECOVERYという名前のリカバリテーブルが生成され、障害後に再開されたジョブが以前に処理されたデータを再度プロパゲートするのを防ぐ内部サービス情報が格納されます。このリカバリテーブルは、ターゲットテーブルと同じスキーマで生成されます。Oracleターゲットのガイドライン ターゲットの準備 • アプリケーション取り込みとレプリケーション でデータをOracleターゲットデータベースにロードするためには、ユーザーに特定の特権が必要です。オンプレミスOracleターゲットの場合は、Oracleターゲットに接続するアプリケーション取り込みとレプリケーション ユーザー(cmid_user )に、次のユーザー特権を付与します。GRANT CREATE SESSION TO cmid_user ; GRANT SELECT ON "PUBLIC".V$DATABASE TO cmid_user ; GRANT SELECT ON "PUBLIC".V$CONTAINERS TO cmid_user ; GRANT SELECT ON DBA_USERS TO cmid_user ; GRANT SELECT ON DBA_TABLES TO cmid_user ; GRANT SELECT ON DBA_OBJECT_TABLES TO cmid_user ; GRANT SELECT ON DBA_INDEXES TO cmid_user ; GRANT SELECT ON DBA_OBJECTS TO cmid_user ; GRANT SELECT ON DBA_VIEWS TO cmid_user ; GRANT CREATE TABLE <schema.table > TO cmid_user ; <--Unless you grant on ANY TABLE GRANT SELECT ON ALL_CONSTRAINTS TO cmid_user ; GRANT SELECT ON ALL_OBJECTS TO cmid_user ; GRANT SELECT ON SYS.TAB$ TO cmid_user ; GRANT SELECT ON SYS.RECYCLEBIN$ TO cmid_user ; GRANT SELECT ON SYS.COL$ TO cmid_user ; <-- If cmid_user is the owner of the target schema GRANT SELECT ON SYS.CCOL$ TO <cmid_user >; GRANT SELECT ON SYS.CDEF$ TO cmid_user ; GRANT SELECT ON SYS.OBJ$ TO cmid_user ; GRANT SELECT ON SYS.COLTYPE$ TO cmid_user ; GRANT SELECT ON SYS.ATTRCOL$ TO cmid_user ; GRANT SELECT ON SYS.IDNSEQ$ TO cmid_user ; GRANT SELECT ON SYS.ATTRCOL$ TO cmid_user ; GRANT SELECT ON SYS.IDNSEQ$ TO cmid_user ; GRANT SELECT ON SYS.IND$ TO cmid_user ; -- Grant the following if cmid_user is NOT the owner of the target schema. If you prefer, you -- can grant to individual target tables and indexes instead of to ANY TABLE or ANY INDEX. GRANT ALTER SESSION TO cmid_user ; GRANT RESOURCE TO cmid_user ; GRANT SELECT ANY TABLE TO cmid_user ; GRANT SELECT ANY DICTIONARY TO <cmid_user>; GRANT ALTER ANY TABLE TO cmid_user ; GRANT CREATE ANY TABLE TO cmid_user ; GRANT DROP ANY TABLE TO cmid_user ; GRANT INSERT ANY TABLE TO cmid_user ; GRANT UPDATE ANY TABLE TO cmid_user ; GRANT DELETE ANY TABLE TO cmid_user ; GRANT CREATE ANY INDEX TO cmid_user ; GRANT ALTER ANY INDEX TO cmid_user ; GRANT DROP ANY INDEX TO cmid_user ;
• Amazon RDS for Oracleターゲットの場合は、RDSにマスタユーザーとしてログインし、Oracleターゲットに接続するアプリケーション取り込みとレプリケーション ユーザー(cmid_user )に次のユーザー特権を付与します。GRANT CREATE SESSION TO cmid_user ; GRANT SELECT on "PUBLIC".V$DATABASE TO cmid_user ; GRANT SELECT on DBA_USERS TO cmid_user ; GRANT SELECT on DBA_TABLES TO cmid_user ; GRANT SELECT on DBA_INDEXES TO cmid_user ; GRANT SELECT ON DBA_VIEWS TO cmid_user ; GRANT CREATE TABLE <schema.table > TO cmid_user ; GRANT SELECT on SYS.TAB$ TO cmid_user ; GRANT SELECT on SYS.COL$ TO cmid_user ; GRANT SELECT on SYS.OBJ$ TO cmid_user ; GRANT SELECT on SYS.IND$ TO cmid_user ; -- Grant the following if cmid_user is NOT the owner of the target schema. If you prefer, you -- can grant to individual target tables and indexes instead of to ANY TABLE or INDEX. GRANT ALTER SESSION TO cmid_user; GRANT RESOURCE TO cmid_user; GRANT SELECT ANY TABLE TO cmid_user; GRANT SELECT ANY DICTIONARY TO <cmid_user>; GRANT ALTER ANY TABLE TO cmid_user; GRANT CREATE ANY TABLE TO cmid_user; GRANT DROP ANY TABLE TO cmid_user; GRANT INSERT ANY TABLE TO cmid_user; GRANT UPDATE ANY TABLE TO cmid_user; GRANT DELETE ANY TABLE TO cmid_user; GRANT CREATE ANY INDEX TO cmid_user; GRANT ALTER ANY INDEX TO cmid_user; GRANT DROP ANY INDEX TO cmid_user;
また、次のAmazon RDSプロシージャを実行して、追加のSELECT権限をcmid_user に付与します。
begin rdsadmin.rdsadmin_util.grant_sys_object( p_obj_name => 'V_$CONTAINERS', p_grantee => 'cmid_user ', p_privilege => 'SELECT'); end; / begin rdsadmin.rdsadmin_util.grant_sys_object( p_obj_name => 'DBA_OBJECT_TABLES', p_grantee => 'cmid_user ', p_privilege => 'SELECT'); end; / begin rdsadmin.rdsadmin_util.grant_sys_object( p_obj_name => 'DBA_OBJECTS', p_grantee => 'cmid_user ', p_privilege => 'SELECT'); end; / begin rdsadmin.rdsadmin_util.grant_sys_object( p_obj_name => 'ALL_CONSTRAINTS', p_grantee => 'cmid_user ', p_privilege => 'SELECT'); end; / begin rdsadmin.rdsadmin_util.grant_sys_object( p_obj_name => 'ALL_OBJECTS', p_grantee => 'cmid_user ', p_privilege => 'SELECT'); end; / begin rdsadmin.rdsadmin_util.grant_sys_object( p_obj_name => 'RECYCLEBIN$', p_grantee => 'cmid_user ', p_privilege => 'SELECT'); end; / begin rdsadmin.rdsadmin_util.grant_sys_object( p_obj_name => 'CCOL$', p_grantee => 'cmid_user ', p_privilege => 'SELECT', p_grant_option => false); end; / begin rdsadmin.rdsadmin_util.grant_sys_object( p_obj_name => 'CDEF$', p_grantee => 'cmid_user ', p_privilege => 'SELECT', p_grant_option => false); end; / begin rdsadmin.rdsadmin_util.grant_sys_object( p_obj_name => 'COLTYPE$', p_grantee => 'cmid_user ', p_privilege => 'SELECT', p_grant_option => false); end; / begin rdsadmin.rdsadmin_util.grant_sys_object( p_obj_name => 'ATTRCOL$', p_grantee => 'cmid_user ', p_privilege => 'SELECT', p_grant_option => false); end; / begin rdsadmin.rdsadmin_util.grant_sys_object( p_obj_name => 'IDNSEQ$', p_grantee => 'cmid_user ', p_privilege => 'SELECT', p_grant_option => false); end; /
使用に関する考慮事項: PostgreSQLターゲットのガイドライン PostgreSQLターゲットを使用する場合は、次のガイドラインを考慮してください。
• PostgreSQLターゲットを含むアプリケーション取り込みタスクをデプロイして実行するには、ターゲット接続で必要な特権を持つデータベースユーザーを指定する必要があります。ユーザーには、接続で指定されたデータベースに対するCONNECT特権とTEMPORARY特権、およびターゲットプロパティで指定されたターゲットスキーマに対するUSAGE特権とCREATE特権が必要です。
次のSQL文を使用して、これらの特権をユーザーロールに付与し、そのロールをユーザーに割り当てます。
CREATE ROLE dbmi_role ; GRANT CONNECT ON DATABASE database TO dbmi_role ; GRANT TEMPORARY ON DATABASE database TO dbmi_role ; GRANT CREATE ON SCHEMA schema TO dbmi_role ; GRANT USAGE ON SCHEMA schema TO dbmi_role ; CREATE USER dbmi_user with PASSWORD 'password '; GRANT dbmi_role to dbmi_user ;
注: ジョブの実行時に生成されるターゲットテーブルに対する特権は、ジョブを実行するユーザーに付与されます。
• PostgreSQLターゲットを使用したアプリケーション取り込みとレプリケーション の増分ロードジョブでは、ターゲットテーブルスキーマに基づいてLOGテーブルが生成され、いくつかのメタデータカラムが追加されます。LOGテーブルは、変更データがターゲットにフラッシュされる直前に作成されます。受信DMLデータは、ローカルCSVファイルをPostgreSQLドライバのBulk Copy APIに提供することにでLOGテーブルに挿入されます。LOGテーブルの情報に基づいて一連のmerge apply文が生成され、DML操作が実際のターゲットテーブルに適用されます。DMLの変更が適用されると、LOGテーブルは削除されます。複数のジョブ、または複数のテーブルを含むジョブを実行している場合、LOGテーブルによって、顧客データベースインスタンスの追加スペースまたはサイズ要件が一時的に急増する可能性があります。LOGテーブルに必要なスペースとサイズは、フラッシュサイクルの一部として受信される行数によって異なります。
• アプリケーション取り込みとレプリケーション の増分ロードジョブがPostgreSQLターゲットにプロパゲートできるソースオブジェクト内のフィールド数は、796フィールドを超えることはできません。ソースオブジェクトに796を超えるフィールドが含まれている場合、ジョブはLOGテーブルの作成中に失敗します。• PostgreSQLテーブルの行に挿入されるデータは、インスタンスに設定されたページサイズによって異なります。既定値は8 KBです。行がページサイズを超えると、ジョブは失敗し、アプリケーション取り込みとレプリケーション に次のエラーが表示されます。SQL Error [54000]: ERROR: row is too big: size 9312, maximum size 8160
このエラーは、データが設定されたページサイズを超え、PostgreSQLがデータを保持できない場合に発生します。
例:
- ソーステーブルに500個のINTカラムがある場合、行サイズは2,000バイト(500 * 4バイト)です。行がページサイズ(8,192バイト)内に収まり、正常に挿入されました。- ソーステーブルに500個のBIGINTカラムがある場合、行サイズは4,000バイト(500 * 8バイト)です。行がページサイズ内に収まり、正常に挿入されました。- ソーステーブルに500個のVARCHAR(255)カラムがある場合、行サイズは9,000バイト(500 * 18バイト)です。行がページサイズに収まらないため、エラーが発生します。• PostgreSQLでサポートするソースオブジェクト識別子の最大長は63文字です。PostgreSQLターゲットを持つアプリケーション取り込みとレプリケーション タスクのデプロイは、ソーステーブル名またはカラム名の長さが63文字を超えると、検証中に失敗します。• アプリケーション取り込みとレプリケーション の増分ロードジョブにより、ターゲット上にINFORMATICA_CDC_RECOVERYという名前のリカバリテーブルが生成され、障害後に再開されたジョブが以前に処理されたデータを再度プロパゲートするのを防ぐ内部サービス情報が格納されます。このリカバリテーブルは、ターゲットテーブルと同じスキーマで生成されます。 Snowflakeターゲットのガイドライン ターゲットの準備 ターゲットの準備は、Snowflakeターゲットテーブルへのデータの高パフォーマンスストリーミングにSuperpipe機能を使用するか、中間ステージファイルにデータを書き込むかによって異なります。
Superpipeを使用
Superpipe機能を使用する場合は、次の手順を実行します。
1 データ取り込みおよびレプリケーション ユーザーを作成します。次のSQL文を使用します。create user INFACMI_User password = 'Xxxx@xxx';
2 新しいユーザーロールを作成し、データ取り込みおよびレプリケーション ユーザーに付与します。以下のSQL文を使用します。create role INFACMI_superpipe; grant role INFACMI_superpipe to user INFACMI_User;
3 Snowflake仮想ウェアハウスの使用権限を新しいロールに付与します。次のSQL文を使用します。grant usage on warehouse warehouse_name to role INFACMI_superpipe;
4 Snowflakeデータベースの使用権限を新しいロールに付与します。次のSQL文を使用します。grant usage on database INFACMI_DB1 to role INFACMI_superpipe;
5 新しいスキーマを作成します。以下のSQL文を使用します。use database INFACMI_DB1; create schema sh_superpipe;
6 新しいSnowflakeスキーマに対するcreate stream、create view、およびcreate table特権を新しいロールに付与します。次のSQL文を使用します。grant create stream, create view, create table, usage on schema INFACMI_DB1.sh_superpipe to role INFACMI_superpipe;
7 新しく作成されたユーザーのデフォルトのロールを設定します。次のSQL文を使用します。alter user INFACMI_User set default_role=INFACMI_superpipe;
8 ターゲットへのSnowflake Data Cloud接続を定義します。認証方法として[KeyPair] オプションを使用する必要があります。「コネクタと接続」>「Snowflake Data Cloud接続プロパティ」を参照してください。 9 OpenSSLバージョン3.x.xとPBE-SHA1-2DESまたはPBE-SHA1-3DES暗号を使用してプライベートキーを生成します。次のopensslコマンドを使用し、プライベートキーを生成してフォーマットします。openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -v1 PBE-SHA1-3DES -out rsa_key.p8
10 パブリックキーを生成します。次のopensslコマンドを使用し、-inオプションで暗号化されたプライベートキーを含むファイル(rsa_key.p8)を参照します。openssl rsa -in rsa_key.p8 -pubout -out rsa_key.pub
11 Snowflakeで、パブリックキーをSnowflakeユーザーに割り当てます。次のSQLコマンドを使用します。alter user INFACMI_User set rsa_public_key='key_value’;
次の手順 : 取り込みタスクを作成するときに、タスクウィザードの[ターゲット] ページで[Superpipe] オプションを選択します。必要に応じて、変更データ行がマージされてSnowflakeターゲットテーブルに適用される頻度を制御する[マージ頻度] 値を指定することもできます。
Superpipeを使用しない
SnowflakeターゲットにSuperpipe機能を使用しない場合は、ACCOUNTADMINユーザーとして次の手順を実行します。
1 データ取り込みおよびレプリケーション ユーザーを作成します。次のSQL文のいずれかを使用します。create user INFACMI_User password = 'Xxxx@xxx';
または
replace user INFACMI_User password = 'Xxxx@xxx';
2 新しいロールを作成し、そのロールをデータ取り込みおよびレプリケーション ユーザーに付与します。以下のSQL文を使用します。create role INFA_CMI_Role; grant role INFA_CMI_Role to user INFACMI_User;
3 Snowflake仮想ウェアハウスの使用権限を新しいロールに付与します。次のSQL文を使用します。grant usage on warehouse CMIWH to role INFA_CMI_Role;
4 Snowflakeデータベースの使用権限を新しいロールに付与します。次のSQL文を使用します。grant usage, CREATE SCHEMA on database CMIDB to role INFA_CMI_Role;
5 新しく作成されたユーザーのデフォルトのロールを設定します。次のSQL文を使用します。alter user INFACMI_User set default_role=INFA_CMI_Role;
また、INFACMI_Userとして新しいスキーマを作成します。
create schema CMISchema;
注: ユーザーのデフォルトロールが取り込みタスクに使用され、必要な権限がない場合、実行時に次のエラーが発行されます。
SQL compilation error: Object does not exist, or operation cannot be performed.
使用のガイドライン • データ取り込みおよびレプリケーション は、Snowflake Data Cloudターゲットにデータを移動する代替方法を提供しています。- 取り込みタスクを定義するときに[Superpipe] オプションを選択した場合、取り込みジョブはSnowpipe Streaming APIを使用して、短い待ち時間でデータ行をターゲットテーブルに直接ストリーミングします。この方法は、すべてのロードタイプで使用できます。[KeyPair] 認証を使用する必要があります。- Superpipeを使用しない場合、取り込みジョブはまず、タスク定義で指定した名前を持つ内部ステージのデータファイルにデータを書き込みます。• Superpipeを使用せず、取り込みジョブのターゲットプロパティで指定した内部ステージが存在しない場合、データベース取り込みとレプリケーション は、次のSQLコマンドを実行してステージを自動的に作成します。Create stage if not exists "Schema"."Stage_Bucket"”
コマンドを正常に実行するには、次の特権をユーザーロールに付与する必要があります。
GRANT CREATE STAGE ON SCHEMA "Schema" TO ROLE <your_role >;
• Snowflakeターゲットの接続を定義するときは、[JDBC URLの追加パラメータ] フィールドにdatabase= target_database_name と設定する必要があります。それ以外の場合は、アプリケーション取り込みとレプリケーション タスクウィザードでターゲットを定義しようとすると、スキーマのリストを取得できないことを示すエラーメッセージが表示されます。• [KeyPair] オプションを認証方法として使用してSnowflakeターゲットの接続を定義し、OpenSSL 3.x.xバージョンでプライベートキーを生成する場合は、プライベートキーの生成時にPBE-SHA1-2DES またはPBE-SHA1-3DES の暗号を使用します。以下のコマンドのいずれかを実行します。openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -v1 PBE-SHA1-3DES -out rsa_key.p8
または
openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -v1 PBE-SHA1-2DES -out rsa_key.p8
PBE-SHA1-2DES またはPBE-SHA1-3DES の暗号なしで汎用コマンドを使用すると、アプリケーション取り込みとレプリケーション タスクウィザードのターゲット定義ステップでターゲットスキーマを取得するときに、プライベートキーが無効またはサポートされていないことを示すエラーメッセージが表示される場合があります。
OpenSSL 1.1.1を使用してプライベートキーを生成すると、エラーメッセージは表示されません。
• 増分ロードジョブにより、ターゲット上にINFORMATICA_CDC_RECOVERYという名前のリカバリテーブルが生成され、内部サービス情報が格納されます。リカバリテーブルのデータによって、障害後に再開されたジョブが以前に処理されたデータを再度プロパゲートすることが防止されます。リカバリテーブルは、ターゲットテーブルを含むスキーマで生成されます。• オブジェクトには、16MBを超えるレコードが含まれていてはいけません。• Snowflakeターゲットの場合、NUMBERフィールドのスケールを変更したり、既存のフィールドのデータ型を別のデータ型に変更したりすることはできません。Snowflakeではこれらの操作がサポートされていないためです。Snowflakeへのプライベート接続の設定 AWSまたはAzureプライベートリンクエンドポイントを使用してSnowflakeにアクセスできます。
AWSまたはAzureプライベートリンクの設定によって、Snowflakeへの接続がAWSまたはAzure内部ネットワークを使用して確立され、パブリックインターネットを介して行われないようにします。
プライベートAWSネットワーク経由でSnowflakeアカウントに接続するには、
AWS Private Link and Snowflake を参照してください。
プライベートAzureネットワーク経由でSnowflakeアカウントに接続するには、
Azure Private Link and Snowflake を参照してください。
Avroデータ型 アプリケーション取り込みとレプリケーション は、Avroスキーマが提供するプリミティブデータ型と論理データ型の一部のみをサポートします。
プリミティブデータ型は、単一のデータ値を表すことができる型です。論理型は、派生型を表す追加の属性を持つAvroプリミティブ型または複合型です。このトピックは、AvroまたはParquetの出力形式をサポートするすべてのターゲットタイプに適用されます。
次の表に、アプリケーション取り込みとレプリケーション がサポートするプリミティブAvroデータ型を示します。
プリミティブデータ型
説明
INT
32ビット符号付き整数
Long
64ビット符号付き整数
FLOAT
単精度(32ビット)IEEE 754浮動小数点数
DOUBLE
倍精度(64ビット)IEEE 754浮動小数点数
BYTES
8ビットの符号なしバイトのシーケンス
STRING
Unicode文字シーケンス
次の表に、アプリケーション取り込みとレプリケーション がサポートする論理Avroデータ型を示します。
論理データ型
説明
DECIMAL
スケーリングされていない形式の任意精度の符号付き10進数×10 - scale
DATE
時刻またはタイムゾーンへの参照を含まない日付。
TIME
タイムゾーンまたは日付への参照を含まない、1ミリ秒または1マイクロ秒の精度の時刻。
TIMESTAMP
特定のカレンダーまたはタイムゾーンへの参照を含まない、1ミリ秒または1マイクロ秒の精度の日時値。