创建和管理仪表板数据集

本文介绍如何使用 AI/BI 仪表板中的数据集编辑器创建和管理仪表板数据集。

定义数据集

若要定义或访问现有数据集,请单击仪表板左上角附近的 数据 选项卡。 有关每个仪表板可以包含的数据集数的信息,请参阅 仪表板限制。

注释

仪表板查询是只读查询。 诸如DESCRIBE、EXPLAIN、CREATE TABLE或INSERTDELETE不支持定义数据集等命令。 只有那些能够嵌入其他 SQL 语句中的查询才是有效的。

定义数据集:

  1. 单击仪表板左上角的“ 数据 ”选项卡。

  2. 选择以下选项之一:

    • 添加数据:使用此选项选择 Unity 目录对象、创建仪表板本地指标视图或上传文件:

      • 选择 Unity 目录对象:选择表、视图或指标视图作为数据源。 对于大多数表和视图,数据集由可以修改的默认 SELECT * 查询定义。 选择指标视图作为数据源时,数据集会显示在指标视图中定义的结果表和架构。 请参阅 “使用指标视图”。
      • 创建本地指标视图:使用可视界面定义限定在仪表板范围内的维度、度量值和联接,而无需发布到 Unity 目录。 查看 “本地指标视图” 和 “导出为指标视图”。
      • 上传文件:将新资产上传到 Unity 目录。 单击“ 上传文件 ”,然后选择 “目录”、“ 架构”和 “表名称”。 可以设置特定的 SQL 仓库来处理与此上传关联的计算。 还可以选择 创建新表 或 覆盖现有表。 必须在所选架构上具有 MANAGE 特权才能覆盖掉现有表。
    • 添加 SQL 数据集:使用此选项对任何数据源编写新的 SQL 查询。

添加 SQL 数据集

可以定义从任何可用数据源拉取的数据集。 在查询中,在查询本身中使用 完全限定的表名称 或从下拉列表选择器中选择目录和架构的组合以及查询中的表名称来标识数据源。 查询中的完全限定表名将替代编辑器中的目录和架构选择器。 如果表或列名称包含空格,请将这些标识符包装在 SQL 查询中的反引号中。

使用 SQL 限制数据集结果

仪表板查看器可以访问数据集中的所有数据,即使它未显示在可视化效果中。 若要防止在浏览器中公开敏感数据,请限制定义数据集的 SQL 查询中的列。 例如,不要从表中选择所有列,而只包括可视化效果所需的特定字段。

Databricks 建议:

  • 避免 SELECT *。 而是显式选择所需的列。
  • 使用 WHERE 子句或其他查询逻辑来确保仅包含所需的行。
  • 请注意参数在构造查询时如何扩展数据集访问。
  • 查看 结果表 中的模式,确保只有预期的字段可用。

使用指标视图

可以通过创建本地指标视图、选择 Unity 目录指标视图作为数据源或在 SQL 查询中引用指标视图,在仪表板中使用指标视图。

  • 创建本地指标视图:选择表或视图作为数据源时,将打开本地指标视图 UI。 使用可视界面定义在仪表板中的维度、度量值和联接,而无需发布到 Unity Catalog。 请参阅 本地指标视图。

  • 选择 Unity 目录指标视图作为数据源:直接选择指标视图时,数据集包括所有定义的维度和度量值。 不能修改数据集查询以排除列或应用筛选器。 可以添加自定义计算,以创建其他度量值或维度进行可视化。 请参阅什么是自定义计算?

  • 在查询中引用指标视图:可以像引用任何其他视图一样在 SQL 查询中引用指标视图。 如果要筛选或重塑数据集,请使用此方法。 必须使用 MEASURE 聚合函数访问所有度量值的指标视图。 请参阅 measure 聚合函数。

若要在创作仪表板时创建新的指标视图,请参阅 “导出”作为指标视图。

向指标视图传递参数

