添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

适用于: Azure 数据工厂 Azure Synapse Analytics

Common Data Model (CDM) 元数据系统可以轻松地在应用程序和业务流程之间共享数据及其含义。 若要了解详细信息,请参阅 Common Data Model 概述。

在 Azure 数据工厂和 Synapse 管道中,用户可以使用映射数据流,转换以 model.json 和清单格式存储在 Azure Data Lake Store Gen2 (ADLS Gen2) 中的 CDM 实体数据。 还可以使用 CDM 实体引用接收 CDM 格式数据,这些引用会以 CSV 或 Parquet 格式将数据保存在分区文件夹中。

映射数据流属性

Common Data Model 作为映射数据流中的 内联数据集 提供,同时用作源和接收器。

在编写 CDM 实体时,必须有一个已定义的现有 CDM 实体定义(元数据架构)作为参考。 数据流接收器将读取该 CDM 实体文件,并将架构导入到接收器中进行字段映射。

下表列出了 CDM 源支持的属性。 你可以在“源选项”选项卡中编辑这些属性。

数据流脚本属性 对数据的实体引用所在的位置。 如果使用的是 CDM 版本 1.0,请选择清单。 如果使用的是 1.0 之前的 CDM 版本,请选择 model.json。 'manifest' 'model' manifestType 根位置:容器 CDM 文件夹的容器名称 fileSystem 根位置:文件夹路径 CDM 文件夹的根文件夹位置 folderPath 清单文件:实体路径 根文件夹中实体的文件夹路径 entityPath 清单文件:清单名称 清单文件名称。 默认值为“default” manifestName 按上次修改时间筛选 选择根据上次更改时间筛选文件 ModifiedAfter
modifiedBefore 架构链接服务 语料库所在的链接服务 是(如果使用清单) 'adlsgen2' 'github' corpusStore 实体引用容器 容器语料库位于其中 是(如果使用 ADLS Gen2 中的清单和语料库) adlsgen2_fileSystem 实体引用存储库 GitHub 存储库名称 是(如果使用 GitHub 中的清单和语料库) github_repository 实体引用分支 GitHub 存储库分支 是(如果使用 GitHub 中的清单和语料库) github_branch 语料库文件夹 语料库的根位置 是(如果使用清单) corpusPath 语料库实体 实体引用的路径 允许找不到文件 如果为 true,则找不到文件时不会引发错误 true false ignoreNoFilesFound

在源和接收器转换过程中选择“实体引用”时,可从以下三个选项中选择实体引用的位置:

  • “本地”使用此服务已在使用的清单文件中定义的实体
  • “自定义”要求指向的实体清单文件应与此服务所用的清单文件不同
  • “标准”将使用 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 接收器支持的属性。 可以在“设置”选项卡中编辑这些属性。

    数据流脚本属性
    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
    

    在映射数据流中创建源转换