为更可靠的 Genie 空间构建知识存储

Genie 知识存储允许你通过本地化的元数据、值采样和结构化 SQL 指令来策展和增强空间。 这些功能可帮助 Genie 了解数据并生成更准确的相关响应。

什么是知识存储?

知识存储是特选语义定义的集合,可增强 Genie 对数据的了解并提高响应准确性。

知识存储包括:

  • 空间级元数据自定义:空间特定的表、列、业务术语及其同义词的说明
  • 空间级数据自定义:简化的集中数据集,无需更改基础 Unity 目录表
  • 值采样:帮助 Genie 了解数据类型并将用户提示与实际值匹配的实际数据示例
  • 联接关系:为准确的 JOIN 语句定义表关系
  • SQL 表达式:捕获业务逻辑的度量值、筛选器和维度的结构化定义

所有知识存储配置的范围都限定为 Genie 空间,不会影响 Unity 目录元数据或其他 Azure Databricks 资产。

管理知识存储元数据

通过提供本地表和列的描述,以及添加与常见业务术语一致的列同义词,帮助 Genie 了解您空间中的数据。 通过隐藏不必要的或重复的列来简化数据集,使 Genie 保持专注。

这些做法可提高对基础表没有直接权限的用户的可用性,并且它们还支持更新指令版本时的更快速迭代。

若要访问空间级元数据,请单击 Genie 空间中的 “配置 > 数据 ”。 然后单击表名以查看其元数据和列。

查看列

单击表名可查看列名称和详细信息的概述。 下面的示例展示了一个名为accounts的表中的样本。

表格概述,显示元数据说明和列详细信息,如下所述。

  • 描述: Genie 使用元数据来了解数据并生成准确的响应。 默认表说明显示与您的数据资产关联的 Unity Catalog 元数据。 可以编辑此描述,以添加帮助 Genie 为您的空间生成 SQL 的特定指导。 单击 “重置” 以还原 Unity 目录说明。

  • 列: 列名和说明包含在列列表中。 每个列都标有标记,这些标记显示它是否包括 示例值值字典。 请参阅 值采样概述

隐藏或显示相关列

可以单独或批量管理列。 使用以下说明隐藏或显示列。

  • 隐藏单个列:单击列名称旁边的 “眼睛”图标
  • 隐藏多个列
    • 选中要隐藏的列的复选框。
    • 操作 菜单中,选择隐藏所选列
  • 撤消更改:重复相同的步骤以显示隐藏的列。

编辑列元数据

可以为每个列自定义以下内容:

  • 说明:空间特定的列说明,增强了 Genie 的理解能力。
  • 同义词:帮助将用户语言与列名称匹配的业务术语和关键字。
  • 高级设置:值采样控件。
    • 示例值:打开或关闭代表性值的自动采样。
    • 生成值字典:启用或禁用分类列的值字典。

编辑列元数据:

  1. 单击列名称旁边的铅笔图标
  2. 编辑列的说明和同义词。
  3. 如有必要,请单击 “高级设置” 以打开值采样控件。
  4. 单击“ 保存” 以保留更改并关闭对话框。

值采样概述

值采样通过收集具有代表性的示例增强了 Genie 了解和处理实际数据的能力。

值采样通过提供对实际数据值的访问来提高 Genie 的 SQL 生成。 当用户在对话中提出拼写错误或使用不同术语的问题时,值采样功能帮助 Genie 将这些提示与表中的实际数据值进行匹配。

值采样组件

  • 示例值:帮助 Genie 了解数据类型和格式的每一列的小示例。 系统会自动为所有符合条件的列收集这些信息。
  • 值字典:每个列最多包含 1,024 个非重复值(每个列少于 127 个字符)的特选列表。 为最多 120 列创建,其中包含分类或一致格式的字符串值,例如状态、产品类别或状态代码。

包含行筛选器或列掩码的表从值采样中排除。

管理值采样

控制哪些列提供示例值和值字典,以优化 Genie 对数据的理解。 默认情况下,所有 Genie 空间都启用值采样。

管理示例值

将表添加到 Genie 空间时,会自动添加示例值。

若要禁用列的示例值,请执行以下操作:

  1. 在 Genie 空间中单击“配置”>“数据”。
  2. 单击表名可查看其列。
  3. 单击 铅笔图标。 列名称旁边的铅笔图标。
  4. 单击 “高级”
  5. 关闭 示例值

此操作会自动禁用该列的值字典生成功能。 如有必要,请使用此设置重新打开 示例值

