APPLIES TO:
Azure Data Factory
Azure Synapse Analytics
ヒント
Data Factory in Microsoft Fabric は、よりシンプルなアーキテクチャ、組み込みの AI、および新機能を備えた次世代のAzure Data Factoryです。 データ統合を初めて使用する場合は、Fabric Data Factory から始めます。 既存の ADF ワークロードをFabricにアップグレードして、データ サイエンス、リアルタイム分析、レポートの新機能にアクセスできます。
- Fabric無料試用版を開始します。
Microsoft Fabric
Common Data Model (CDM) メタデータ システムを使用すると、データとその意味をアプリケーションやビジネス プロセス間で簡単に共有できます。 詳細については、Common Data Modelの概要を参照してください。
Azure Data Factoryパイプラインと Synapse パイプラインでは、ユーザーはマッピング データ フローを使用して、Azure Data Lake Store Gen2 (ADLS Gen2) に格納されている model.json とマニフェストフォームの両方で CDM エンティティからデータを変換できます。 また、データをパーティション分割されたフォルダーに CSV または Parquet 形式で格納する CDM エンティティ参照を使用して、データを CDM 形式でシンクすることもできます。
Mapping Data Flow のプロパティ
Common Data Modelは、ソースとシンクの両方としてマッピング データ フローでinline データセットとして使用できます。
注意
CDM エンティティを記述する際は、参照として使用する既存の CDM エンティティ定義 (メタデータ スキーマ) が既に定義されている必要があります。 データ フロー シンクでは、その CDM エンティティ ファイルが読み取られ、フィールド マッピング用のシンクにスキーマがインポートされます。
注意
データ フローで変更データ キャプチャ (CDC) と共に CDM を使用する場合、ファイルベースの CDC アプローチを使用して更新が検出され、ファイルの最後に変更されたタイムスタンプが適用されます。
ソースのプロパティ
次の表に、CDM ソースでサポートされるプロパティの一覧を示します。 これらのプロパティは、 [ソース オプション] タブで編集できます。
| 名前 | 説明 | 必須 | 使用できる値 | データ フロー スクリプトのプロパティ |
|---|---|---|---|---|
| Format | 形式は cdm である必要があります |
はい | cdm |
format |
| メタデータ形式 | データへのエンティティ参照が置かれている場所。 CDM バージョン 1.0 を使用する場合は、manifest を選択します。 1\.0 より前のバージョンの CDM を使用している場合は、model.json を選択します。 | はい |
'manifest' または 'model' |
manifestType |
| ルートの場所: コンテナー | CDM フォルダーのコンテナー名 | はい | String | fileSystem |
| ルートの場所: フォルダー パス | CDM フォルダーのルート フォルダーの場所 | はい | String | folderPath |
| マニフェスト ファイル: エンティティのパス | ルート フォルダー内のエンティティのフォルダー パス | no | String | entityPath |
| マニフェスト ファイル: マニフェスト名 | マニフェスト ファイルの名前。 既定値は 'default' | いいえ | String | manifestName |
| 最終更新日時でフィルター処理 | 最後に変更された日時に基づいてファイルをフィルター処理する場合に選択 | no | Timestamp | modifiedAfter modifiedBefore |
| スキーマのリンクされたサービス | コーパスが配置されているリンクされたサービス | はい (マニフェストを使用する場合) |
'adlsgen2' または 'github' |
corpusStore |
| エンティティ参照コンテナー | その中にコーパスがあるコンテナー | はい (ADLS Gen2 でマニフェストとコーパスを使用する場合) | String | adlsgen2_fileSystem |
| エンティティ参照リポジトリ | GitHub リポジトリ名 | はい(GitHubでマニフェストとコーパスを使用している場合) | String | github_repository |
| エンティティ参照ブランチ | GitHub リポジトリ ブランチ | はい(GitHubでマニフェストとコーパスを使用している場合) | String | github_branch |
| コーパス フォルダー | コーパスのルートの場所 | はい (マニフェストを使用する場合) | String | corpusPath |
| コーパス エンティティ | エンティティ参照のパス | はい | String | エンティティ |
| [Allow no files found]\(ファイルの未検出を許可\) | true の場合、ファイルが見つからない場合でもエラーはスローされない | no |
true または false |
ignoreNoFilesFound |
ソース変換とシンク変換の両方で "エンティティ参照" を選択する際に、以下の 3 つのオプションからエンティティ参照の場所を選択できます。
- ローカル - サービスによって既に使用されているマニフェスト ファイルで定義されているエンティティを使用します
- カスタム - サービスによって使用されているマニフェスト ファイルとは異なるエンティティ マニフェスト ファイルを指定するように求めるメッセージが表示されます
- Standard では、
GitHubに保持されている CDM エンティティの標準ライブラリからのエンティティ参照が使用されます。
シンクの設定
- 記述するエンティティの定義を含む CDM エンティティ参照ファイルをポイントします。
- サービスでエンティティの記述に使用する出力ファイルのパーティション パスと形式を定義します。
- 出力ファイルの場所とマニフェスト ファイルの場所と名前を設定します。
スキーマをインポート
CDM はインライン データセットとしてのみ利用でき、既定では、関連付けられたスキーマはありません。 列メタデータを取得するには、 [プロジェクション] タブの [スキーマのインポート] ボタンをクリックします。これにより、コーパスによって指定されている列名とデータ型を参照できます。 スキーマをインポートするには、データ フロー デバッグ セッションをアクティブにする必要があり、既存の CDM エンティティ定義ファイルをポイントする必要があります。
シンク変換でデータ フロー列をエンティティ プロパティにマップする場合は、"マッピング" タブをクリックし、"スキーマのインポート" を選択します。 サービスによって、シンク オプションでポイントしたエンティティ参照が読み取られ、これでターゲットの CDM スキーマにマップできるようになります。
注意
Power BIまたは Power Platform のデータフローから生成されたソースの種類 model.json 使用すると、ソース変換の "コーパスが null または空です" というエラーが発生する可能性があります。 原因は、model.json ファイル内のパーティションの場所のパスで書式に問題がある可能性があります。 これを修正するには、次の手順に従います。
- model.json ファイルをテキスト エディターで開く
- partitions.Location プロパティを検索する
- "blob.core.windows.net" を "dfs.core.windows.net" に変更する
- URL の "% 2F" エンコードを "/" に修正する
- ADF データ フローを使用する場合は、パーティション ファイル パスの特殊文字を英数字に置き換えるか、Azure Synapse データ フローに切り替える必要があります
CDM ソース データ フロー スクリプトの例
source(output(
ProductSizeId as integer,
ProductColor as integer,
CustomerId as string,
Note as string,
LastModifiedDate as timestamp
),
allowSchemaDrift: true,
validateSchema: false,
entity: 'Product.cdm.json/Product',
format: 'cdm',
manifestType: 'manifest',
manifestName: 'ProductManifest',
entityPath: 'Product',
corpusPath: 'Products',
corpusStore: 'adlsgen2',
adlsgen2_fileSystem: 'models',
folderPath: 'ProductData',
fileSystem: 'data') ~> CDMSource
シンクのプロパティ
次の表に、CDM シンクでサポートされるプロパティの一覧を示します。 これらのプロパティは、 [設定] タブで編集できます。
| 名前 | 説明 | 必須 | 使用できる値 | データ フロー スクリプトのプロパティ |
|---|---|---|---|---|
| Format | 形式は cdm である必要があります |
はい | cdm |
format |
| ルートの場所: コンテナー | CDM フォルダーのコンテナー名 | はい | String | fileSystem |
| ルートの場所: フォルダー パス | CDM フォルダーのルート フォルダーの場所 | はい | String | folderPath |
| マニフェスト ファイル: エンティティのパス | ルート フォルダー内のエンティティのフォルダー パス | no | String | entityPath |
| マニフェスト ファイル: マニフェスト名 | マニフェスト ファイルの名前。 既定値は 'default' | いいえ | String | manifestName |
| スキーマのリンクされたサービス | コーパスが配置されているリンクされたサービス | はい |
'adlsgen2' または 'github' |
corpusStore |
| エンティティ参照コンテナー | その中にコーパスがあるコンテナー | はい (コーパスが ADLS Gen2 にある場合) | String | adlsgen2_fileSystem |
| エンティティ参照リポジトリ | GitHub リポジトリ名 | はい(GitHubのコーパスの場合) | String | github_repository |
| エンティティ参照ブランチ | GitHub リポジトリ ブランチ | はい(GitHubのコーパスの場合) | String | github_branch |
| コーパス フォルダー | コーパスのルートの場所 | はい | String | corpusPath |
| コーパス エンティティ | エンティティ参照のパス | はい | String | エンティティ |
| パーティションのパス | パーティションが書き込まれる場所 | no | String | partitionPath |
| フォルダーのクリア | 書き込みの前に宛先フォルダーがクリアされるかどうか | no |
true または false |
切り詰める |
| 形式の種類 | Parquet 形式を指定する場合に選択 | no |
parquet (指定される場合) |
subformat |
| 列区切り記号 | DelimitedText に書き込む場合に、列を区切る方法 | はい (DelimitedText に書き込む場合) | String | columnDelimiter |
| 先頭の行を見出しとして使用 | DelimitedText を使用する場合に、列名を見出しとして追加するかどうか | no |
true または false |
columnNamesAsHeader |
CDM シンク データ フロー スクリプトの例
関連付けられているデータ フロー スクリプトは次のとおりです。
CDMSource sink(allowSchemaDrift: true,
validateSchema: false,
entity: 'Product.cdm.json/Product',
format: 'cdm',
entityPath: 'ProductSize',
manifestName: 'ProductSizeManifest',
corpusPath: 'Products',
partitionPath: 'adf',
folderPath: 'ProductSizeData',
fileSystem: 'cdm',
subformat: 'parquet',
corpusStore: 'adlsgen2',
adlsgen2_fileSystem: 'models',
truncate: true,
skipDuplicateMapInputs: true,
skipDuplicateMapOutputs: true) ~> CDMSink
関連するコンテンツ
マッピング データ フローのソース変換を作成します。