Azure Data Factory 和 Synapse Analytics 中的常見資料模型格式
適用于: Azure Data Factory Azure Synapse Analytics
提示
試用 Microsoft Fabric 中的 Data Factory,這是適用于企業的單一分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告等所有專案。 瞭解如何 免費啟動新的試用版 !
Common Data Model (CDM) 中繼資料系統可讓您輕鬆地跨應用程式和商務程式共用資料及其意義。 若要深入瞭解,請參閱 Common Data Model 概 觀。
在 Azure Data Factory 和 Synapse 管線中,使用者可以使用對應資料流程,從 model.json 和儲存在 Azure Data Lake Store Gen2 (ADLS Gen2 ) 中的 CDM 實體轉換資料。 您也可以使用 CDM 實體參考接收 CDM 格式的資料,以 CSV 或 Parquet 格式將資料放在分割資料夾中。
對應資料流程屬性
Common Data Model 可作為內嵌資料集 ,以對應資料流程作為 來源和接收。
注意
撰寫 CDM 實體時,您必須已定義現有的 CDM 實體定義(中繼資料架構)才能做為參考。 資料流程接收會讀取該 CDM 實體檔案,並將架構匯入您的接收以進列欄位對應。
來源屬性
下表列出 CDM 來源所支援的屬性。 您可以在 [ 來源選項 ] 索引標籤中編輯這些屬性。
名稱 | 描述 | 必要 | 允許的值 | 資料流程腳本屬性 |
---|---|---|---|---|
格式 | 格式必須是 cdm |
是 | cdm |
format |
元資料格式 | 資料的實體參考所在的位置。 如果使用 CDM 1.0 版,請選擇資訊清單。 如果在 1.0 之前使用 CDM 版本,請選擇 model.json。 | Yes | 'manifest' 或 'model' |
manifestType |
根位置:容器 | CDM 資料夾的容器名稱 | 是 | String | 檔 |
根位置:資料夾路徑 | CDM 資料夾的根資料夾位置 | 是 | String | folderPath |
資訊清單檔案:實體路徑 | 根資料夾內實體的資料夾路徑 | 否 | String | entityPath |
資訊清單檔:資訊清單名稱 | 資訊清單檔的名稱。 預設值為 'default' | No | String | manifestName |
依上次修改日期來篩選 | 選擇根據上次更改檔案的時間篩選檔案 | 否 | 時間戳記 | modifiedAfter modifiedBefore |
架構連結服務 | 主體所在的連結服務 | 是,如果使用資訊清單 | 'adlsgen2' 或 'github' |
corpusStore |
實體參考容器 | 容器主體位於 | 是,如果在 ADLS Gen2 中使用資訊清單和主體 | String | adlsgen2_fileSystem |
實體參考存放庫 | GitHub 存放庫名稱 | 是,如果在 GitHub 中使用資訊清單和主體 | String | github_repository |
實體參考分支 | GitHub 存放庫分支 | 是,如果在 GitHub 中使用資訊清單和主體 | String | github_branch |
Corpus 資料夾 | 主體的根位置 | 是,如果使用資訊清單 | String | corpusPath |
Corpus 實體 | 實體參考的路徑 | 是 | String | 實體 |
允許找不到任何檔案 | 如果為 true,則找不到任何檔案時不會擲回錯誤 | 否 | true 或 false |
ignoreNoFilesFound |
在 [來源] 和 [接收] 轉換中選取 [實體參考] 時,您可以從這三個選項中選取實體參考的位置:
- 本機會使用服務已在資訊清單檔中定義的實體
- 自訂會要求您指向與服務所使用的資訊清單檔不同的實體資訊清單檔案
- 標準會使用 中
GitHub
維護之 CDM 實體之標準程式庫的實體參考。
接收器設定
- 指向包含您要寫入之實體定義的 CDM 實體參考檔案。
- 定義您想要服務用來撰寫實體之輸出檔案的資料分割路徑和格式。
- 設定輸出檔案位置,以及資訊清單檔的位置和名稱。
匯入結構描述
CDM 只能作為內嵌資料集使用,而且根據預設,沒有相關聯的架構。 若要取得資料行中繼資料,請按一下 [投影 ] 索引標籤中的 [ 匯入 架構 ] 按鈕。這可讓您參考主體所指定的資料行名稱和資料類型。 若要匯入架構, 資料流程偵錯會話 必須是作用中,而且您必須有要指向的現有 CDM 實體定義檔案。
將資料流程資料行對應至接收轉換中的實體屬性時,按一下 [對應] 索引標籤,然後選取 [匯入架構]。 服務會讀取您在接收選項中指向的實體參考,讓您能夠對應至目標 CDM 架構。
注意
使用源自 Power BI 或 Power Platform 資料流程的 model.json 來源類型時,您可能會從來源轉換遇到「主體路徑為 Null 或空白」錯誤。 這可能是因為 model.json 檔案中分割位置路徑的格式問題所造成。 若要修正此問題,請遵循下列步驟:
- 在文字編輯器中開啟 model.json 檔案
- 尋找分割區。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 接收所支援的屬性。 您可以在 [設定] 索引卷 標中 編輯這些屬性。
名稱 | 描述 | 必要 | 允許的值 | 資料流程腳本屬性 |
---|---|---|---|---|
格式 | 格式必須是 cdm |
是 | cdm |
format |
根位置:容器 | CDM 資料夾的容器名稱 | 是 | String | 檔 |
根位置:資料夾路徑 | CDM 資料夾的根資料夾位置 | 是 | String | folderPath |
資訊清單檔案:實體路徑 | 根資料夾內實體的資料夾路徑 | 否 | String | entityPath |
資訊清單檔:資訊清單名稱 | 資訊清單檔的名稱。 預設值為 'default' | No | String | manifestName |
架構連結服務 | 主體所在的連結服務 | 是 | 'adlsgen2' 或 'github' |
corpusStore |
實體參考容器 | 容器主體位於 | 是,如果 ADLS Gen2 中的主體 | String | adlsgen2_fileSystem |
實體參考存放庫 | GitHub 存放庫名稱 | 是,如果 GitHub 中的主體 | String | github_repository |
實體參考分支 | GitHub 存放庫分支 | 是,如果 GitHub 中的主體 | String | github_branch |
Corpus 資料夾 | 主體的根位置 | 是 | String | corpusPath |
Corpus 實體 | 實體參考的路徑 | 是 | String | 實體 |
資料分割路徑 | 將寫入資料分割的位置 | 否 | String | partitionPath |
清除資料夾 | 如果在寫入之前清除目的地資料夾 | 否 | true 或 false |
truncate |
格式類型 | 選擇指定 parquet 格式 | 否 | parquet 如果指定,則為 |
subformat |
資料行分隔符號 | 如果寫入 DelimitedText,如何分隔資料行 | 是,如果寫入至 DelimitedText | String | columnDelimiter |
第一列作為標題 | 如果使用 DelimitedText,是否要將資料行名稱新增為標頭 | 否 | 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
相關內容
在對應資料流程中建立 來源轉換 。