Databricks 摄取用例

Databricks Ingest use cases

我刚刚发现了一个名为 Databricks Data Ingestion 的新 Databricks 功能。在这一点上,关于它的内容很少material。

什么时候应该使用 Databricks 数据摄取而不是现有的成熟工具,如 Azure 数据工厂 (ADF) 或 Apache Nifi?

ADF 和 Nifi 都可以摄取到 ADLS/S3,并且 AFAIK ADLS/S3 可以映射到 Databricks DBFS 而无需复制任何数据,以及 parquet 文件 can be easily converted into Delta format。那么使用新工具的好处或用例是什么?我缺少什么?

博客中有三项 post。

  1. 自动装载机
  2. 复制到
  3. 从第 3 方来源获取数据

Auto Loader 和 COPY INTO 简化了数据摄取管道的状态管理。我所说的状态管理是指管理哪些文件或事件已被摄取和处理。使用 Nifi、Airflow、ADF,您需要一个单独的状态存储来跟踪哪些文件已被摄取或未摄取。 ETL 系统经常 'move' 将文件提取到另一个文件夹。这仍然是状态管理。其他人可能会在数据库或无 sql 数据存储中跟踪文件。

在使用 Auto Loader 或 COPY INTO 之前,您必须: 1.检测登陆区文件 2. 将文件与已摄取的文件进行比较。 2.提交文件进行处理 3. 跟踪您摄入的文件。

如果这些步骤搞砸了,落后了,那么一个文件可能会被摄取和处理两次或丢失。移动文件会增加复杂性。

使用 Auto Loader 或 COPY INTO,您可以在一个语句中设置流式或增量数据摄取。在着陆区设置存档策略 7 天或 48 小时,您的着陆区会自动清除。您的代码和架构已大大简化。

Auto Loader(用于流)和 COPY INTO(用于重新固化批处理作业)在幕后利用 Databricks 为您跟踪和管理状态。对于 Auto Loader,Databricks 将设置基础设施、SNS、SQS,从而大大减少流数据摄取的延迟。

博客中的第三项 post 宣布与成熟的数据采集公司建立合作伙伴关系,这些公司拥有广泛的开箱即用的企业数据连接器。这些公司与 Delta Lake 合作。

您仍然会使用 Nifi、Airflow、Stream Sets 等从源系统获取数据。这些工具现在只会根据需要触发 'COPY INTO' 命令以进行批量/微批量摄取。 Auto Loader 将持续 运行 或在触发时 运行。