データ フローのシンク変換Sink transformation for a data flow

注意

Azure Data Factory の Mapping Data Flow は現在パブリック プレビュー機能であり、Azure のお客様の SLA プロビジョニングの対象になりません。Azure Data Factory Mapping Data Flow is currently a public preview feature and is not subject to Azure customer SLA provisions. 現在、Mapping Data Flow は、米国中西部、ブラジル南部、フランス中部、韓国中部の各 Azure リージョンでは利用できません。Currently, Mapping Data Flows are not available in these Azure regions: West Central US, Brazil South, France Central, Korea Central.

データ フローを変換した後、データを変換先のデータセットにシンクできます。After you transform your data flow, you can sink the data into a destination dataset. シンク変換では、変換先の出力データのデータセット定義を選択します。In the sink transformation, choose a dataset definition for the destination output data. データ フローに必要な数だけシンク変換を設定できます。You can have as many sink transformations as your data flow requires.

スキーマの誤差や受信データの変更に対処するには、出力データセットに定義済みのスキーマがない状態で出力データをフォルダーにシンクします。To account for schema drift and changes in incoming data, sink the output data to a folder without a defined schema in the output dataset. ソースで [Allow schema drift] (スキーマの誤差を許可) を選択することで、ソース内の列変更に対処することもできます。You can also account for column changes in your sources by selecting Allow schema drift in the source. この場合、シンク内のすべてのフィールドが自動マッピングされます。Then automap all fields in the sink.

[Auto Map](自動マップ) オプションを含む [シンク] タブのオプションOptions on the Sink tab, including the Auto Map option

すべての受信フィールドをシンクするには、 [Auto Map] (自動マップ) をオンにします。To sink all incoming fields, turn on Auto Map. 変換先にシンクするフィールドを選択したり、変換先でのフィールドの名前を変更するには、 [Auto Map] (自動マップ) をオフにします。To choose the fields to sink to the destination, or to change the names of the fields at the destination, turn off Auto Map. 続いて [マッピング] タブを開いて、出力フィールドをマップします。Then open the Mapping tab to map output fields.

[マッピング] タブのオプションOptions on the Mapping tab

OutputOutput

Azure BLOB ストレージまたは Data Lake Storage のシンクの種類の場合、変換されたデータをフォルダーに出力します。For Azure Blob storage or Data Lake Storage sink types, output the transformed data into a folder. Spark は、シンク変換で使用されるパーティション分割スキームに基づいて、パーティション分割された出力データ ファイルを生成します。Spark generates partitioned output data files based on the partitioning scheme that the sink transformation uses.

このパーティション分割スキームは、 [最適化] タブから設定できます。Data Factory で 1 つのファイルに出力をマージさせる場合は、 [単一パーティション] を選択します。You can set the partitioning scheme from the Optimize tab. If you want Data Factory to merge your output into a single file, select Single partition.

[最適化] タブのオプションOptions on the Optimize tab

フィールドのマッピングField mapping

シンク変換の [マッピング] タブでは、左側の受信の列を右側の変換先にマップできます。On the Mapping tab of your sink transformation, you can map the incoming columns on the left to the destinations on the right. データ フローをファイルにシンクした場合、Data Factory は常に、新しいファイルをフォルダーに書き込みます。When you sink data flows to files, Data Factory will always write new files to a folder. データベース データセットにマップする場合は、挿入、更新、upsert、または削除するデータベース テーブル操作のオプションを選択します。When you map to a database dataset, you will choose database table operation options to insert, update, upsert, or delete.

[マッピング] タブThe Mapping tab

マッピング テーブルでは、複数選択を行って、複数の列をリンクしたり、複数の列のリンクを削除したり、複数の行を同じ列名にマップしたりできます。In the mapping table, you can multiselect to link multiple columns, delink multiple columns, or map multiple rows to the same column name.

常に受信フィールド セットをターゲットにマップしておき、柔軟なスキーマ定義を完全に受け入れるには、 [Allow schema drift] (スキーマの誤差を許可) を選択します。To always map the incoming set of fields to a target as they are and to fully accept flexible schema definitions, select Allow schema drift.

[マッピング] タブ、データセット内の列にマップされたフィールドを表示The Mapping tab, showing fields mapped to columns in the dataset

列マッピングをリセットするには、 [Re-map] (再マップ) を選択します。To reset your column mappings, select Re-map.

[シンク] タブThe Sink tab

スキーマが変更された場合にシンクを失敗させるには、 [スキーマの検証] を選択します。Select Validate schema to fail the sink if the schema changes.

変換先ファイルをターゲット フォルダーに書き込む前に、そのシンク フォルダーの内容を切り捨てるには、 [Clear the folder] (フォルダーのクリア) を選択します。Select Clear the folder to truncate the contents of the sink folder before writing the destination files in that target folder.

ルール ベースのマッピングRule-based mapping

自動マッピングを無効にすると、列ベースのマッピング (固定マッピング) とルール ベースのマッピングのいずれかを追加するオプションを利用できます。When turn-off auto-mapping, you will have the option to add either column-based mapping (fixed mapping) or rule-based mapping. ルール ベースのマッピングでは、パターン マッチングを使用した式を作成できます。Rule-based mapping will allow you to write expressions with pattern matching.

ルール ベースのマッピングRule-based Mapping

