You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Databricks Delta Live Table管道执行建表查询时出错

Delta Live Tables 创建失败排查方案(空流水线错误)

执行以下SQL创建LIVE TABLE时:

CREATE LIVE TABLE phonenumbers_clean(
  CONSTRAINT valid_phone_present EXPECT (valid_phone_number IS NOT NULL)
)
COMMENT "Clean Phone Numbers."
AS 
SELECT 
phone_number_validation_udf(Phone_Numbers) as valid_phone_number 
FROM hive_metastore.abc.phonenumbers

持续收到错误:

com.databricks.pipelines.execution.core.ExecutionFailedException: You attempted to update an empty pipeline. This error usually means no tables were discovered in your specified source code. Please verify that your source code includes table definitions.

注:phone_number_validation_udf已定义,hive_metastore.abc.phonenumbers为存储手机号的表,以下是排查解决方法:

  • 检查代码文件与流水线的路径匹配
    确认你的SQL代码文件存放在DLT流水线配置的源代码目录下。如果文件不在指定路径,DLT无法扫描到表定义,直接触发空流水线错误。核对流水线配置中的"源代码路径",确保.sql文件在该路径(含子目录)内。

  • 验证LIVE TABLE语法正确性
    排查SQL语法细节:

    • 确认CREATE LIVE TABLE关键字拼写无误(无漏写、错写);
    • 检查约束语句CONSTRAINT valid_phone_present EXPECT (valid_phone_number IS NOT NULL)的括号、关键字是否正确,无语法错误。
  • 确认源表的访问权限与可用性

    • 确保执行流水线的账号拥有hive_metastore.abc.phonenumbers表的SELECT权限,权限不足会导致DLT无法识别源表,进而认为无有效表定义;
    • 单独执行SELECT * FROM hive_metastore.abc.phonenumbers LIMIT 10测试能否读取数据,排除源表不可用的问题。
  • 校验UDF的上下文可用性
    虽然phone_number_validation_udf已定义,但要确保它在DLT流水线的上下文里可访问:

    • 若为SQL UDF,需确认UDF定义也在DLT源代码目录中,或已提前注册到集群;
    • 若为Python UDF,需确认对应Python文件在流水线源代码路径内,或已安装到集群环境;
    • 可临时将UDF替换为简单表达式(比如直接返回Phone_Numbers),测试能否成功创建表,排除UDF导致的解析失败。
  • 检查流水线与集群配置

    • 首次运行时确认流水线的运行模式(连续/触发)选择正确,避免模式不兼容导致的解析问题;
    • 尝试使用默认集群配置重新创建流水线,排除自定义集群配置(如版本过低、缺少依赖)引发的错误。

内容的提问来源于stack exchange,提问作者Lisa Sen Iyer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 22:18:24