如何将Delta Live Table(DLT)发布至hive_metastore以外的目录
解决Delta Live Table发布到指定目录数据库的问题
以下是几种可行的方案,无需依赖界面的目录选择项:
预先创建关联指定目录的数据库
先在Databricks中用SQL创建绑定目标目录的数据库,之后在DLT界面的目标字段填写该数据库名称即可。示例SQL:CREATE DATABASE IF NOT EXISTS target_db LOCATION 'dbfs:/path/to/your/custom/directory' -- 替换为你的目标目录路径该数据库下的所有DLT表都会默认存储在指定的LOCATION路径中。
在DLT表定义中直接指定存储路径
若仅需个别表存到特定目录,可在定义LIVE TABLE时显式添加LOCATION参数,示例:CREATE LIVE TABLE specific_table LOCATION 'dbfs:/path/to/custom/table/path' -- 单独指定该表的存储路径 AS SELECT id, name FROM source_data该表仍会注册到你在DLT界面指定的目标数据库,但实际数据会存储在自定义路径下。
通过Pipeline高级配置全局指定仓库目录
若整个DLT pipeline的所有表都需放到同一自定义目录,可在Pipeline的「高级」配置中添加Spark参数:spark.sql.warehouse.dir=dbfs:/path/to/global/warehouse/directory所有未单独指定路径的表都会默认存储到这个全局目录,同时注册到目标数据库。
内容的提问来源于stack exchange,提问作者Shahrukh lodhi
相关产品推荐
相关产品推荐