配置值字典

将数据添加到空间时,Genie 会自动选择列进行值采样。 可以手动管理已启用值字典的列。 选择具有分类或结构化值的字符串列以获得最佳结果。 避免使用自由文本列,例如用户 ID、名称或用户评论。

Genie 阻止对具有 行筛选器或列掩码的表启用值字典。 但是,空间开发者必须为引用包含行筛选器或列掩码的表的视图,或者为动态视图禁用值字典。

以下列表包括适用于值字典的数据类型的示例:

  • 州或国家/地区代码
  • 产品类别
  • 状态代码
  • 部门名称

若要启用值字典,请:

  1. 单击 铅笔图标。 列名称旁边的铅笔图标。
  2. 单击 “高级”
  3. 开启构建值字典

右侧具有值字典按钮的字符串列。

刷新示例值

刷新示例值会重新查询您的数据,并收集新的示例值和值字典。

应在以下情况下刷新示例值:

  • 已将新值添加到列
  • 现有值的格式已更改

更新存储的值:

  1. 单击 “Kebab 菜单”图标。 列视图中的 kebab 菜单
  2. 选择“刷新示例值

刷新值或删除 UI 中的值选项

定义联接关系

帮助 Genie 通过定义表关系来创建准确的 JOIN 语句:

  1. 单击“加入”。
  2. 单击 添加
  3. 从下拉菜单中选择左表和右表。
  4. 输入 联接条件 (例如 accounts.id = opportunity.accountid
    • (可选)对于更复杂的联接条件,请使用 SQL 表达式。 单击 “使用 SQL 表达式”,然后将联接条件记录为 SQL 表达式。
  5. 选择 关系类型
    • 多对一:多个左行映射到一个右行
    • 一对多:一个左行映射到多个右行
    • 一对一:左表中的一行最多映射到右表中的一行

显示一个已标识联接关系的联接说明

注释

使用相同的表或自联接之间存在多个联接时,Genie 会自动生成右侧表的别名以避免歧义。

从反馈中获取建议

当用户在联接表或使用 SQL 表达式的消息上单击大拇指时,Genie 会分析响应,并可以建议新的 SQL 代码段(例如度量值、联接或筛选器),以便空间作者查看并添加到知识存储。 Genie 不会根据反馈自动了解或更改其行为。

定义 SQL 表达式

显示度量值、筛选器和维度的 SQL 表达式接口

SQL 表达式提供了一种结构化的引导式方法,用于向 Genie 介绍常见业务术语,例如 KPI、属性和条件。 然后,当用户询问这些细化定义时,Genie 可以使用这些细化定义。

SQL 表达式补充了说明中指定的 示例 SQL 查询。 虽然 SQL 表达式定义了可重用的业务概念,但示例 SQL 查询更有助于说明 Genie 如何处理常见的用户提示格式。 例如,如果用户通常要求“性能细分”,则示例 SQL 查询可以显示这意味着按区域、销售代表和经理关闭销售。

需要以下条件时,SQL 表达式最能正常工作:

  • 提供 KPI 和指标(如利润率或转换率)的结构化定义
  • 为 Genie 提供有关如何计算重要值的显式上下文
  • 为数据集定义其他维度,例如月份或客户细分
  • 为业务条件(例如大订单或在特定时间之前的订单)设置 Genie 筛选器

SQL 表达式类型

可以定义以下类型的 SQL 表达式:

  • 度量值:关键绩效指标(KPI)和指标。 定义名称、SQL 计算和同义词。
  • 筛选器:常见筛选条件。 定义名称、SQL 筛选器逻辑和同义词。
  • 维度:用于对数据进行分组和分析的属性。 定义名称、SQL 表达式和同义词。

使用以下说明定义 SQL 表达式:

  1. 单击“配置>说明>SQL 表达式
  2. 单击 添加。 选择 “筛选器”、“ 度量值”或 “维度”。
  3. “名称” 字段中,输入表达式的名称。
  4. “代码” 字段中,输入 SQL 表达式。
  • 筛选器表达式的计算结果应为布尔条件。
  • 度量值表达式应计算表中多个行的值的聚合。
  • 维度表达式应更改现有数据中每行的值。
  1. “同义词 ”字段中,输入用户可能引用这些表达式的常用方式。
  2. “说明” 字段中,输入特定说明,告知 Genie 表达式的用途以及如何使用它。

后续步骤

使用以下链接帮助你继续构建 Genie 空间。