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

如何使用Azure Synapse无服务器SQL池查询Delta Lake表的最新版本

Azure Synapse无服务器SQL池查询Delta Lake最新版本实操方法

官方说明原文:"You can use serverless SQL pool to query the latest version of Delta Lake"

无服务器SQL池查询Delta Lake时默认读取的就是表的最新版本,无需额外指定版本参数,以下是两种常用场景的实操示例:

场景1:即席查询(无需提前创建表对象)

直接通过OPENROWSET指定Delta格式即可查询,示例如下:

SELECT TOP 10 *
FROM OPENROWSET(
    -- 替换为你的Delta表在ADLS Gen2的根目录路径
    BULK 'abfss://<容器名>@<存储账户名>.dfs.core.windows.net/<Delta表目录路径>/',
    FORMAT = 'DELTA'
) AS delta_latest_version

场景2:预创建外部表后查询

如果需要高频查询该Delta表,可提前创建指向Delta存储的外部表,后续直接查询外部表即可默认返回最新版本数据:

  • 第一步:先创建Delta格式的外部文件格式(如果未创建过)
CREATE EXTERNAL FILE FORMAT DeltaFileFormat
WITH (
    FORMAT_TYPE = DELTA
);
  • 第二步:创建外部表
CREATE EXTERNAL TABLE dbo.your_delta_table
(
    -- 替换为你的Delta表对应的字段和字段类型
    id INT,
    username VARCHAR(100),
    create_time DATETIME2
)
WITH (
    LOCATION = '<Delta表目录路径>/', -- 替换为Delta表根目录的相对路径
    DATA_SOURCE = <你提前创建的ADLS外部数据源名称>,
    FILE_FORMAT = DeltaFileFormat
)
GO
  • 第三步:直接查询外部表获取最新版本数据
SELECT * FROM dbo.your_delta_table

补充说明

仅当你需要查询历史版本数据时,才需要额外指定DELTAVERSION(按版本号查询)或DELTATIMESTAMP(按时间戳查询)参数,示例如下:

-- 查询版本号为5的历史版本数据
SELECT *
FROM OPENROWSET(
    BULK 'abfss://<容器名>@<存储账户名>.dfs.core.windows.net/<Delta表目录路径>/',
    FORMAT = 'DELTA',
    DELTAVERSION = 5
) AS delta_history_version

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 06:24:05