本文介绍PolarDB PostgreSQL版知识平台的DataProbe引擎功能,包括数据集管理、语义建模、知识库增强和数据问答的操作说明。
功能概览
DataProbe面向结构化数据分析场景。您可以连接业务数据库,同步表结构、字段信息和表关系,并通过自然语言提问生成SQL,查看查询结果、图表和分析说明。对于业务状态码、指标口径、字段含义等数据库结构中无法直接表达的信息,可以通过知识库增强提升问答准确性。
DataProbe包含以下核心概念:
概念 | 说明 |
数据集 | DataProbe访问业务数据库的连接配置。一个数据集对应一个数据库或指定Schema下的业务数据。 |
语义模型 | 从数据集中同步得到的表、字段、字段类型和表关系信息,用于辅助系统理解自然语言问题并生成SQL。 |
SQL Pairs | 自然语言问题和SQL的示例对,适合沉淀高频、固定口径的查询。 |
指令 | 业务规则、指标定义、字段含义或状态码说明,适合补充全局业务口径。 |
数据问答 | 基于语义模型和知识增强内容,将自然语言问题转换为SQL并返回查询结果。 |
DataProbe的典型使用流程如下:
创建数据集。
同步语义模型。
配置SQL Pairs或指令。
发起数据问答并查看结果。
数据集
数据集用于保存DataProbe访问业务数据库所需的连接信息。创建数据集后,DataProbe可以读取指定数据库和Schema中的表结构。
创建数据集
在左侧导航栏中,选择DataProbe > 数据集。
单击新建数据集。
配置数据源连接信息,参数说明如下:
参数
说明
示例
数据集名称
数据集展示名称。
Sales Demo
数据库类型
数据源类型。
PostgreSQL、PolarDB PostgreSQL主机地址 (Host)
数据库访问地址。
pc-xxxxx.polardbpg.rds.aliyuncs.com端口 (Port)
数据库端口。
5432数据库名 (Database)
需要连接的数据库名称。
sales_demo用户名 (Username)
数据库用户名。
postgres密码 (Password)
数据库密码。
********
Schema
需要同步的Schema。
sales单击创建。
在数据集列表中单击测试按钮测试是否可连接成功。
建议为DataProbe配置只读数据库账号,避免误操作业务数据。
管理数据集
在数据集列表中,您可以查看、编辑或删除已有数据集。删除数据集会移除该数据集在DataProbe中的连接配置和相关语义信息,不会删除业务数据库中的原始数据。
语义建模
语义建模用于将数据库中的表、字段和关系同步到DataProbe。同步完成后,系统可以基于语义模型理解用户问题,并生成对应SQL。
同步语义模型
在左侧导航栏中,选择DataProbe > 语义建模。
选择目标数据集。
单击同步结构或同步语义模型。
查看同步后的表、字段和关系信息。
同步完成后,建议检查以下内容:
是否展示目标Schema下的业务表。
字段名称、字段类型是否正确。
表关系是否符合业务预期。
如果业务数据库新增、删除或修改表字段,请重新同步语义模型。
知识库增强
知识库增强用于补充数据库结构中无法直接表达的业务知识,例如业务状态码、指标口径、字段含义和常用查询模式。DataProbe支持以下两种增强方式:
增强方式 | 说明 | 适用场景 |
SQL Pairs | 维护自然语言问题和SQL的示例对。 | 高频查询、固定统计口径、标准报表类问题。 |
指令 | 维护业务规则、指标定义、状态码说明或字段含义。 | 净销售额、有效订单、状态码映射等业务口径。 |
SQL Pairs和指令的区别
您可以根据业务问题的稳定程度选择增强方式:
如果问题和SQL基本固定,建议使用SQL Pairs。SQL Pairs适合沉淀高频查询、标准报表类查询和固定统计口径。
如果问题涉及业务口径解释,建议使用指令。指令适合补充状态码、指标定义、字段含义和表关系说明。
如果同一业务口径会影响多个问题,建议配置为全局指令。全局指令会作为通用业务知识参与问答。
如果只希望某条规则作用于特定问题,建议配置为非全局指令,并绑定适用问题。
添加SQL Pairs
在左侧导航栏中,选择DataProbe > 知识库。
选择SQL Pairs页签,单击添加。
配置以下参数:
参数
说明
问题
用户可能输入的自然语言问题。
SQL
与问题对应的标准SQL。
单击保存。
添加指令
在左侧导航栏中,选择DataProbe > 知识库。
选择指令页签,单击添加指令。
配置以下参数:
参数
说明
示例
指令内容
业务规则、指标定义或状态码说明。
S10表示有效收入订单,S20表示退款订单,S90表示无效订单。
全局指令
开启后,该指令会应用于相关问答。
开启
适用问题
非全局指令可绑定部分问题,用于更精确地触发。
各城市净销售额是多少?
单击保存。
数据问答
数据问答用于通过自然语言查询结构化数据。系统会根据已同步的语义模型、SQL Pairs和指令生成SQL,执行查询并返回结果。
发起数据问答
在左侧导航栏中,选择DataProbe > 数据问答。
选择目标数据集。
在输入框中输入业务问题。
单击发送。
查看回答、SQL、数据和图表结果。
结果区域包含以下信息:
区域 | 说明 |
回答 | 基于查询结果生成的自然语言说明。 |
SQL | 系统生成并执行的SQL。 |
数据 | SQL查询返回的表格结果。 |
图表 | 根据查询结果生成的可视化图表。 |
思考过程 | 展示问题理解、模型检索和SQL生成过程。 |
查看问答结果
如果回答结果不符合业务预期,您可以按照以下顺序排查:
查看生成的SQL是否符合统计口径。
查看语义模型中的表、字段和关系是否正确。
检查是否需要补充SQL Pairs或指令。
确认业务数据库中的数据是否符合查询条件。
常见问题和处理建议如下:
问题 | 可能原因 | 处理建议 |
连接失败 | 数据源地址、端口、账号、密码或网络配置异常。 | 检查数据集连接信息,并确认数据库账号具备访问目标库和Schema的权限。 |
同步不到表 | Schema配置不正确,或数据库账号无表结构读取权限。 | 检查数据集中的Schema配置,确认目标业务表存在且账号具备元数据读取权限。 |
无法生成SQL | 语义模型未同步,或问题中涉及的表字段未被识别。 | 重新同步语义模型,并确认目标业务表已展示。 |
查询结果为空 | SQL过滤条件与业务数据不匹配,或问题中的业务口径未说明。 | 查看SQL和数据页签,确认过滤条件是否正确。 |
结果与业务预期不一致 | 状态码、指标口径或字段含义缺少说明。 | 在知识库中补充指令,或为高频问题配置SQL Pairs。 |
SQL执行失败 | 表名、字段名、Schema或数据库权限异常。 | 检查数据集连接信息、Schema配置和数据库账号权限。 |
图表展示不符合预期 | 查询结果字段不适合当前图表类型。 | 调整问题描述,或查看数据页签确认返回字段。 |
在排查问答问题时,建议优先查看SQL页签。SQL可以帮助判断问题出在语义理解、业务口径还是底层数据。
权限与安全
DataProbe页面和接口均需要登录后访问。未登录访问DataProbe页面时,会跳转到登录页面。未携带有效认证信息调用DataProbe接口时,请求会被拒绝。
DataProbe访问业务数据库时,会使用数据集中配置的数据库账号。为降低安全风险,建议遵循以下原则:
使用只读账号连接业务数据库。
仅授权DataProbe访问需要分析的数据库和Schema。
避免在数据集名称、指令或SQL Pairs中填写敏感信息。
如果业务数据库权限发生变化,请重新测试数据集连接。
删除DataProbe数据集只会删除平台侧连接配置和相关语义信息,不会删除业务数据库中的原始数据。
使用建议
当业务库结构发生变化时,请重新同步语义模型。
对于固定口径的高频问题,建议配置SQL Pairs。
对于状态码、指标定义、字段含义等业务知识,建议配置指令。
建议使用只读账号连接业务数据库,降低数据安全风险。