我刚刚发现了一个名为Databricks Data Ingestion的新Databricks功能。在这一点上,关于它的材料很少。
何时应使用 Databricks 数据引入,而不是现有的成熟工具(如 Azure 数据工厂 (ADF( 或 Apache Nifi(?
ADF 和 Nifi 都可以摄取到 ADLS/S3 中,AFAIK ADLS/S3 可以在不复制任何数据的情况下映射到 Databricks DBFS,并且拼花地板文件可以轻松转换为 Delta 格式。那么使用新工具的好处或用例是什么?我错过了什么?
博客文章中有三个项目。
- 自动装载机
- 复制到
- 从第三方来源引入数据
自动加载程序和复制到 INTO 简化了数据引入管道的状态管理。我所说的状态管理是指管理已引入和处理的文件或事件。使用 Nifi、Airflow、ADF,您需要一个单独的状态存储来跟踪哪些文件已被摄取或未摄取。 ETL 系统通常会将摄取的文件"移动"到另一个文件夹。这仍然是状态管理。其他人可能会跟踪数据库或无 sql 数据存储中的文件。
在自动加载程序或复制到之前,您必须: 1. 检测登陆区域中的文件 2. 将文件与已摄取的文件进行比较。 2. 出示文件进行处理 3. 跟踪您摄取的文件。
如果这些步骤搞砸了,落后了,那么文件可能会被摄取和处理两次或丢失。移动文件的复杂性是有代价的。
使用自动加载程序或 COPY INTO,可以在一个语句中设置流式数据引入或增量数据引入。在登陆区域上设置 7 天或 48 小时的存档策略,登陆区域会自动清除。您的代码和架构大大简化。
自动加载程序(用于流(和 COPY INTO (用于重新固化批处理作业(利用后台的 Databrick 来跟踪和管理状态。对于自动加载程序,Databricks 将设置基础结构、SNS、SQS,从而大大减少流数据引入的延迟。
博客文章中的第三项是宣布与成熟的数据摄取公司建立合作伙伴关系,这些公司拥有各种开箱即用的企业数据连接器。这些公司与三角洲湖合作。
您仍然可以使用Nifi,Airflow,Stream Sets等从源系统获取数据。这些工具现在只会在批处理/微批处理摄取需要时触发"COPY INTO"命令。自动加载程序将连续运行或在触发时运行。