将指标视图与外部 BI 工具配合使用

可以通过任何基于 SQL 的连接从外部 BI 工具查询 Unity 目录指标视图 。 本页介绍连接模式及其之间的权衡,因此你可以为每个工具选择正确的方法。 选择方法后,请按照链接页执行配置步骤和限制。

选择方法

下表介绍了从 BI 工具查询指标视图的连接模式。

Pattern 何时使用
使用 MEASURE() 的自定义 SQL 该工具将 SQL 查询传递给Azure Databricks(例如,使用本机查询或自定义 SQL 选项)。 大多数 BI 工具都支持此方法。
包装视图 你希望避免在 BI 工具中编写 SQL。 你定义一个标准视图,用 MEASURE() 逻辑封装指标视图,然后像处理其他表一样将工具指向该视图。
BI 兼容性模式 该工具无法将自定义 SQL 查询传递给Azure Databricks,而是针对度量值列生成标准聚合(SUMCOUNT)。 Azure Databricks重写生成的查询以应用正确的度量逻辑。 有关受支持的方案、最佳做法和限制,请参阅 具有 BI 兼容性模式的查询指标视图

使用自定义 SQL 查询指标视图

指标视图查询中的所有度量值都必须使用 MEASURE 聚合函数(或 Databricks Runtime 18.1 及更高版本中的 AGG 别名)。 必须显式列出每个列,因为 SELECT * 不支持。 以下查询是规范模式,适用于支持 SQL 传递的任何 BI 工具:

SELECT
  `Order Month`,
  MEASURE(`Total Revenue`),
  MEASURE(`Order Count`)
FROM main.sales.orders_metric_view
GROUP BY ALL;

有关其他查询模式,包括筛选和联接其他表的指标视图结果,请参阅 查询指标视图

通过包装器视图查询指标视图

如果您不想在 BI 工具中编写 SQL,请在 Unity Catalog 中定义一个标准视图,按 MEASURE() 模式封装指标视图。 视图嵌入度量值逻辑,因此 BI 工具可以像没有自定义 SQL 的任何其他表一样对其进行查询。 这适用于任何可连接到 Unity 目录表的工具,包括Power BI。

CREATE VIEW main.sales.orders_report AS
SELECT
  `Order Month`,
  MEASURE(`Total Revenue`) AS `Total Revenue`,
  MEASURE(`Order Count`) AS `Order Count`
FROM main.sales.orders_metric_view
GROUP BY ALL;

将 BI 工具指向包装视图(例如 main.sales.orders_report),并直接查询它。 由于标准视图定义了一组固定维度,因此请为报表所需的每个维度组合创建包装视图。

工具专用指南

下表汇总了常见 BI 工具的建议方法。

工具 建议的方法
Power BI 在 DirectQuery 模式下,将 Azure Databricks Power BI 连接器的 本机查询 选项与 MEASURE() 模式 结合使用。 请参阅 本机 SQL 查询。 Power BI连接器中不再提供 BI 兼容模式。 有关详细信息和建议的替代方法,请参阅 “要求”。
Tableau 将 Tableau 的“自定义 SQL”连接选项与MEASURE() 模式配合使用,或者在连接对话框的“初始 SQL”字段中启用BI 兼容模式
西格玛 使用由自定义 SQL 支持的 Sigma 数据集和MEASURE()模式
其他 JDBC 或 ODBC 工具 通过工具的直通 SQL 选项使用MEASURE() 模式。 请参阅 使用 Databricks JDBC 驱动程序处理指标视图元数据 ,了解如何向 JDBC 和 ODBC 客户端公开指标视图元数据。

后续步骤