什么是 Azure Databricks 上的数据转换?

数据转换是对数据进行转换、清理和结构化,以将其转为可用格式的过程。 数据转换通常遵循 Databricks 奖牌体系结构,即以增量方式将原始数据细化为可供业务使用的格式。

下图显示包含一系列数据转换的数据管道,通过删除本示例中无客户名称的客户数据,将 raw_customers 数据集转换为 clean_customers 数据集。 通过删除零美元价值的事务,将 raw_transactions 数据转换为 clean_transactions 数据。 名为 sales_report 的结果数据集可联接 clean_customersclean_transactions。 分析师可将 sales_report 用于分析和商业智能。

数据转换示例

数据转换类型

Databricks 考虑两种类型的数据转换:声明性转换程序性转换。 前述示例中的数据管道可使用任一范例以进行表示。

声明性转换重点关注预期结果,而不是实现方式。 可使用高级别抽象指定转换的逻辑,增量实时表可确定执行转换的最有效方法。

程序性数据转换重点关注通过显式指令执行计算。 这些计算定义操作数据的确切顺序。 程序性方法可以更好地控制执行,但其复杂性更高,维护成本也更高。

在声明性数据转换和程序性数据转换之间作出选择

使用增量实时表的声明性数据转换适用于以下情况:

  • 需要进行快速开发和部署。
  • 数据管道具有标准模式,无需对执行进行低级别控制。
  • 需要内置的数据质量检查。
  • 维护和可读性是重中之重。

使用 Apache Spark 代码的程序性数据转换适用于以下情况:

  • 需将现有的 Apache Spark 代码库迁移至 Databricks。
  • 需对执行进行精细控制。
  • 需访问低级别的 API,例如 MERGEforeachBatch
  • 需将数据写入 Kafka 或外部增量表。