如何为Databricks Delta Live Table配置cloud_files路径
Delta Live Table访问Azure Data Lake Storage的路径配置与权限说明
一、路径正确格式
cloud_files不能只写相对路径,必须使用Azure Data Lake Storage(ADLS Gen2)的abfss协议完整路径,格式如下:
abfss://<容器名>@<存储账户名>.dfs.core.windows.net/<文件所在的相对路径>
对应你的场景,正确路径应该写成:abfss://your-container-name@your-storage-account-name.dfs.core.windows.net/raw_data/customers.csv
把your-container-name和your-storage-account-name替换成你实际的容器名和存储账户名即可。
二、访问权限配置(无需在代码中写密钥)
不需要在cloud_files里直接写访问密钥,推荐用以下更安全的方式:
- Azure AD服务主体/托管身份:给Databricks使用的服务主体(或工作区托管身份)分配ADLS存储账户的
Blob数据读取者角色,Delta Live Table流水线会自动继承权限,无需额外配置。 - Spark配置项:在Delta Live Table流水线的高级设置里,添加Spark配置关联存储账户的访问密钥,比如:
这种方式不用把密钥写在SQL代码里,避免泄露风险。spark.conf.set("fs.azure.account.key.your-storage-account-name.dfs.core.windows.net", "your-access-key") - SAS令牌(不推荐):如果临时使用,可把SAS令牌拼在路径末尾,格式为:
但这种方式会暴露令牌,不适合生产环境。abfss://<容器名>@<存储账户名>.dfs.core.windows.net/raw_data/customers.csv?sas-token-string
三、修正后的示例代码
CREATE LIVE TABLE customers_raw COMMENTS "This is raw table" AS SELECT * FROM cloud_files("abfss://your-container@your-storage-account.dfs.core.windows.net/raw_data/customers.csv", "csv")
内容的提问来源于stack exchange,提问作者Atanu chatterjee
相关产品推荐
相关产品推荐

