使用 Delta Live Tables 加载和转换数据
本节中的文章提供了 Delta Live Tables 管道中数据引入和转换的常见模式、建议和示例。 引入源数据以在管道中创建初始数据集时,这些初始数据集通常称为 bronze 表,它们通常执行简单的转换。 相比之下,管道中的最终表(通常称为 gold 表)通常需要复杂的聚合,或从作为 APPLY CHANGES INTO
操作目标的源中读取。
加载数据
可以使用增量实时表在 Azure Databricks 上从 Apache Spark 支持的任何数据源加载数据。 有关从不同的源加载数据的模式示例,包括云对象存储、Kafka 等消息总线以及 PostgreSQL 等外部系统,请参阅使用 Delta Live Tables 加载数据。 这些示例强调了一些建议,例如将流式处理表与 Delta Live Tables 中的自动加载程序配合使用,以获取优化的引入体验。
数据流
在增量实时表中,流是一个流式处理查询,它以增量方式处理源数据来更新目标流式处理表。 实现增量实时表管道所需的许多流式处理查询会创建一个隐式流作为查询定义的一部分。 当需要更专业化的处理时,增量实时表还支持显式声明流。 若要详细了解增量实时表流,并查看使用流实现数据处理任务的示例,请参阅使用增量实时表流以增量方式加载和处理数据。
变更数据捕获 (CDC)
增量实时表使用 APPLY CHANGES
API 简化了变更数据捕获 (CDC)。 增量实时表中的 APPLY CHANGES
API 可自动处理无序记录,从而确保正确处理 CDC 记录,而且无需开发复杂的逻辑来处理无序记录。 请参阅 APPLY CHANGES API:使用增量实时表简化变更数据捕获。
转换数据
使用 Delta Live Tables 时,可以声明数据集的转换,并指定如何通过查询逻辑处理记录。 有关生成 Delta Live Tables 管道时常见转换模式的示例,包括使用流式处理表、具体化视图、流静态联接和管道中的 MLflow 模型,请参阅使用 Delta Live Tables 转换数据。
使用水印优化 Delta Live Tables 中的有状态处理
如要有效管理保持状态的数据,可以在 Delta Live Tables 中执行有状态流处理(包括聚合、联接和重复数据删除)时使用水印。 在流处理中,水印是一项 Apache Spark 功能,可在执行有状态操作时定义用于处理数据的基于时间的阈值。 到达的数据将得到处理,直到达到阈值,此时由阈值定义的时间窗口关闭。 水印可用于避免查询处理过程中出现的问题,这些问题多发生在处理较大的数据集时或长时间运行的处理中。
有关示例和建议,请参阅使用水印优化 Delta Live Tables 中的有状态处理。