Mapping Data Flow のソース変換Source transformation for Mapping 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.

ソース変換は、データ フローのデータ ソースを構成します。A source transformation configures your data source for the data flow. データ フローを設計する際、最初の手順では、常にソース変換を構成します。When designing data flows, your first step will always be configuring a source transformation. ソースを追加するには、データ フローのキャンバスにある [Add Source](ソースの追加) ボックスをクリックします。To add a source, click on the Add Source box in the data flow canvas.

各データ フローには少なくとも 1 つのソース変換が必要ですが、データ変換を完了するために必要な数だけソースを追加できます。Every data flow requires at least one source transformation, but you can add as many sources as necessary to complete your data transformations. これらのソースは、結合、参照、または和集合変換を使用して結合できます。You can join those sources together with a join, lookup, or a union transformation.

各ソース変換が関連付けられる Data Factory データセットは 1 つだけです。Each source transformation is associated with exactly one Data Factory dataset. データセットは、書き込みまたは読み取りを行うデータの形状と場所を定義します。The dataset defines the shape and location of the data you want to write to or read from. ファイルベースのデータセットを使用している場合は、ソース内でワイルドカードやファイル リストを使用すると、一度に複数のファイルを操作できます。If using a file-based dataset, you can use wildcards and file lists in your source to work with more than one file at a time.

Mapping Data Flow でサポートされているコネクタSupported connectors in Mapping Data Flow

Mapping Data Flow は、抽出、読み込み、変換 (ELT) のアプローチに従い、すべて Azure に存在する "ステージング" データセットを操作します。Mapping Data Flow follows an extract, load, transform (ELT) approach and works with staging datasets that are all in Azure. 現在は、次のデータセットをソース変換で使用できます。Currently the following datasets can be used in a source transformation:

  • Azure Blob StorageAzure Blob Storage
  • Azure Data Lake Storage Gen1Azure Data Lake Storage Gen1
  • Azure Data Lake Storage Gen2Azure Data Lake Storage Gen2
  • Azure SQL Data WarehouseAzure SQL Data Warehouse
  • Azure SQL DatabaseAzure SQL Database

Azure Data Factory は、80 を超えるネイティブ コネクタにアクセスできます。Azure Data Factory has access to over 80 native connectors. それらの他のソースからのデータをデータ フローに含めるには、コピー アクティビティを使用して、サポートされているステージング領域のいずれかにそのデータを読み込みます。To include data from those other sources in your data flow, use the Copy Activity to load that data into one of the supported staging areas.

ソースの設定Source settings

ソースを追加したら、 [ソースの設定] タブを使用して構成します。ここでは、ソースが指すデータセットを選択または作成できます。Once you have added a source, configure via the Source Settings tab. Here you can pick or create the dataset your source points at. また、データのスキーマとサンプリング オプションも選択できます。You can also select schema and sampling options for your data.

[ソースの設定] タブSource settings tab

スキーマの誤差: スキーマの誤差は、データ フロー内の柔軟なスキーマをネイティブに処理するデータ ファクトリの機能であり、列の変更を明示的に定義する必要はありません。Schema drift: Schema Drift is data factory's ability to natively handle flexible schemas in your data flows without needing to explicitly define column changes.

  • ソース列が頻繁に変更される場合は、 [Allow schema drift](スキーマの誤差を許可) チェック ボックスをオンにします。Check the Allow schema drift box if the source columns will change often. この設定により、すべての受信ソース フィールドが変換を通してシンクに流れることができます。This setting allows all incoming source fields to flow through the transformations to the sink.

  • [Infer drifted column types](誤差のある列の型を推論) を選択すると、データ ファクトリは、検出された新しい列ごとにデータ型を検出して定義するよう指示されます。Choosing Infer drifted column types will instruct data factory to detect and define data types for each new column discovered. この機能が無効になっている場合、誤差の列はすべて文字列型になります。With this feature turned off, all drifted columns will be of type string.

[スキーマの検証]: [スキーマの検証] を選択した場合、受信したソース データがデータセットの定義済みスキーマと一致しなければ、データ フローの実行は失敗します。Validate schema: If validate schema is selected, the data flow will fail to run if the incoming source data doesn't match the defined schema of the dataset.

