共用方式為


Azure Data Factory 和 Synapse Analytics 中的 Common Data Model 格式

適用於:Azure Data Factory Azure Synapse Analytics

提示

試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的全方位分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告的所有項目。 了解如何免費開始新的試用

Common Data Model (CDM) 中繼資料系統可讓您輕鬆地跨應用程式和商務程序共用資料及其意義。 若要深入了解,請參閱 Common Data Model 概觀。

在 Azure Data Factory 和 Synapse 管線中,使用者可以使用對應資料流程,從儲存在 Azure Data Lake Store Gen2 (ADLS Gen2) 的 model.json 和資訊清單表單中的 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 fileSystem
根位置:資料夾路徑 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
主體資料夾 主體的根位置 是,如果使用資訊清單 String corpusPath
主體實體 實體參考的路徑 String 實體
允許找不到任何檔案 如果為 true,找不到檔案時不會擲回錯誤 truefalse ignoreNoFilesFound

在 [來源] 和 [接收] 轉換中選取 [實體參考] 時,您可以從這三個選項中選取實體參考的位置:

  • [本機] 會使用服務已用過資訊清單檔中定義的實體
  • [自訂] 會要求您指向與服務所用資訊清單檔案不同的實體資訊清單檔案
  • [標準] 會從 GitHub 中維護 CDM 實體的標準程式庫使用實體參考。

接收器設定

  • 指向 CDM 實體參考檔案,其中包含您要寫入的實體定義。

實體設定

  • 對您想要服務用來寫入實體的輸出檔案定義資料分割路徑和格式。

實體格式

  • 設定輸出檔位置和資訊清單檔的位置與名稱。

cdm 位置

匯入結構描述

CDM 只能做為內嵌資料集使用,而且根據預設,沒有相關聯的結構描述。 若要取得資料行中繼資料,請按一下 [投影] 索引標籤中的 [匯入結構描述] 按鈕。這可讓您參考主體所指定的資料行名稱和資料類型。 若要匯入結構描述,資料流程偵錯工作階段必須是作用中,而且您必須有要指向的現有 CDM 實體定義檔。

將資料流程資料行對應至接收轉換中的實體屬性時,按一下 [對應] 索引標籤,然後選取 [匯入架構]。 服務會讀取您在 [接收] 選項中指向的實體參考,讓您能夠對應至目標 CDM 架構。

CDM 接收設定

注意

使用源自 Power BI 或 Power Platform 資料流程的 model.json 來源類型時,您可能會遭遇來源轉換的「主體路徑為 Null 或空白」錯誤。 這可能是由於 model.json 檔案中資料分割位置路徑的格式問題所造成。 若要修正此問題,請遵循下列步驟:

  1. 在文字編輯器中開啟 model.json 檔案
  2. 尋找 partitions.Location 屬性
  3. 將 "blob.core.windows.net" 變更為 "dfs.core.windows.net"
  4. 將 URL 中的任何 "%2F" 編碼修正為 "/"
  5. 如果使用 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 fileSystem
根位置:資料夾路徑 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
主體資料夾 主體的根位置 String corpusPath
主體實體 實體參考的路徑 String 實體
資料分割路徑 將寫入資料分割的位置 String partitionPath
清除資料夾 如果在進行寫入之前清除目的地資料夾 truefalse truncate
格式類型 選擇指定 Parquet 格式 如果指定,則為 parquet subformat
資料行分隔符號 如果寫入至 DelimitedText,如何分隔資料行 是,如果寫入至 DelimitedText String columnDelimiter
第一列作為標題 如果使用 DelimitedText,是否要將資料行名稱新增為標頭 truefalse 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

在對應資料流中建立來源轉換