マッピングでのMicrosoft Azure Synapse SQLターゲット
マッピングでは、単一のMicrosoft Azure Synapse SQLを表すようにターゲットトランスフォーメーションを設定できます。ソースがパーティション化されている場合に、Microsoft Azure Synapse SQLにデータを書き込むと、Secure Agentはパススルーパーティション化を使用して実行時のマッピングのパフォーマンスを最適化します。
以下の表に、ターゲットトランスフォーメーションで設定できるMicrosoft Azure Synapse SQLプロパティを示します。
プロパティ | 説明 |
---|
接続 | ターゲット接続の名前。ターゲット接続を選択するか、[新しいパラメータ]をクリックして、ターゲット接続の新しいパラメータを定義します。 実行時にパラメータを上書きする場合は、パラメータの作成時に[実行時にパラメータのオーバーライドを許可する]オプションを選択します。タスクを実行すると、エージェントはタスク詳細セッションプロパティで指定されたファイルからパラメータを使用します。 パラメータ化されていないMicrosoft Azure Synapse SQL接続とパラメータ化されたMicrosoft Azure Synapse SQL接続を切り替えることができます。接続を切り替えても、詳細プロパティ値は保持されます。 |
ターゲットタイプ | ターゲットのタイプ。次のいずれかのタイプを選択します。 - - 単一オブジェクト
- - パラメータ。タスクを設定するとき、ターゲットタイプを定義するには、[パラメータ]を選択します。
|
オブジェクト | ターゲットオブジェクトの名前。 |
パラメータ | ターゲットオブジェクトの既存のパラメータを選択するか、[新しいパラメータ]をクリックしてターゲットオブジェクトの新しいパラメータを定義します。[パラメータ]プロパティは、ターゲットタイプとして[パラメータ]を選択した場合にのみ表示されます。 実行時にパラメータを上書きする場合は、パラメータの作成時に[実行時にパラメータのオーバーライドを許可する]オプションを選択します。タスクを実行すると、エージェントはタスク詳細セッションプロパティで指定されたファイルからパラメータを使用します。 |
実行時に新規作成 | 実行時にMicrosoft Azure Synapse SQLターゲットを作成します。 ターゲットオブジェクトの名前を入力して、使用するソースフィールドを選択します。デフォルトでは、すべてのソースフィールドが使用されます。 [ソースフィールド名をターゲットでそのまま使用]を選択すると、特殊文字をソースカラム名からターゲットに書き込むことができます。 実行時にターゲットをパラメータ化することはできません。 |
操作 | ターゲット操作。 次のいずれかのオプションを選択します。 - - Insert
- - Update
- - Upsert
- - Delete
- - Data Driven1。更新ストラテジトランスフォーメーションまたはCDCソースからの挿入、更新、削除、または拒否操作のフラグを設定した行を優先するときに選択します。
また、挿入、削除、更新、または更新/挿入の操作を実行するには、[ソース行の扱い]詳細プロパティを使用します。 ただし、削除、更新、または更新/挿入操作のキーを定義する場合は、[操作]プロパティを使用する必要があります。 |
データ依存条件1 | 行に挿入、更新、削除、または拒否操作のフラグを設定する式を定義できます。 注: 操作タイプとして[Data Driven]を選択した場合にのみ表示されます。ただし、更新ストラテジトランスフォーメーションとCDCソーステーブルの行はすでに操作タイプでマークされているため、このフィールドは空白のままにしておくこともできます。 |
更新カラム | Microsoft Azure Synapse SQLに対してデータの更新/挿入や更新、または削除を行うためのキーカラム。このプロパティが適用されるのは、[ソース行の扱い]詳細プロパティで削除、更新、または更新/挿入の操作を選択した場合だけです。 注: このプロパティは、[操作]プロパティで削除、更新、更新/挿入、またはデータ依存の操作を選択した場合にのみ表示されます。 |
1詳細モードのマッピングには適用されません。 |
以下の表に、ターゲットトランスフォーメーションで設定できるMicrosoft Azure Synapse SQLプロパティを示します。
詳細プロパティ | 説明 |
---|
Azure Blobコンテナ名 | 接続プロパティでAzure Blobストレージを選択した場合は必須です。 Microsoft Azure Blob Storageのコンテナの名前。 コンテナ名に特殊文字を含めることはできません。 |
ADLSファイルシステム名 | 接続プロパティでADLS Gen2ストレージを選択した場合は必須です。 Microsoft Azure Data Lake Storage Gen2のファイルシステムの名前。 ファイルシステム名に特殊文字を含めることはできません。 ファイルシステムの下のディレクトリのパスを指定することもできます。ディレクトリパスの指定には、スラッシュのみを使用します。 |
コピーの方法1 | ステージング場所からMicrosoft Azure Synapse SQLにデータをロードする方法。次のいずれかのオプションを選択します。 デフォルトはPolybaseです。 |
Copyコマンドのオプション1 | キー=値の形式のCopyコマンドのオプション。 新しい行で各オプションを指定します。 |
スキーマ名のオーバーライド | 接続で指定されたスキーマをオーバーライドします。 |
テーブル名のオーバーライド | インポートされたMicrosoft Azure SQL Data Warehouseターゲットテーブルのテーブル名をオーバーライドします。 |
フィールド区切り文字 | ファイル内のフィールドを区切るために使用する文字。デフォルト値は0x1eです。「TAB」または0-256の単一文字の印刷可能文字と、印刷できないASCII文字を指定できます。印刷できない文字は、16進数で指定する必要があります。 注: 複数文字のASCII文字は、TABを除いて適用できません。次の印刷できない文字は使用できません。 00x0、0x0、0x0A、0x1B、0x0D、および0x1F |
Blobストレージへの同時接続数1 | Microsoft Azure Blob Storageからデータを抽出するための同時接続数。サイズの大きいBlobを読み取る場合は、データを処理するために複数のスレッドを生成できます。 デフォルト値は4です。最大値は10です。 |
テーブルの切り詰め | ターゲットにデータを挿入する前にターゲットを切り詰めます。 |
Pre-SQL | ソースからデータを読み取る前に実行する必要があるPre-SQLコマンド。 |
Post-SQL | ターゲットにデータを書き込んだ後に実行する必要があるPost-SQLコマンド。 |
実行前/実行後SQLのエラー | pre-SQLコマンドまたはpost-SQLコマンドを含むタスクでエラーが発生した場合の動作を決定します。以下のいずれかのオプションを選択できます。 - - 続行。エラーに関係なくタスクが続行されます。
- - 停止。pre-SQLコマンドまたはpost-SQLコマンドの実行中にエラーが発生すると、タスクは停止します。
|
ソース行の扱い | 次のいずれかのオプションを選択します。 - - なし
- - INSERT
- - DELETE
- - UPDATE
- - UPSERT
- - データ依存1。更新ストラテジトランスフォーメーションまたはその他の任意のカスタムトランスフォーメーション、またはCDCソースからの、フラグを設定した行を優先するときに選択します。
デフォルトは[なし]です。
|
バッチサイズ1 | バッチ内の最小行数。0より大きい値を入力します。 デフォルトは2000000です。 |
拒否のしきい値 | バッチの失敗の原因となるバッチ内のエラーの数。正の整数値を入力します。 エラー数がプロパティ値以上になると、Secure Agentはバッチ全体を拒否してエラーファイルに書き込み、セッションを失敗としてマークします。 注: 拒否のしきい値を設定しないと、エラーが発生した時点でマッピングが失敗します。 |
文字列の引用符 | Microsoft Azure Synapse SQLにデータを書き込むときにスキップする引用符を指定します。 指定する引用符は、ソーステーブルに存在しないことが必要です。これが存在する場合は、別の引用符の値を入力します。 |
圧縮形式1 | ステージングファイルを.Gzip形式で圧縮します。デフォルトは[なし]です。 |
更新オーバーライド | Secure Agentによって生成されるデフォルトの更新SQLステートメントをオーバーライドします。 |
中間ディレクトリ1 | オプション。Secure Agentマシンのステージングディレクトリへのパス。 Microsoft Azure Synapse SQLにデータを書き込むときに、ファイルをステージングするステージングディレクトリを指定します。ディレクトリに十分なスペースがあり、ディレクトリへの書き込み権限があることを確認します。 デフォルトのステージングディレクトリは/tmpです。 Hosted Agentを使用する場合、Interimディレクトリを指定することはできません。 |
拒否された行を転送 | トランスフォーメーションが、拒否された行を次のトランスフォーメーションに渡すか、拒否された行を削除するかを決定します。デフォルトでは、マッピングタスクは拒否された行を次のトランスフォーメーションに転送します。 |
1詳細モードのマッピングには適用されません。 |
Copyコマンド
Copyコマンドを使用して、Microsoft Azure Blob StorageまたはMicrosoft Azure Data Lake Storage Gen2からMicrosoft Azure Synapse SQLにデータをロードすることができます。
Microsoft Azure Data Lake Storage Gen2でファイルをステージングする場合、Copyコマンドはサービスプリンシパル認証でのみ使用できます。
Copyコマンドのオプションは、[Copyコマンドのオプション]フィールドでキー=値の形式で指定できます。新しい行で各オプションを指定します。
次の画像は、Copyコマンドオプションの例を示しています。
詳細ターゲットプロパティでは、次のCopyコマンドオプションのみを設定できます。Microsoft Azureでサポートされている他のCopyコマンドオプションに対しては、デフォルト値が考慮されます。
- ERRORFILE
- 拒否された行と対応するエラーファイルを書き込むディレクトリを指定します。ERRORFILEオプションは、拒否ディレクトリ詳細ターゲットプロパティと同等です。
- 次の形式を使用します: ERRORFILE=<Directory Location>。
- ディレクトリの絶対パスまたは相対パスを指定できます。エラーファイルのパスに特殊文字を含めることはできません。
- 例えば、Dir1/Dir2などの絶対パスを指定した場合、エージェントは次のパスに拒否ディレクトリを作成します。
- Dir1/Dir2
- 例えば、/Dir1/Dir2などの相対パスを指定した場合、エージェントは次のパスに拒否ディレクトリを作成します。
- <staging path>/Dir1/Dir2
- ディレクトリを指定しない場合、エージェントは次のパスに拒否ディレクトリを作成します。
- <staging path>/Reject_<UUID Randomly Generated>
- MAXERRORS
- Copyコマンドがキャンセルされる前にロードで許可される拒否行の最大数を指定します。Copyコマンドでインポートできない各行は無視され、1つのエラーとしてカウントされます。MAXERRORSオプションは、拒否しきい値詳細ターゲットプロパティと同等です。
- 次の形式を使用します: MAXERRORS=max_errors。例: MAXERRORS=20。
- COMPRESSION
- データのデータ圧縮方法を指定します。CSVファイルにはGzip圧縮のみを使用できます。
- COMPRESSIONオプションは、圧縮形式詳細ターゲットプロパティと同等です。
- 次の形式を使用します: COMPRESSION='method'。例: COMPRESSION='GZIP'。
- FIELDQUOTE
- CSVファイルで引用符として使用される単一の文字を指定します。
- FIELDQUOTEオプションは、引用符詳細ターゲットプロパティと同等です。
- 次の形式を使用します: FIELDQUOTE='field_quote'。
- FIELDTERMINATOR
- CSVファイルで使用されるフィールドターミネータを指定します。
- FIELDTERMINATORオプションは、フィールド区切り文字詳細ターゲットプロパティと同等です。
- 次の形式を使用します: FIELDTERMINATOR='field_terminator'。例: FIELDTERMINATOR='ox1f'。
Copyコマンドオプションの詳細については、Microsoft Azureのドキュメントを参照してください。
拒否された行
Secure Agentは、ターゲットプロパティで指定されたMicrosoft Azure Blobコンテナに2つのエラーファイルを生成します。
これらのエラーファイルは、ファイル名プレフィックスにキーワードRejectを使用して生成されます。一方のエラーファイルには拒否された行、もう一方のエラーファイルにはその原因が含まれています。これらのエラーファイルを生成するには、詳細ターゲットプロパティで[拒否のしきい値]を指定します。
CDCソースを使用したタスクのマッピング
組織では、ミッションクリティカルなOracleの本番システムからリアルタイムの変更データをレプリケートして、重大ではない作業の介入(オフラインのレポートシステムや分析処理システムなど)を最小限に抑える必要があります。Microsoft Azure Synapse SQLコネクタを使用すると、Oracle CDCソースから変更データをキャプチャしてMicrosoft Azure Synapse SQLに書き込むことができます。Oracle CDCソースをマッピングに追加して、関連付けられたマッピングタスクを実行すると、変更データがターゲットに書き込まれます。
1データ統合で、[新規] > [マッピング] > [作成]をクリックします。
[新しいマッピング]ダイアログボックスが表示されます。
2 マッピングの名前と説明を入力します。
3ソーストランスフォーメーションの全般プロパティで、名前と説明を指定します。
4[ソース]タブで、設定済みのOracle CDC接続を選択し、必要なソースプロパティを指定します。
5ターゲットトランスフォーメーションの全般プロパティで、名前と説明を指定します。
6[ターゲット]タブで、次の手順を実行してターゲットプロパティを設定します。
- a[接続]フィールドで、Microsoft Azure Synapse SQL接続を選択します。
- b[ターゲットの種類]フィールドで、ターゲットオブジェクトのタイプを選択します。
- c[オブジェクト]フィールドで、必要なターゲットオブジェクトを選択します。
- d[操作]フィールドで、ソースレコードの挿入、更新、削除が正しく処理されるように[Data Driven]を選択します。
- e[データ依存条件]フィールドは空白のままにします。
- f[更新カラム]フィールドで、Microsoft Azure Synapse SQLに対してデータの更新/挿入や更新、または削除を行うためのキーカラムを選択します。このプロパティが適用されるのは、[ソース行の扱い]詳細プロパティで削除、更新、または更新/挿入の操作を選択した場合だけです。
- g[詳細プロパティ]セクションの[ソース行の扱い]プロパティで[Data Driven]を選択する必要があります。
7[フィールドマッピング]タブで、受信フィールドをターゲットフィールドにマップします。手動でマップすることも、フィールド名に基づいて自動的にマップすることもできます。
8[アクション]メニューで、[新しいマッピングタスク]をクリックします。
[新しいマッピングタスク]ページが表示されます。
9[定義]タブで、タスク名を入力し、設定済みのマッピングを選択します。
10[CDCランタイム]タブで、必要なプロパティを指定します。
[CDCランタイム]のプロパティの詳細については、Informatica Cloud Data Integration Oracle CDC Connectorユーザーガイドを参照してください。
11[ランタイムオプション]タブの[詳細セッションプロパティ]セクションで、次のプロパティを指定します。
- a[ファイル終端(EOF)でコミット]フィールドで、このプロパティの値として[いいえ]を選択します。
- b[コミットタイプ]フィールドで、このプロパティの値として[ソース]を選択します。
- c[リカバリストラテジ]フィールドで、このプロパティの値として[最終チェックポイントから再開]を選択します。
12[保存] > [実行]をクリックして、マッピングを保存して実行します。
スケジュールを作成して、手動で操作しなくてもマッピングタスクが定期的に実行されるようにすることもできます。マッピングタスクの実行間隔ができるだけ短くなるようにスケジュールを定義できます。
モニタで、タスクの実行後にログのステータスを監視できます。
変更データキャプチャの制限
Microsoft Azure Synapse SQL変更データキャプチャ(CDC)ターゲットを使用する際には次の制限に注意してください。
- •マッピングタスクが途中で終了した場合、一時ステージングテーブルは削除されません。手動で一時テーブルをクリーンアップする必要があります。
- •次のキーワードはCDCターゲットに使用できません。
- - テーブル名に使用できないキーワード: 「(」、「 SET 」、「 WHERE 」、「.」
カラム名に使用できないキーワード: 「) VALUES」、「,」、「 SET 」、「 WHERE 」、「 = ? 」、「 AND 」
注: 一部のキーワードの先頭および末尾のスペースに注意してください。
- •datatimeoffsetとtimeデータ型の変更されたデータをキャプチャすることはできません。
- •他のデータ型からsmalldatetimeへの日付変換は適用されません。
書き込み操作の一括処理
一括処理を有効にすると、Microsoft Azure Synapse SQLに大量のデータを書き込むことができます。一括処理では最小限のAPI呼び出しを使用して、書き込み操作のパフォーマンスを最適化します。
一括処理を有効にするには、Secure Agentのプロパティでプロパティ-DENABLE_WRITER_BULK_PROCESSING=trueを指定します。
マッピングを実行する前に、次の手順を実行して一括処理を設定します。
- 1Administratorで、[ランタイム環境]タブにリストされているSecure Agentを選択します。
- 2[編集]をクリックします。
- 3[システム構成の詳細]セクションで、サービスとして[データ統合サーバー]を選択し、タイプとして[DTM]を選択します。
- 4JVMオプションを編集して、-DENABLE_WRITER_BULK_PROCESSING=trueと入力します。
- 5[保存]をクリックします。
詳細モードのマッピングでは、書き込み操作の一括処理を使用できません。
Microsoft Azure Synapse SQL ODBC接続またはMicrosoft Azure Synapse SQL接続を使用するSQL ELTの最適化で設定されたマッピングタスクに一括処理を使用することはできません。
更新オーバーライドの設定に関するルールとガイドライン
Microsoft Azure Synapse SQLターゲットの更新オーバーライドプロパティを使用する場合は、次のルールとガイドラインを考慮してください。
- •詳細ターゲットプロパティの[ソース行の扱い]プロパティで[更新]を選択します。
- • 更新クエリを次の形式で指定します。
UPDATE <Target table name> SET <Target table name>.<Column1> = :TU.<Column1>, <Target table name>.<Column2> = :TU.<Column2>, … <Target table name>.<ColumnN> = :TU.<ColumnN> FROM :TU WHERE <Target table name>.<Update Column1> = :TU.<Update Column1> AND <Target table name>.<Update Column2> = :TU.<Update Column2> AND … <Target table name>.<Update ColumnN> = :TU.<Update ColumnN>
- •:TUのカラム名はターゲットテーブルのカラム名と一致している必要があります。
- •:TUは、Microsoft Azure Synapse SQLコネクタによって一時的なテーブル名に置き換えられ、更新クエリの検証が行われないため、有効なSQL構文を使用して更新クエリを指定する必要があります。
- •更新オーバーライドを使用してカラムマッピングの順序を変更することはできません。
- •更新クエリでは、ターゲットに接続されていないフィールドを使用することはできません。