[Skip line count](スキップ行数): この [Skip line count](スキップ行数) フィールドでは、データセットの先頭で無視する行数を指定します。Skip line count: The skip line count field specifies how many lines to ignore at the beginning of the dataset.

[サンプリング]: ソースからの行数を制限するには、サンプリングを有効にします。Sampling: Enable sampling to limit the number of rows from your source. デバッグの目的でソースのデータをテストまたはサンプリングする場合は、この設定を使用します。Use this setting when you test or sample data from your source for debugging purposes.

ソースが正しく構成されていることを確認するには、デバッグ モードを有効にし、データ プレビューを取り込みます。To validate your source is configured correctly, turn on debug mode and fetch a data preview. 詳細については、デバッグ モードに関するページを参照してください。For more information, see Debug mode.

注意

デバッグ モードを有効にすると、データ プレビュー時に、デバッグの設定での行数上限の構成によってソースのサンプリング設定が上書きされます。When debug mode is turned on, the row limit configuration in debug settings will overwrite the sampling setting in the source during data preview.

ファイルベースのソース オプションFile-based source options

Azure Blob Storage や Azure Data Lake Storage などのファイルベースのデータセットを使用している場合は、 [Source Options](ソース オプション) タブを使用して、ソースでファイルを読み取る方法を管理できます。If you're using a file-based dataset such as Azure Blob Storage or Azure Data Lake Storage, the Source options tab lets you manage how your source reads files.

[Source Options](ソース オプション)Source options

[Wildcard path](ワイルドカード パス) : ワイルドカード パターンを使用すると、ADF は、単一のソース変換で一致する各フォルダーとファイルをループ処理するよう指示されます。Wildcard path: Using a wildcard pattern will instruct ADF to loop through each matching folder and file in a single Source transformation. これは、単一のフロー内の複数のファイルを処理するのに効果的な方法です。This is an effective way to process multiple files within a single flow. 既存のワイルドカード パターンをポイントしたときに表示される + 記号を使って複数のワイルドカード一致パターンを追加します。Add multiple wildcard matching patterns with the + sign that appears when hovering over your existing wildcard pattern.

ソース コンテナーから、パターンに一致する一連のファイルを選択します。From your source container, choose a series of files that match a pattern. データセット内で指定できるのはコンテナーのみです。Only container can be specified in the dataset. そのため、ワイルドカード パスには、ルート フォルダーからのフォルダー パスも含める必要があります。Your wildcard path must therefore also include your folder path from the root folder.

ワイルドカードの例:Wildcard examples:

  • * - 任意の文字セットを表します。* Represents any set of characters

  • ** - ディレクトリの再帰的な入れ子を表します。** Represents recursive directory nesting

  • ? - 1 文字を置き換えます。? Replaces one character

  • [] - 角カッコ内の文字のいずれか 1 つと一致します。[] Matches one of more characters in the brackets

  • /data/sales/**/*.csv - /data/sales の下のすべての csv ファイルを取得します。/data/sales/**/*.csv Gets all csv files under /data/sales

  • /data/sales/20??/** - 20 世紀のすべてのファイルを取得します。/data/sales/20??/** Gets all files in the 20th century

  • /data/sales/2004/*/12/[XY]1?.csv - 前に 2 桁の数字が付いた X または Y で始まる、2004 年 12 月のすべての csv ファイルを取得します。/data/sales/2004/*/12/[XY]1?.csv Gets all csv files in 2004 in December starting with X or Y prefixed by a two-digit number

[Partition root path](パーティションのルート パス): key=value 形式 (例: year=2019) のファイル ソース内のフォルダーをパーティション分割した場合、そのパーティション フォルダー ツリーの最上位をデータ フロー データ ストリーム内の列名に割り当てることができます。Partition Root Path: If you have partitioned folders in your file source with a key=value format (for example, year=2019), then you can assign the top level of that partition folder tree to a column name in your data flow data stream.

最初に、ワイルドカードを設定して、パーティション分割されたフォルダーと読み取るリーフ ファイルのすべてのパスを含めます。First, set a wildcard to include all paths that are the partitioned folders plus the leaf files that you wish to read.

パーティション ソース ファイルの設定Partition source file settings

パーティションのルート パス設定を使用して、フォルダー構造の最上位レベルを定義します。Use the Partition Root Path setting to define what the top level of the folder structure is. データ プレビューを使用してデータの内容を表示すると、ADF によって、各フォルダー レベルで見つかった解決済みのパーティションが追加されることがわかります。When you view the contents of your data via a data preview, you'll see that ADF will add the resolved partitions found in each of your folder levels.

パーティションのルート パスPartition root path

[ファイルの一覧]: これはファイル セットです。List of files: This is a file set. 処理する相対パス ファイルの一覧を含むテキスト ファイルを作成します。Create a text file that includes a list of relative path files to process. このテキスト ファイルをポイントします。Point to this text file.

[Column to store file name](ファイル名を格納する列): ソース ファイルの名前をデータの列に格納します。Column to store file name: Store the name of the source file in a column in your data. ファイル名文字列を格納するための新しい列名をここに入力します。Enter a new column name here to store the file name string.

[After completion](完了後): データ フローの実行後にソース ファイルに何もしないか、ソース ファイルを削除するか、またはソース ファイルを移動することを選択します。After completion: Choose to do nothing with the source file after the data flow runs, delete the source file, or move the source file. 移動のパスは相対パスです。The paths for the move are relative.

後処理でソース ファイルを別の場所に移動するには、まず、ファイル操作の "移動" を選択します。To move source files to another location post-processing, first select "Move" for file operation. 次に、"移動元" ディレクトリを設定します。Then, set the "from" directory. パスにワイルドカードを使用していない場合、"移動元" 設定はソース フォルダーと同じフォルダーになります。If you're not using any wildcards for your path, then the "from" setting will be the same folder as your source folder.

ワイルドカードを含むソース パスがある場合、構文は次のようになります。If you have a source path with wildcard, your syntax will look like this below:

/data/sales/20??/**/*.csv

