Data Dive 数据查询与洞察

最近更新时间:2026-05-21 12:59:00

我的收藏

简介

Data Dive 是 DBAI 节点(TDSQL Boundless AI Node)提供的智能数据查询与洞察套件,面向跨库取数、运营分析与自动化报表场景。Data Dive 将数据查询、自然语言理解、趋势解读与可视化渲染整合为统一的服务能力,帮助用户在不编写复杂胶水代码的前提下,完成多源数据的关联查询与业务洞察输出。
Data Dive 不替换现有的 MySQL、PostgreSQL、MongoDB、Redis 实例,而是在其之上提供具备查询、推理与可视化能力的统一智能入口。

核心功能与优势

Data Dive 对外提供以下四项核心能力:
跨源关联查询:支持在同一条 SQL 语句中关联 MySQL、PostgreSQL、MongoDB、Redis 等多种数据源,实现跨库数据的统一查询与聚合计算;
自然语言转 SQL:将用户的自然语言问题转换为带 Schema 校验的可执行 SQL,支持复杂查询意图的理解与多源数据范围的自动匹配;
智能洞察:基于查询结果自动完成趋势分析、Top-N 排名、异常点识别与归因总结,以结构化格式(JSON / HTML)输出,可供 Agent 或后端系统直接消费;
可视化渲染:将查询结果与洞察结论一键生成可交互、可分享的可视化报表页面,支持嵌入前端、邮件或协作平台展示。
基于以上能力,Data Dive 具备以下功能优势:
数据零搬迁,原地查询:不引入额外 ETL 流程,不下沉至数仓。DBAI 节点通过适配层将各数据源挂载为本地表,原始数据保留在源库,物理隔离与权限边界始终不被打破;
统一 SQL 方言,多源一体:MongoDB 文档、Redis 键值、COS 上的 Parquet 文件均被映射为可查询的标准对象,关系型、文档型、键值型与文件型数据源通过一套 SQL 方言统一访问;
AI 与 SQL 同层执行ai_sql()ai_query()ai_insight() 作为内建函数提供,自然语言解析、跨库执行与洞察生成在同一执行计划中完成,避免跨进程调用与数据搬运开销;
下推优化,高效执行:过滤条件尽可能下推至源库执行,仅返回必要数据。跨源 JOIN 在节点内基于列存与向量化引擎完成,吞吐表现优于自行编写脚本拼接。

Data Dive 功能使用

接入数据源

DBAI 节点提供三种数据源接入方式,支持云上实例与自建实例的统一纳管。接入完成后,所有数据源在统一命名空间下可见。

自然语言接入

