可以通过任何基于 SQL 的连接从外部 BI 工具查询 Unity 目录指标视图 。 本页介绍连接模式及其之间的权衡,因此你可以为每个工具选择正确的方法。 选择方法后,请按照链接页执行配置步骤和限制。
选择方法
下表介绍了从 BI 工具查询指标视图的连接模式。
| Pattern | 何时使用 |
|---|---|
使用 MEASURE() 的自定义 SQL |
该工具将 SQL 查询传递给Azure Databricks(例如,使用本机查询或自定义 SQL 选项)。 大多数 BI 工具都支持此方法。 |
| 包装视图 | 你希望避免在 BI 工具中编写 SQL。 你定义一个标准视图,用 MEASURE() 逻辑封装指标视图,然后像处理其他表一样将工具指向该视图。 |
| BI 兼容性模式 | 该工具无法将自定义 SQL 查询传递给Azure Databricks,而是针对度量值列生成标准聚合(SUM,COUNT)。 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 客户端公开指标视图元数据。 |