Important
此功能在 Beta 版中。 联系 Databricks 帐户团队,在帐户中启用此功能。
Lakehouse//RT 正在积极开发中。 在正式发布之前,性能特征和支持的功能集将发生变化。
Lakehouse Real-Time(Lakehouse//RT)是一种无服务器计算,专为低延迟、高并发用例而构建,例如为自定义应用程序提供分析数据、运行操作分析或支持需要数十到数千个并发用户的次秒响应的 BI 仪表板。
Lakehouse//RT 针对存储在云存储中并采用 Delta Lake 或 Apache Iceberg 格式的 Unity Catalog 表,可提供低于亚秒级的 SQL 读取查询延迟。 创建和管理 Lakehouse//RT 非常类似于执行其他 SQL 仓库。 工作区管理员或特权用户为每个工作区创建一个或多个,并向用户分配权限。
Requirements
若要使用 Lakehouse//RT,必须:
- 位于 受支持的区域中。
- 在工作区中启用 Lakehouse//RT Beta。
在工作区中启用 Lakehouse//RT
工作区管理员可以在工作区中启用 Lakehouse//RT Beta:
- 在工作区菜单(右上角)中,转到 “预览”。
- 搜索 Lakehouse RT。
- 启用预览。
启用预览后, 实时 仓库类型在工作区的 SQL 仓库创建流中可用。
创建 Lakehouse//RT 仓库
要创建 Lakehouse//RT 仓库: 请按以下步骤操作:
- 转到 计算>SQL 仓库>创建 SQL 仓库。
- 选择 “实时”。
- 根据查询所需的性能,选择大小: 小型、 中、 大或 X-Large。
- 输入仓库的名称。
- 单击 “创建” 。
若要分配权限,请授予 Can 使用、 可以监视或 可以管理 给用户和组的权限,与 SQL 仓库相同。
注释
当前无法将现有 SQL 仓库升级到 Lakehouse//RT 或将现有 Lakehouse//RT 仓库降级为其他仓库类型。
监控 Lakehouse//RT 活动
您可以像监控在 SQL 仓库上运行的任何查询一样监控 Lakehouse//RT 查询:
- 查询历史记录: Lakehouse//RT 查询显示在 查询历史记录 UI 和 查询历史记录系统表中。
- 查询分析:在查询历史记录 UI 中打开一个 Lakehouse//RT 查询,以查看其 查询分析。
- 监视页: 在每个 Lakehouse//RT 仓库的 监视页上 监视查询吞吐量、排队查询和查询历史记录。
-
计费: Lakehouse//RT 的使用情况在计费系统表中,其
sku_name为Lakehouse_Serverless。
最佳做法
若要从 Lakehouse//RT 获得最佳结果,请在将工作负载移出之前做好准备:
- 首先在无服务器 SQL 上验证。 在无服务器 SQL 仓库上运行查询,并确认查询在几秒钟内运行。
- 使用 Unity Catalog 管理的表。 采用 预测性优化 和 Liquid 聚类 的托管表可确保根据您的工作负载模式对数据进行良好的聚类。
- 验证查询是否具有选择性。 要实现亚秒级延迟,请确认查询扫描的数据量更少。 尽早使用
WHERE子句进行过滤,只选择所需的列,并尽量利用聚合。 支持跨表联接,但如果发现查询变得复杂或速度缓慢,请考虑使用预先聚合数据的具体化视图来加快延迟。 - 检查 SQL 覆盖范围。 Lakehouse//RT 仅支持符合 ANSI 的读取查询。 确认工作负荷符合 ANSI, 并避免“ 限制”下列出的不受支持的语句、函数和数据类型。
支持的功能
工具和接口
你可以在以下任一 Azure Databricks 功能中的计算选择器中选择 Lakehouse//RT:
- SQL 编辑器
- SQL 笔记本
- AI/BI 仪表板
- 目录资源管理器
- Alerts
表类型
Lakehouse//RT 仅查询 Unity 目录数据。 为了获得最佳性能,请使用 Unity 目录托管表,该表为引擎提供低延迟所需的数据布局。
Lakehouse//RT 支持下表类型:
- 托管表(Delta Lake 和 Apache Iceberg 表)
- 具体化视图和流式处理表
- 指标视图
Connectivity
Lakehouse//RT 仅接受使用 语句执行 API 的连接。 它不支持旧的 Thrift 协议,因此在不显式使用语句执行 API 的情况下进行连接的驱动程序会收到错误 501 。
可以通过以下方式连接到 Lakehouse//RT 仓库:
- 语句执行 API: 直接从外部应用程序调用 API。 请参阅 语句执行 API:在仓库上运行 SQL。
-
Databricks SQL 驱动程序: 将以下驱动程序配置为使用语句执行 API 时,可以连接这些驱动程序。 将驱动程序的 HTTP 路径指向 Lakehouse//RT 仓库,然后设置以下选项:
-
用于Python的 Databricks SQL 连接器:设置
use_kernel=True。 -
用于 Node.js的 Databricks SQL 驱动程序 : 设置
useKernel: true。 -
JDBC: 在连接 URL 中设置
UseThriftClient=0。
-
用于Python的 Databricks SQL 连接器:设置
Pricing
有关定价信息,请参阅 Lakehouse Real-Time 定价 页。
Limitations
当查询使用不支持的功能时,Lakehouse//RT 将返回一个错误来命名该功能。 若要成功运行查询,请改用无服务器 SQL 仓库。
工具和功能
Lakehouse//RT 尚不支持以下功能:
- Genie
- Genie 代理
- 作业任务
表类型
尚不支持下表类型:
- 系统表
- Delta Sharing 表
- Unity Catalog 默认存储中的表
- Unity Catalog 中的外部表
Lakehouse//RT 不支持下表类型:
- Hive 元存储表(托管或外部)
- 外部表和查询联合 (Lakehouse Federation)
- 临时表
- 使用其他数据格式的表(CSV、JSON、Avro、Parquet、ORC 和文本)
驱动程序和连接器
Lakehouse//RT 不支持以下驱动程序和连接器:
- ADBC
- ODBC
- Go
SQL 语言
Lakehouse//RT 仅在 ANSI 模式下 运行 SQL 读取查询。
Lakehouse//RT 不支持以下各项:
-
数据类型:和
GEOGRAPHYGEOMETRY数据类型。 - 功能:AI 函数、Python UDF、空间 SQL 函数和 XPath 和 XML 函数。
- 治理: 基于属性的访问控制(ABAC),包括行级别安全性和列掩码。
Lakehouse//RT 仅适用于读取(SELECT)查询。 不支持写入命令和 ETL 命令,包括:
-
写入操作:
INSERT、、UPDATEDELETE、MERGE和CREATE TABLE AS SELECT(CTAS)。 - 创建或修改对象的 DDL:
CREATE、、ALTERDROP、 和其他语句。 -
安全语句:
GRANT和REVOKE. - 脚本、存储过程、临时表和多语句事务。
-
Delta Lake 维护:
OPTIMIZE、ANALYZE、VACUUM和REFRESH。
网络安全
Lakehouse//RT 尚不支持以下网络配置:
Compliance
目前不支持合规性安全配置文件。
已知问题
- Lakehouse//RT 采用与其他 SQL 仓库类型不同的隐式类型强制转换规则和类型转换规则。 依赖于隐式类型转换(例如比较字符串和数字、对字符串值执行算术或跨不兼容类型使用
COALESCE)的查询可以返回不同的结果类型或值,或者失败。 若要获取可预测的结果,请使用显式CAST表达式。