Azure Synapse Link 中的高级配置选项

Azure Synapse Link 提供多种写入和读取数据的方法,以适应各个分析场景。

备注

Azure Synapse Link for Dataverse 以前称为“导出到 Data Lake”。 此服务已更名,从 2021 年 5 月起生效,它会继续将数据导出到 Azure Data Lake 以及 Azure Synapse Analytics。

本文介绍:

  1. 就地更新与仅追加写入。
  2. 用户指定的数据分区。

就地更新与仅追加写入

当根据 createdOn 值(这是创建记录时的日期和时间)将 Dataverse 表数据写入 Azure Data Lake 时,有两个不同的设置可供选择。 它们是就地更新仅追加

默认设置(对于 createdOn 可用的表)是对目标中的增量数据进行就地更新或 upsert(更新或插入)。 如果更改是新的,并且湖中不存在相应的行,在创建的情况下,将扫描目标文件,并将更改插入湖中的相应文件分区。 如果更改是更新并且湖中存在一行,将更新湖中的相应文件,而不是使用增量数据插入。 换言之,Dataverse 表(其中 createdOn 可用)中的所有 CUD(创建、更改、删除)更改的默认设置是在 Azure Data Lake 内的目标中进行就地更新。

您可以使用称为仅追加的可选设置切换就地更新的默认行为。 在仅追加模式下(而不是在就地更新模式下),Dataverse 表中的增量数据将追加到湖中的相应文件分区。 这是每个表的设置,可用作高级 > 显示高级配置设置下的复选框。 对于打开了仅追加的 Dataverse 表,所有 CUD 更改将增量追加到湖中的相应目标文件。 当您选择此选项时,分区策略会默认为,当数据写入数据湖时,将按年进行分区。 仅追加也是没有 createdOn 值的 Dataverse 表的默认设置。

下表介绍了如何针对每个数据写入选项的 CUD 事件在湖中处理行。

重要活动 就地更新 仅追加
创建​​ 行将插入到分区文件中,并且基于行上的 createdOn 值。 行将添加到分区文件末尾,并且基于记录的 createdOn 值。
更新 如果行存在于分区文件中,它会以更新的数据替换或更新。 如果不存在,在文件中插入该行。 该行以及更新的版本将添加到分区文件末尾。
Delete 如果分区文件中存在该行,将其从文件中删除。 该行将添加到具有 IsDelete column = True 的分区文件末尾。

备注

对于启用了仅追加的 Dataverse 表,删除源中的行不会在湖中删除或移除该行。 相反,删除的行将追加为湖中的一个新行,并且 isDeleted 列将设置为 True

无服务器脏读 (ALLOW_INCONSISTENT_READS) 已启用仅追加模式。 ALLOW_INCONSISTENT_READS 表示用户能够在 SELECT 查询运行时读取可以持续修改的文件。 结果将是一致的,相当于读取文件的快照。 (由于快照生成时间不同,不等同于数据库快照隔离。)

并非所有 CUD 更改都将以仅追加模式捕获:Synapse Link 在将数据发布到数据湖之前以组或“批”的形式处理数据更改。 因此,如果用户在短时间间隔内进行更改,则不会在数据湖中捕获所有 CUD 更改。

以下是有关何时使用其中某一选项的更多详细信息。

  • 就地更新:此选项是默认设置,仅当您想要直接连接到湖中的数据并需要当前状态(不是历史记录或增量更改)时才建议使用此选项。 文件包含完整数据集,并且可以通过 Power BI 或通过复制 ETL(提取、传输、加载)管道的整个数据集利用。
  • 仅追加:如果您未直接连接到湖中的数据并且想要使用 ETL 管道将数据增量复制到另一个目标,请选择此选项。 此选项提供更改历史记录来启用 AI 和 ML 方案。

您可以在 Azure Synapse Link for Dataverse 中的高级下切换显示高级配置设置,来自定义数据分区策略和选择写入 Azure Data Lake 的选项。

显示高级配置。

数据分区

使用 Azure Synapse Link 将 Dataverse 表数据写入 Azure Data Lake Storage 时,表(而不是单个文件)会根据源中每一行的 createdOn 值在湖中进行分区。 默认分区策略是按月,按月在 Azure Data Lake 中对数据进行分区。

根据 Dataverse 表卷和数据分布,您可以选择按年对数据进行分区。 使用此选项,当 Dataverse 表数据写入 Azure Data Lake 时,将根据源中每一行的 createdOn 值每年对其进行分区。 对于没有 createdOn 列的表,每 5,000,000 个记录将数据行分区到一个新文件中。 这是每个表的设置,可用作高级 > 显示高级配置设置下的复选框。

更多详细信息以及如何使用按年或按月分区策略在湖中处理数据的示例:

分区策略。

另请参见

Azure Synapse Link for Dataverse

备注

您能告诉我们您的文档语言首选项吗? 进行简短调查。(请注意,此调查是英文版调查)

此调查大约需要七分钟。 不会收集个人数据(隐私声明)。