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

如何获取Delta Live Table及Autoloader更新的外部Delta表检查点位置?

检查点位置查询指南(Delta Live Table与Autoloader)

一、获取Delta Live Table(DLT)的检查点位置

Delta Live Table的检查点默认关联流水线的存储位置,有两种查询方式:

  • 流水线配置页面直接查看

    1. 在Databricks工作区找到目标DLT流水线,进入其配置页面
    2. 找到「存储位置」(Storage location)字段,检查点默认存放在该路径下的system/checkpoints子目录,子目录下会按表/流名称细分具体的检查点文件
  • 通过DLT元数据系统表查询
    执行SQL查询获取流水线的存储位置,再拼接检查点路径:

SELECT pipeline_id, storage_location 
FROM system.dlt.pipelines 
WHERE pipeline_name = '你的流水线名称';

最终检查点路径为:[storage_location]/system/checkpoints/[表名或流名称]

二、Autoloader结合检查点更新外部Delta表的检查点位置查找

Autoloader的检查点由流作业启动时手动指定,而非存储在系统表中,以下是查询方式:

  • 查看流作业配置/代码
    Autoloader启动流时必须通过checkpointLocation参数指定检查点路径,示例代码如下:
(spark.readStream
  .format("cloudFiles")
  .option("cloudFiles.format", "csv")
  .load("s3://input-bucket/data")
  .writeStream
  .option("checkpointLocation", "/dbfs/checkpoints/external_table_checkpoint")  # 检查点路径
  .table("external_delta_table"))

该参数值即为检查点的实际存储路径(通常是DBFS或云存储路径)

  • 查看流作业历史与日志
    在Databricks「作业」页面找到目标流作业,进入详情页后,可在配置或运行日志中找到checkpointLocation的配置值

  • 查询活跃流的状态信息
    如果流仍在运行,可执行以下代码获取检查点位置:

for stream in spark.streams.active:
    progress = stream.lastProgress
    print(f"流名称: {stream.name}")
    print(f"检查点位置: {progress.get('checkpointLocation', '未找到')}")

关于SELECT * FROM sys.tables WHERE name LIKE 'databricks_streaming_checkpoint%'失效的说明

该SQL查询仅适用于Databricks托管的内部流表(即通过writeStream.table()创建的托管表,未指定外部路径),这类表会自动生成对应的检查点元数据表。而你使用Autoloader更新的外部Delta表,检查点路径是手动指定的独立存储路径,不会生成此类系统表,因此查询无结果。

内容的提问来源于stack exchange,提问作者Saito Mieko

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 19:00:17