什么是自动加载器?
自动加载器增量和有效地处理新数据文件,因为他们到达云存储,而不需要任何额外的设置。
自动加载器是如何工作的?
自动加载器增量和有效地处理新数据文件,因为他们到达云存储。Auto Loader可从AWS S3 (s3: / /
), Azure数据湖存储Gen2 (ADLS Gen2),abfss: / /
),谷歌云存储(GCS,g: / /
)、Azure Blob存储(wasbs: / /
), ADLS Gen1 (adl: / /
),以及Databricks文件系统(DBFS,dbfs: /
).自动加载器可以摄取JSON
,CSV
,拼花
,AVRO
,兽人
,文本
,BINARYFILE
文件格式。
Auto Loader提供了一个名为cloudFiles
.给定云文件存储上的输入目录路径,则cloudFiles
Source在新文件到达时自动处理,还可以选择处理该目录中的现有文件。Auto Loader同时支持Python和SQL。
您可以使用自动加载程序来处理数十亿个文件来迁移或回填一个表。自动加载器的规模,以支持接近实时摄取数百万文件每小时。
如何自动加载跟踪摄取进度?
当文件被发现时,它们的元数据被持久化在一个可伸缩的键值存储(RocksDB)中检查点位置你的自动装载机管道。这个键值存储确保数据只被处理一次。
如果出现故障,Auto Loader可以通过存储在检查点位置的信息从它离开的地方恢复,并在将数据写入Delta Lake时继续提供精确的一次保证。您不需要自己维护或管理任何状态来实现容错或仅一次语义。
教程:摄取数据与Databricks自动加载器
Databricks推荐Delta Live Tables中的Auto Loader用于增量数据摄取。Delta Live Tables扩展了Apache Spark Structured Streaming中的功能,允许你只写几行声明性的Python或SQL来部署生产质量的数据管道。
当你使用Apache Spark Structured Streaming从云对象存储中摄取数据时,Databricks推荐Auto Loader。api可以在Python和Scala中使用。
要开始使用自动加载器,请参阅:
有关常用模式的示例,请参见:
与直接在文件上使用结构化流相比,Auto Loader的好处
在Apache Spark中,您可以使用增量读取文件spark.readStream.format (fileFormat) .load(目录)
.Auto Loader提供了文件源的以下好处:
可伸缩性:Auto Loader可以有效地发现数十亿个文件。回填可以异步执行,以避免浪费任何计算资源。
性能:使用Auto Loader发现文件的成本与正在被摄取的文件数量而不是文件可能进入的目录数量成比例。看到什么是自动加载目录列表模式?.
模式推断和进化支持:Auto Loader可以检测模式漂移,在模式发生变化时通知您,并挽救否则会被忽略或丢失的数据。看到Auto Loader模式推断如何工作?.
成本:Auto Loader使用原生云api获取存储中存在的文件列表。此外,Auto Loader的文件通知模式可以通过避免目录列表来帮助您进一步降低云计算成本。Auto Loader可以自动在存储上设置文件通知服务,使文件发现更便宜。