在数据流 Gen2 中使用分区计算(预览版)

注释

分区计算目前以预览版提供,仅在具有 CI/CD 的数据流 Gen2 中可用。

分区计算是数据流 Gen2 引擎的一项功能,它允许数据流逻辑的各个部分并行运行,从而减少完成其评估的时间。

分区计算目标场景:数据流引擎可以有效地将能够对数据源进行分区的操作折叠起来,并对每个分区进行并行处理。 例如,在连接到存储在 Azure Data Lake Storage Gen2 中的多个文件时,可以从源分区文件列表,使用 查询折叠有效地检索已分区的文件列表,使用 合并文件体验并并行处理所有文件。

注释

只有 Azure Data Lake Storage Gen2、Fabric Lakehouse、Folder 和 Azure Blob 存储的连接器发出正确的脚本以使用分区计算。 SharePoint 连接器目前不支持它。

如何设置分区计算

若要使用此功能,需要:

启用数据流设置

在功能区的“开始”选项卡中,选择“ 选项 ”按钮以显示其对话框。 导航到“缩放”部分并启用“允许使用分区计算”的设置。

选项对话框缩放部分内分区计算设置的屏幕截图。

启用此选项有两个用途:

  • 允许数据流使用通过查询脚本发现的分区计算

  • 像合并文件这样的体验现在会自动创建可用于分区计算的分区键。

还需要启用“ 隐私 ”部分中的设置,以 允许合并来自多个源的数据

使用分区键进行查询

注释

若要使用分区计算,请确保将查询设置为暂存。

启用设置后,您可以对使用文件系统视图的某些数据源(例如 Azure Data Lake Storage Gen2)进行“合并文件”操作。 合并文件体验完成时,你会注意到查询具有 添加的自定义 步骤,该步骤的脚本如下所示:

let
    rootPath = Text.TrimEnd(Value.Metadata(Value.Type(#"Filtered hidden files"))[FileSystemTable.RootPath]?, "\"),
    combinePaths = (path1, path2) => Text.Combine({Text.TrimEnd(path1, "\"), path2}, "\"),
    getRelativePath = (path, relativeTo) => Text.Middle(path, Text.Length(relativeTo) + 1),
    withRelativePath = Table.AddColumn(#"Filtered hidden files", "Relative Path", each getRelativePath(combinePaths([Folder Path], [Name]), rootPath), type text),
    withPartitionKey = Table.ReplacePartitionKey(withRelativePath, {"Relative Path"})
in
    withPartitionKey

此脚本(特别是 withPartitionKey 组件)驱动数据流如何尝试对数据进行分区以及如何尝试并行评估数据的逻辑。

您可以对添加自定义步骤使用 Table.PartitionKey 函数。 此函数返回指定表的分区键。 对于上述情况,它是列 RelativePath。 可以获取该列中值的不同列表,以了解将在数据流运行期间使用的所有分区。

重要

请务必将分区键列保留在查询中,以便应用已分区计算。

注意事项和建议

  • 对于数据源不支持合并转换的情况,建议选择分区计算而不是快速复制。

  • 为了获得最佳性能,请使用此方法将数据直接加载到暂存区域作为目标或加载到 Fabric 数据仓库。

  • 使用示例转换文件合并文件体验中引入应在每个文件中发生的转换。

  • 分区计算仅支持转换的子集。 性能可能因源和使用的转换集而异。

  • 数据流运行的计费基于容量单位(CU)消耗量。