"移動元" は次のように指定できます。You can specify "from" as

/data/sales

"移動先" は次のように指定できます。And "to" as

/backup/priorSales

この場合、ソースとして指定された /data/sales の下のすべてのファイルは /backup/priorSales に移動されます。In this case, all files that were sourced under /data/sales are moved to /backup/priorSales.

注意

ファイル操作は、パイプライン内のデータ フローの実行アクティビティを使用するパイプライン実行 (パイプラインのデバッグまたは実行) からデータ フローを開始する場合にのみ実行されます。File operations run only when you start the data flow from a pipeline run (a pipeline debug or execution run) that uses the Execute Data Flow activity in a pipeline. データ フロー デバッグ モードでは、ファイル操作は実行されませんFile operations do not run in Data Flow debug mode.

[Filter by last modified](最終更新日時でフィルター処理): 最終更新日時の範囲を指定することで、処理するファイルをフィルター処理できます。Filter by last modified: You can filter which files you process by specifying a date range of when they were last modified. 日時はすべて UTC 形式です。All date-times are in UTC.

動的なコンテンツの追加Add dynamic content

Mapping Data Flow の変換式言語を使用して、ソースの設定すべてを式として指定できます。All source settings can be specified as expressions using the Mapping Data flow's transformation expression language. 動的なコンテンツを追加するには、設定パネルのフィールドの内部をクリックまたはポイントします。To add dynamic content, click or hover inside of the fields in the settings panel. [動的なコンテンツの追加] のハイパーリンクをクリックします。Click the hyperlink for Add dynamic content. これにより、式ビルダーが起動します。ここでは、式、静的なリテラル値、またはパラメーターを使用して値を動的に設定できます。This will launch the expression builder where you can set values dynamically using expressions, static literal values, or parameters.

パラメーターParameters

SQL のソース オプションSQL source options

ソースが SQL Database または SQL Data Warehouse に存在する場合は、 [Source Options](ソース オプション) タブで他にも SQL 固有の設定を使用できます。If your source is in SQL Database or SQL Data Warehouse, additional SQL-specific settings are available in the Source Options tab.

[入力]: テーブルにあるソースを指す (Select * from <table-name> に相当) かカスタム SQL クエリを入力するかを選択します。Input: Select whether you point your source at a table (equivalent of Select * from <table-name>) or enter a custom SQL query.

