适用于:
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
在映射数据流中创建源转换。