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

Databricks DLT SQL中stream与readStream函数解析及使用疑问

Databricks Delta Live Table SQL中stream()与readStream()的说明

核心关系

  • SQL中的readStream()和Python/Scala里的spark.readStream完全对应,都是用来定义流式数据源读取,构建增量处理的DLT管道。
  • stream()是readStream()的简化别名,二者功能完全一致,没有任何差异,只是写法更简洁。

SQL用法与参数

在DLT的SQL语法中,这两个函数用来包裹数据源路径或表名,声明以流式方式读取:

  • 读取外部流式数据源(如云存储文件流):
CREATE STREAMING LIVE TABLE raw_data
AS SELECT * FROM stream('/path/to/streaming/source');
-- 与下面写法等价
CREATE STREAMING LIVE TABLE raw_data
AS SELECT * FROM readStream('/path/to/streaming/source');
  • 读取DLT内部的流式上游表:
CREATE STREAMING LIVE TABLE cleaned_data
AS SELECT id, trim(name) AS name FROM stream(LIVE.raw_data);

参数可以通过OPTIONS子句传递,对应Spark结构化流的配置项,比如文件格式、触发规则等:

CREATE STREAMING LIVE TABLE raw_json_data
AS SELECT * FROM stream('/path/to/json/stream')
OPTIONS (
  format = 'json',
  inferSchema = 'true',
  maxFilesPerTrigger = '1'
);

官方定义说明

Databricks官方将stream()作为DLT SQL中的推荐简化写法,在示例文档中更常见,但readStream()同样被完全支持。二者底层依赖的是同一个流式读取逻辑,和Python API的spark.readStream属于同源实现,只是为SQL语法做了适配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 18:52:02