ルール ベースのマッピングを選択すると、ADF に対して、受信パターン ルールに一致するように一致式を評価し、送信フィールド名を定義するように指示します。When you choose rule-based mapping, you are instructing ADF to evaluate your matching expression to match incoming pattern rules and define the outgoing field names. フィールドとルールベースの両方のマッピングの任意の組み合わせを追加することもできます。You may add any combination of both field and rule-based mappings. フィールド名は、ソースからの受信メタデータに基づいて、実行時に ADF によって生成されます。Field names are then generated at runtime by ADF based on incoming metadata from the source. 生成されたフィールドの名前は、デバッグ中に表示することも、[データ プレビュー] ウィンドウを使用して表示することもできます。You can view the names of the generated fields during debug and using the data preview pane.

パターン マッチングの詳細については、列パターンに関するドキュメントを参照してください。Details on pattern matching are at Column Pattern documentation.

ファイル名のオプションFile name options

ファイルの名前付けを設定します。Set up file naming:

  • 既定:Spark は PART の既定値に基づいて、ファイルに名前を付けることができます。Default: Allow Spark to name files based on PART defaults.
  • パターン:出力ファイルのパターンを入力します。Pattern: Enter a pattern for your output files. たとえば、loans[n] と入力すると、loans1.csv、loans2.csv のように作成されます。For example, loans[n] will create loans1.csv, loans2.csv, and so on.
  • Per partition(パーティションあたり):パーティションごとに 1 つのファイル名を入力します。Per partition: Enter one file name per partition.
  • As data in column(列内のデータとして):出力ファイルを列の値に設定します。As data in column: Set the output file to the value of a column.
  • Output to a single file(1 つのファイルに出力する):このオプションを使用すると、ADF は、パーティション分割された出力ファイルを単一の名前付きファイルに結合します。Output to a single file: With this option, ADF will combine the partitioned output files into a single named file. このオプションを使用するには、データセットは、フォルダー名に解決する必要があります。To use this option, your dataset should resolve to a folder name. また、このマージ操作はノード サイズに基づいて失敗する可能性があることに注意してください。Also, please be aware that this merge operation can possibly fail based upon node size.

注意

Data Flow の実行アクティビティを実行している場合にのみ、ファイル操作は開始します。File operations start only when you're running the Execute Data Flow activity. これらは、Data Flow のデバッグ モードでは開始しません。They don't start in Data Flow Debug mode.

データベース オプションDatabase options

データベース設定を選択します。Choose database settings:

SQL シンクのオプションを示す [設定] タブThe Settings tab, showing SQL sink options

  • Update method(更新方法):既定では、挿入を許可します。Update method: The default is to allow inserts. ソースからの新しい行の挿入を停止させる場合は、 [Allow insert] (挿入の許可) をオフにします。Clear Allow insert if you want to stop inserting new rows from your source. 行を更新、アップサート、または削除するには、最初に、それらのアクションに対して行をタグ付けするための行の変更変換を追加します。To update, upsert, or delete rows, first add an alter-row transformation to tag rows for those actions.
  • Recreate table(テーブルの再作成):データ フローが完了する前に、対象のテーブルを破棄したり作成します。Recreate table: Drop or create your target table before the data flow finishes.
  • [Truncate table] (テーブルの切り詰め):データ フローが完了する前に、対象のテーブルからすべて行を削除します。Truncate table: Remove all rows from your target table before the data flow finishes.
  • バッチ サイズ: 書き込みをチャンクにまとめる数値を入力します。Batch size: Enter a number to bucket writes into chunks. 大量のデータの読み込みにこのオプションを使用します。Use this option for large data loads.
  • Enable staging(ステージングの有効化):シンク データセットとして Azure Data Warehouse を読み込むときに、PolyBase を使用します。Enable staging: Use PolyBase when you load Azure Data Warehouse as your sink dataset.
  • [Pre and Post SQL scripts] (事前および事後 SQL スクリプト) : データがシンク データベースに書き込まれる前 (前処理) と書き込まれた後 (後処理) に実行される複数行の SQL スクリプトを入力します。Pre and Post SQL scripts: Enter multi-line SQL scripts that will execute before (pre-processing) and after (post-processing) data is written to your Sink database

事前および事後 SQL 処理スクリプトpre and post SQL processing scripts

注意

Data Flow で、ターゲット データベースに新しいテーブル定義を作成するように Data Factory に指示できます。In Data Flow, you can direct Data Factory to create a new table definition in your target database. テーブル定義を作成するには、新しいテーブル名を持つシンク変換でデータセットを設定します。To create the table definition, set a dataset in the sink transformation that has a new table name. SQL データセットのテーブル名の下で、 [編集] をクリックして新しいテーブル名を入力します。In the SQL dataset, below the table name, select Edit and enter a new table name. 次に、シンク変換で、 [Allow schema drift] (スキーマの誤差を許可) をオンにします。Then, in the sink transformation, turn on Allow schema drift. [スキーマのインポート][なし] に設定します。Set Import schema to None.

テーブル名を編集する場所を示した、SQL データセット設定SQL dataset settings, showing where to edit the table name

注意

データベース シンク内の行を更新または削除するときに、キー列を設定する必要があります。When you update or delete rows in your database sink, you must set the key column. この設定は、行の変更変換で、データ移動ライブラリ (DML) の一意の行を決定できるようにします。This setting allows the alter-row transformation to determine the unique row in the data movement library (DML).

次の手順Next steps

これでデータ フローが作成されたので、Data Flow アクティビティをパイプラインに追加します。Now that you've created your data flow, add a Data Flow activity to your pipeline.