配置 Lakeflow 管道以将数据发布到旧的 Hive 元存储,包括存储位置、云存储访问和事件日志。 Databricks 建议对所有新管道使用 Unity Catalog。 请参阅 将 Unity Catalog 与管道结合使用。
注释
本文讨论管道当前默认发布模式的功能。 在 2025 年 2 月 5 日之前创建的管道可能使用旧版发布模式和 LIVE 虚拟架构。 请参阅 LIVE 架构(旧版)。
在 Hive 元存储中查询流式表和物化视图
更新完成后,可以查看架构和表、查询数据或使用下游应用程序中的数据。
发布管道表后,可以从有权访问目标架构的任何环境查询管道表。 这其中包括 Databricks SQL、笔记本以及其他 Lakeflow 管道。
重要
创建 target 配置时,只会发布表和关联的元数据。 视图不会发布到元存储。
配置管道以发布到 Hive 元存储
若要发布到旧版 Hive 元存储,请在创建新管道时选择“高级”选项下的“使用 Hive 元存储”(可能需要选择“查看更多”以查看该选项)。 发布到 Hive 元存储时,必须指定默认目标架构。 请参阅 “配置管道”。
指定存储位置
可以为一个将内容发布到 Hive 元存储的管道指定存储位置。 指定位置的主要目的是控制管道写入的数据的对象存储位置。 Databricks 建议始终指定存储位置,以避免写入 DBFS 根目录。
由于 Lakeflow 管道完全管理所有表、数据、检查点和元数据,因此与管道数据集的大多数交互都通过注册到 Hive 元存储或 Unity 目录的表进行。
云存储配置
若要访问 Azure 存储,必须使用群集配置中的 spark.conf 设置配置所需的参数(包括访问令牌)。 有关配置对Azure Data Lake Storage(ADLS)存储帐户访问的示例,请参阅使用管道中的机密安全地访问存储凭据。
处理 Hive 元存储管道的事件日志
如果管道将表发布到 Hive 元存储,则事件日志存储在 /system/events 位置下的 storage 中。 例如,如果已将管道 storage 设置配置为 /Users/username/data,则事件日志存储在 DBFS 的 /Users/username/data/system/events 路径中。
如果尚未配置 storage 设置,则默认的事件日志位置为 DBFS 中的 /pipelines/<pipeline-id>/system/events。 例如,如果管道的 ID 为 91de5e48-35ed-11ec-8d3d-0242ac130003,则存储位置为 /pipelines/91de5e48-35ed-11ec-8d3d-0242ac130003/system/events。
可以创建视图以简化对事件日志的查询。 以下示例创建一个名为 event_log_raw 的临时视图。 此视图用于本文中包含的示例事件日志查询:
CREATE OR REPLACE TEMP VIEW event_log_raw
AS SELECT * FROM delta.`<event-log-path>`;
请将 <event-log-path> 替换为事件日志位置。
管道运行的每个实例称为更新。 你通常需要提取有关最近更新的信息。 运行以下查询以查找最新更新的标识符,并将其保存在 latest_update_id 临时视图中。 此视图用于本文中包含的示例事件日志查询:
CREATE OR REPLACE TEMP VIEW latest_update AS
SELECT origin.update_id AS id
FROM event_log_raw
WHERE event_type = 'create_update'
ORDER BY timestamp DESC
LIMIT 1;
可以在 Azure Databricks 笔记本或 SQL 编辑器中查询事件日志。 使用笔记本或 SQL 编辑器运行示例事件日志查询。
没有 Unity 目录的工作区的管道源代码笔记本示例
可以将以下笔记本导入到未启用 Unity 目录的Azure Databricks工作区中,并使用它们部署 Lakeflow 管道。 使用“Hive 元存储”存储选项配置管道时,导入所选语言的笔记本,并在“源代码”字段中指定路径。 请参阅 “配置管道”。