如果 Unity 目录指标视图定义了 参数,则引用 SQL 数据集中的指标视图,并将每个参数作为命名参数传递。 将指标视图作为表值函数调用,并使用运算符传递参数 => 。 用 MEASURE 函数包裹每个度量值,并将包含空格的度量值名称用反引号括起来。

以下查询引用了一个指标视图,该视图定义了一个 discount 参数以及 Discounted Sales 和 Total Sales 度量值。 它传递固定 discount 值 0.20,该值替代指标视图中设置的默认值:

SELECT
  MEASURE(`Discounted Sales`),
  MEASURE(`Total Sales`)
FROM catalog.schema.metric_view(discount => 0.20)

若要改用默认参数值,请省略参数。 有关查询定义参数(包括按位置传递参数和使用默认值)的指标视图的完整列表,请参阅 使用参数查询指标视图。

若要让查看者在运行时选择值,请将 仪表板参数 传递到指标视图参数而不是固定值。 在指标视图调用中,使用 :keyword 占位符引用仪表板参数。 在运行时,仪表板会将查看器的选定值替换为查询。

以下查询定义仪表板 discount 参数并将其传递到指标视图 discount 的参数中:

SELECT
  MEASURE(`Discounted Sales`),
  MEASURE(`Total Sales`)
FROM catalog.schema.metric_view(discount => :discount)

若要向查看者公开参数,请使用以下命令:

  1. 在 “数据 ”选项卡中,将 :discount 参数添加到数据集查询。 请参阅 向查询添加参数。
  2. 将筛选器小组件添加到仪表板画布并将其连接到 discount 参数。 请参阅 仪表板上的“显示参数”。

当查看者在筛选器小组件中选择一个值时,仪表板会用该值替换 :discount,然后重新执行查询。 如果未在仪表板上公开参数,查询将使用 “数据” 选项卡中的参数默认值。

管理数据集

定义数据集后,使用 Kebab 菜单图标。 数据集名称右侧的 kebab 菜单可访问以下选项:

  • 重命名:为数据集提供描述性名称,以便你和你的团队可以快速识别要编辑或审阅的查询。

  • 克隆:创建查询的就地副本。 克隆查询后,可以对其进行编辑。

  • 删除:删除数据集。 如果在画布上使用数据集,则此选项不可用。

  • Download:可以将数据集下载为 CSV、TSV 或Excel文件。

    菜单显示数据集选项

注释

画布上当前使用的数据集以带有蓝色图标的粗体文本显示,而未使用的数据集具有灰色图标和非加粗名称。

查看结果表

创建数据集时,查询会自动运行,结果会在编辑器下方的窗格中显示为表。 每列都包含一个指示其数据类型的图标。

对列值进行排序:

  • 将鼠标悬停在每个列上以显示 排序图标 排序图标。
  • 单击图标以升序或降序对值进行排序。

查看查询结果架构

若要查看已定义的数据集的架构,请单击 结果表右侧 架构。 架构 选项卡列出定义数据集中的所有字段。 每个字段都标有一个图表,表示列的数据类型。 如果基础表或视图包含注释,它们将显示在 架构 选项卡中。

从数据集生成视图

可以从数据集生成具体化视图和指标视图,以在整个工作区中保持一致性。

将数据集导出为具体化视图

可以将任何数据集导出为具体化视图。 具体化视图缓存查询结果并按指定计划刷新它们,这可以减少重复访问相同数据的查询执行时间。 请参阅 具体化视图。

将数据集导出为具体化视图:

  1. 单击烤肉串 菜单 Kebab 菜单图标。 要导出的数据集右侧。
  2. 选择 导出到物化视图。
  3. 在“ 导出到具体化视图 ”面板中,使用目录和架构下拉列表选择器选择具体化视图的存储位置。 这会影响谁可以访问和使用具体化视图。 请参阅 Unity Catalog 权限参考。
  4. (可选)选择运行物质化的SQL仓库。
  5. (可选)输入具体化视图的名称。 默认情况下,数据集标题将转换为有效的具体化视图名称。
  6. (可选)配置刷新计划和其他物化视图设置。
  7. 单击 “创建” 。