通过 prompt() 函数将接入意图、实例信息与账号密码一并提交至节点,由节点解析并完成接入:
SELECT prompt('
把广州地域的实例 cynosdbmysql-ins-fi6ah3js 接入到 AI 节点,
命名为 shop,用户名 reader,密码 ***
');

地域 + 实例 ID(推荐)

使用云资源标识与账号密码进行接入,网络打通由平台托管:
ATTACH DATABASE mysql_shop
FROM 'cynosdbmysql-xxxxxxxx@ap-guangzhou'
USER 'reader' PASSWORD '***';

ATTACH DATABASE pg_crm
FROM 'postgres-xxxxxxxx@ap-guangzhou'
USER 'reader' PASSWORD '***';

ATTACH DATABASE mongo_logs
FROM 'cmgo-xxxxxxxx@ap-guangzhou'
USER 'reader' PASSWORD '***';

ATTACH DATABASE redis_cache
FROM 'crs-xxxxxxxx@ap-guangzhou'
PASSWORD '***';

标准 IP / Port(自建 / 跨账号)

使用标准连接信息,适用于自建实例、混合云或跨账号纳管:
ATTACH 'host=xxx port=xx user=xx password=xxxxx database=xx'
AS mysql_shop (TYPE MYSQL);

ATTACH 'host=xxx port=xx dbname=xx user=xx password=xxxxx'
AS pg_crm (TYPE POSTGRES);

ATTACH 'host=xxx port=xx user=xx password=xxxxx'
AS mongo_logs (TYPE MONGO);

ATTACH 'host=xxx port=xx user=xx password=xxxxx'
AS redis_cache (TYPE REDIS);

对象存储(COS / S3)

对象存储无需 ATTACH,可直接以路径方式访问;私有桶需配置访问密钥:
CREATE SECRET cos_secret (
TYPE S3,
KEY_ID 'xxxx',
SECRET 'xxxx',
REGION 'ap-guangzhou',
ENDPOINT 'xxxx.ap-guangzhou.tencentcos.cn'
);

SELECT * FROM 's3://bucket/sales/2026/*.parquet';
接入完成后,执行 SHOW ALL TABLES; 即可在统一命名空间下查看所有已接入数据源的表。

跨库查询

接入数据源后,可通过标准 SQL 语法在同一条语句中关联多种数据库,实现跨源联邦查询。
以下示例展示了一次典型的四源关联查询:从 PostgreSQL 中获取2026-05-01后注册的用户信息,关联 MySQL 中的订单统计、Redis 中的实时会话状态以及 MongoDB 中的登录日志,最终按订单数量降序返回前100条结果。
SELECT u.uid,
u.name,
o.order_cnt,
c.session AS live_session,
l.last_login_ip
FROM pg_crm.crm.users u
JOIN mysql_shop.test_ai.orders o
ON o.uid = u.uid
LEFT JOIN redis_cache.session c
ON c.uid = u.uid
LEFT JOIN mongo_logs.logs.user_log l
ON l.uid = u.uid
WHERE u.create_time > '2026-05-01'
ORDER BY o.order_cnt DESC
LIMIT 100;

-- 返回:
-- +------+------+-----------+-------------------+---------------+
-- | uid | name | order_cnt | live_session | last_login_ip |
-- +------+------+-----------+-------------------+---------------+
-- | 1003 | 王五 | 23 | sess_m3n4o5p6q7r8 | 172.16.0.88 |
-- | 1008 | 郑十 | 18 | sess_t5u6v7w8x9y0 | 172.20.0.100 |
-- | 1001 | 张三 | 15 | sess_a1b2c3d4e5f6 | 192.168.1.100 |
-- | 1005 | 孙七 | 12 | sess_j9k0l1m2n3o4 | 10.10.10.5 |
-- | 1002 | 李四 | 8 | sess_x7y8z9w0v1u2 | 10.0.0.55 |
-- +------+------+-----------+-------------------+---------------+

自然语言查询

无需手写 SQL,用户可直接以自然语言发起数据查询。系统支持两种调用方式:
生成 SQL(不执行):
SELECT ai_sql(
'订单金额最高的前 3 名用户是谁?列出姓名、城市和订单金额',
schemas => ['pg_crm', 'mysql_shop']
) AS generated_sql;

-- 返回:
-- +-------------------------------------------------------------+
-- | generated_sql |
-- +-------------------------------------------------------------+
-- | SELECT u.name, u.city, o.amount |
-- | FROM pg_crm.crm.users u |
-- | JOIN mysql_shop.test_ai.orders o ON o.uid = u.uid |
-- | ORDER BY o.amount DESC |
-- | LIMIT 3 |
-- +-------------------------------------------------------------+
生成并执行:
SELECT ai_query(
'订单金额最高的前 3 名用户是谁?列出姓名、城市和订单金额'
);

-- 返回:
-- +------+------+--------+
-- | name | city | amount |
-- +------+------+--------+
-- | 王五 | 深圳 | 5600.00|
-- | 郑十 | 南京 | 4200.00|
-- | 孙七 | 杭州 | 3100.00|
-- +------+------+--------+

生成报表

通过 ai_insight() 函数,系统可基于查询结果自动生成包含分析结论与可视化图表的报表。输出格式支持 HTML 与 JSON 两种模式,其中 HTML 格式适用于直接分享与嵌入前端页面展示,JSON 格式则便于程序解析与下游系统对接:
HTML 报表输出:
SELECT ai_insight(
'最近两周订单量 Top 5 的用户是谁?他们的消费趋势如何?用折线图展示',
format => 'html'
) AS report;

-- 返回:
-- +----------------------------------------------------------------------+
-- | report |
-- +----------------------------------------------------------------------+
-- | https://xxxx.cos.ap-guangzhou.myqcloud.com/reports/top_users.html |
-- +----------------------------------------------------------------------+
节点内部依次完成:意图解析 → SQL 生成 → 跨源执行 → 统计与趋势归因 → HTML 渲染,返回可分享的报表访问地址。
结构化 JSON 输出:
SELECT ai_insight(
'过去 30 天活跃用户的异常掉点',
format => 'json'
);

-- 返回:
-- {
-- "metric": "DAU",
-- "trend": "down",
-- "anomalies": [{"date":"2026-05-12","drop":0.18,"reason":"..."}],
-- "summary": "..."
-- }

与上层应用集成

Data Dive 支持通过多种方式与上层业务系统集成:
Agent / Chat:通过 MCP 或 HTTP 调用 ai_insight,将返回的 HTML / JSON 渲染至对话界面;
BI / 控制台:将生成的 SQL 落到看板,按定时任务刷新;
后端服务:通过 SDK(Go / Python / Node)发起查询,以 JSON 格式处理返回结果。

实践教程

1. 善用 ATTACH + VIEW:将常用的跨库查询口径固化为视图,业务方仅需访问视图层,降低使用门槛;
2. 保持下推友好:在 WHERE 条件中优先使用源库索引列,避免 SELECT *,以充分利用下推优化;
3. 遵循最小权限原则:接入数据源时使用只读账号,并按需限制可见库表范围;
4. 为自然语言查询提供上下文:通过 schemas => 参数限定查询范围,可显著提升 SQL 生成的准确率。