Query: [入力] フィールドで [クエリ] を選択した場合は、ソースに対する SQL クエリを入力します。Query: If you select Query in the input field, enter a SQL query for your source. この設定により、データセットで選択したすべてのテーブルがオーバーライドされます。This setting overrides any table that you've chosen in the dataset. ここでは Order By 句はサポートされていませんが、完全な SELECT FROM ステートメントを設定することができます。Order By clauses aren't supported here, but you can set a full SELECT FROM statement. ユーザー定義のテーブル関数を使用することもできます。You can also use user-defined table functions. select * from udfGetData() は、テーブルを返す SQL の UDF です。select * from udfGetData() is a UDF in SQL that returns a table. このクエリでは、お使いのデータ フローで使用できるソース テーブルが生成されます。This query will produce a source table that you can use in your data flow.

バッチ サイズ: 大量データを読み取りにまとめるバッチ サイズを入力します。Batch size: Enter a batch size to chunk large data into reads.

分離レベル: Mapping Data Flow での SQL ソースの既定値は [コミットされていないものを読み取り] です。Isolation Level: The default for SQL sources in Mapping Data Flow is read uncommitted. ここで分離レベルを次のいずれかの値に変更できます。You can change the isolation level here to one of these values:

  • コミットされたものを読み取りRead Committed
  • コミットされていないものを読み取りRead Uncommitted
  • 反復可能読み取りRepeatable Read
  • シリアル化可能Serializable
  • なし (分離レベルを無視)None (ignore isolation level)

分離レベルIsolation Level

プロジェクションProjection

データセット内のスキーマと同様に、ソース内のプロジェクションでは、ソース データのデータの列、型、および形式が定義されます。Like schemas in datasets, the projection in a source defines the data columns, types, and formats from the source data. SQL や Parquet など、ほとんどのデータセットの種類では、ソース内のプロジェクトは、データセットで定義されたスキーマを反映するように固定されています。For most dataset types such as SQL and Parquet, the projection in a source is fixed to reflect the schema defined in a dataset. ソース ファイルが厳密に型指定されていない場合 (たとえば、Parquet ファイルでなく csv ファイル)、このソース変換では各フィールドのデータ型を定義できます。When your source files aren't strongly typed (for example, flat csv files rather than Parquet files), you can define the data types for each field in the source transformation.

[Projection](プロジェクション) タブでの設定Settings on the Projection tab

テキスト ファイルが定義済みのスキーマを含まない場合は、Data Factory がデータ型をサンプリングして推論するように、 [データ型の検出] を選択します。If your text file has no defined schema, select Detect data type so that Data Factory will sample and infer the data types. [Define default format](既定の形式の定義) を選択して、既定のデータ形式を自動検出します。Select Define default format to autodetect the default data formats.

列のデータ型は、下流の派生列変換で変更できます。You can modify the column data types in a down-stream derived-column transformation. 選択変換を使用して、列の名前を変更します。Use a select transformation to modify the column names.

ソース変換を最適化するOptimize the source transformation

ソース変換の [最適化] タブに、 [ソース] というパーティションの種類が表示されることがあります。On the Optimize tab for the source transformation, you might see a Source partition type. このオプションは、ソースが Azure SQL Database の場合にのみ使用できます。This option is available only when your source is Azure SQL Database. これは、Data Factory が SQL Database ソースに対して大規模なクエリを実行するために、接続を並列化しようとするためです。This is because Data Factory tries to make connections parallel to run large queries against your SQL Database source.

[ソース] パーティション設定Source partition settings

SQL Database ソースのデータをパーティション分割する必要はありませんが、パーティションは大規模なクエリの場合に便利です。You don't have to partition data on your SQL Database source, but partitions are useful for large queries. 列やクエリに基づいてパーティションを作成できます。You can base your partition on a column or a query.

列を使用してデータをパーティション分割するUse a column to partition data

ソース テーブルから、パーティション分割する列を選択します。From your source table, select a column to partition on. パーティション数も設定します。Also set the number of partitions.

クエリを使用してデータをパーティション分割するUse a query to partition data

クエリに基づいて接続をパーティション分割することを選択できます。You can choose to partition the connections based on a query. WHERE 述語の内容を入力します。Enter the contents of a WHERE predicate. たとえば、「year > 1980」と入力します。For example, enter year > 1980.

Mapping Data Flow 内での最適化の詳細については、[最適化] タブに関するページを参照してください。For more information on optimization within Mapping Data Flow, see Optimize tab.

次の手順Next steps

派生列変換選択変換の作成を開始します。Begin building a derived-column transformation and a select transformation.