自动加载程序可以安全地从配置 Unity Catalog 的外部位置引入数据。 要详细了解如何使用 Unity Catalog 安全地连接存储,请参阅使用 Unity Catalog 连接到云对象存储和服务。 自动加载程序依赖于结构化流式处理进行增量处理;有关建议和限制,请参阅将 Unity Catalog 与结构化流式处理配合使用。
备注
在 Databricks Runtime 11.3 LTS 及更高版本中,可以将自动加载程序与标准或专用访问模式(以前共享和单个用户访问模式)配合使用。
默认支持目录列表模式。 只有具有专用访问模式的计算才支持文件通知模式。
可以使用自动加载程序从 Unity Catalog 管理的任何外部位置引入数据。 必须对外部位置具有 READ FILES
权限。
备注
Azure Data Lake Storage 是唯一受 Unity 目录支持的 Azure 存储类型。
Unity Catalog 安全模型假定工作负载中引用的所有存储位置都由 Unity Catalog 管理。 Databricks 建议始终在由 Unity Catalog 管理的存储位置存储检查点和架构演变信息。 Unity Catalog 不支持在表目录下嵌套检查点或架构推理和演变文件。
以下示例假定执行用户对目标表具有所有者权限,并具有以下配置和授权:
存储位置 | 授权 |
---|---|
abfss://autoloader-source@<storage-account> .dfs.core.chinacloudapi.cn/json-data |
读取文件 |
abfss://dev-bucket@<storage-account> .dfs.core.chinacloudapi.cn |
读取文件、写入文件、创建表 |
checkpoint_path = "abfss://dev-bucket@<storage-account>.dfs.core.chinacloudapi.cn/_checkpoint/dev_table"
(spark.readStream
.format("cloudFiles")
.option("cloudFiles.format", "json")
.option("cloudFiles.schemaLocation", checkpoint_path)
.load("abfss://autoloader-source@<storage-account>.dfs.core.chinacloudapi.cn/json-data")
.writeStream
.option("checkpointLocation", checkpoint_path)
.trigger(availableNow=True)
.toTable("dev_catalog.dev_database.dev_table"))