具体化视图是在指定的 Unity 目录位置创建的,可由工作区中的其他仪表板和查询使用。

注释

默认情况下,创建具体化视图时,系统会将其添加到到仪表板中。 若要创建未添加到仪表板的具体化视图,请在“导出到具体化视图”面板底部附近关闭“添加具体化视图到仪表板”。

导出为度量视图

重要

此功能目前以公共预览版提供。

指标视图 将复杂的业务逻辑抽象化为集中式定义,使组织能够定义关键绩效指标一次,并在各种报告图面上一致地使用这些指标。可以将数据集导出为指标视图。 如果已为现有数据集定义了度量值和维度,它们将自动显示在生成的指标视图定义中。

将数据集导出为指标视图

若要将数据集导出为指标视图,

  1. 单击数据集右侧的烤肉串菜单 Kebab 菜单图标。,该数据集是您希望导出为指标视图的。
  2. 在 “创建指标视图 ”面板中,使用目录和架构下拉列表选择器选择存储指标视图的架构和目录。 这会影响谁可以访问和使用指标视图。 请参阅 Unity Catalog 权限参考。
  3. (可选)输入指标视图的名称。 默认情况下,数据集标题根据命名要求转换为有效的指标视图名称。
  4. (可选)通过调整 YAML 定义 部分中生成的内容来编辑指标视图。
  5. 单击“ 保存”。

注释

默认情况下,创建仪表板时,会将指标视图添加到其中。 若要创建未添加到仪表板的指标视图,请关闭“创建指标视图”面板底部附近的“向仪表板添加指标视图”。

自定义计算

自定义计算提供了一种将计算应用于现有数据集的方法,而无需修改创建数据集的 SQL。 若要详细了解如何创建和使用自定义计算,请参阅什么是自定义计算?

编写多语句查询

有时,你可能想要使用多个 SQL 语句构造数据集。 若要运行多个语句,请使用分号结束每个语句(;)。 运行这些命令来创建数据集时,输出会显示编辑器中最后一条语句的结果。 此数据集用于画布上的任何相关可视化效果。

语句仅对发出它们的数据集有效。 例如,如果使用 USE 语句创建数据集来设置目录或架构,该设置仅适用于该数据集。

示例

以下示例演示了多语句查询的常见用途。

设置目录与架构

可编写一条 USE 语句以声明查询中表的目录和架构。 以下查询包含三条语句。 第一条设置目录名称。 第二个定义架构。 由于已设置目录和架构,因此 SELECT 语句仅引用表名。 请参阅 USE CATALOG。


USE CATALOG samples;
USE SCHEMA tpch;
SELECT * FROM customer;

设置 ANSI 模式

可以将查询设置为在 ANSI_MODE 设置为 TRUE 或 FALSE 的情况下运行。 对于 Databricks SQL,ANSI_MODE 的系统默认值为 TRUE。 请参阅 ANSI_MODE。

以下查询将 ANSI_MODE 设置为 FALSE,使无效的数据类型输入返回 NULL,而不是引发错误。

SET ANSI_MODE = FALSE;
SELECT cast('a' AS INTEGER);

将复杂查询参数化

可使用多条语句将公用表表达式或其他复杂查询的视图名称参数化。

以下查询创建两个临时视图。 SELECT 语句使用 IDENTIFIER 子句将输入字符串解释为表名。 请参见 IDENTIFIER 子句。

CREATE TEMPORARY VIEW v1 AS SELECT 1;
CREATE TEMPORARY VIEW v2 AS SELECT 2;
SELECT * FROM IDENTIFIER(:view_name)

设置变量

以下查询在第一条语句中声明一个变量和值。 第二个语句更改变量的值。 第三条语句会显示该变量的结束值为 5。 有关使用临时变量的详细信息和完整语法,请参阅 SET 变量。

DECLARE VARIABLE myvar1 INT DEFAULT 7;
SET VAR myvar1 = 5;
VALUES (myvar1);