苍穹跨库查询超能力,超级查询来了
苍穹的垂直分库、水平分表的架构,使得开发者和用户无法直接通过SQL进行跨库、跨表的查询。
但现在,“超级查询”来了!它以苍穹作为一个逻辑上的“数据库”,实体作为数据库中的“表”,支持使用SQL直接对实体进行查询,无须关心查询的表是否跨库、字段是否跨表(水平分表、拆分表)。本期带你读懂这一超级工具!
功能简介
超级查询是一个分布式的 SQL 查询引擎,遵循 SQL92 标准,支持对苍穹元数据实体进行 SQL 查询。
在苍穹标准应用中,它将苍穹、星瀚整体当成一个逻辑数据库,实体作为表,实体属性做为表的字段,既可以使用苍穹的web客户端直接执行查询,也可以使用我们提供的JDBC驱动连接到苍穹执行查询。
同时,超级查询引擎屏蔽了跨表、拆分表、水平分表等细节,用户只需要专注于自己要查询的实体即可。
适用版本
苍穹V6.0.1及以上
功能详情
超级查询的功能分为“管理功能”和“查询功能”。对于“查询功能”,我们规定了SQL的语法,可以分别通过web客户端、JDBC驱动去执行。
01 模式管理(Schema管理)
【模式管理】是超级查询的管理模块,提供模式管理与用户授权功能。用户在查询分析器中的查询操作权限,依赖管理员在模式管理中的配置与授权。
模式(schema)代表的是实体的集合,通过模式对用户进行授权,做到对用户查询边界的管控。
模式管理功能路径为:【系统服务云】->【分布式管理】 ->【 超级查询】 ->【 Schema管理】。
Schema管理
1.1 新增模式
点击“新增”按钮,弹出新建模式弹窗:
编码:英文开头,由英文字母、下划线及数字组成,长度不超过12个字符。
名称:模式中文名称,仅为列表展示使用。
类型:目前仅支持苍穹。
实体范围:限定查询实体的范围,“默认”代表可以查询所有实体,“自定义”则可以自己选定实体范围。
自定义实体范围:当选择“自定义”时,该字段可以多选实体,作为该模式下的表。
新建模式
工具栏上还提供了其它按钮,这里仅做简要说明:
点击“修改”按钮,即可再次对模式的相关信息进行编辑。
启用、禁用:可以通过“启用”、“禁用”按钮来控制模式启用或者禁用。
删除:删除模式。
1.2 模式授权
点击“授权”按钮,弹出授权弹窗,再点击“新增”按钮,增加授权用户。
“数据查询”代表普通的SQL查询。
“字典查询”代表特殊的查询元数据的SQL查询(SHOW语句)。
“允许JDBC连接”为预留功能。
可以自行增加多个用户授权,授权完毕后点击保存即可。
用户授权
02 SQL语法介绍
SQL语法涉及的内容较多,无法在这里进行详细的说明,这里仅做简要介绍。到目前为止,支持的特性包括:
JOIN:inner join、left join、right join、full join。
运算符:支持绝大部分算术运算符、逻辑运算符、比较运算符。
函数:支持部分数学函数、字符串函数、类型转换函数、聚合函数。
GROUP:支持分组聚合及分组过滤。
ORDER BY:支持排序。
LIMIT&OFFSET:支持对查询结果限制输出。
03 客户端及驱动介绍
3.1 web客户端
web客户端是在苍穹直接执行超级查询SQL的功能界面,提供SQL查询及结果集导出功能。
查询分析器功能路径为:【系统服务云】->【分布式管理 】->【超级查询】->【超级查询】。
超级查询
3.2 GUI客户端
GUI客户端是我们基于DBeaver定制开发的查询客户端工具,可以使用DBeaver直连苍穹进行查询。
FlyDB连接设置
连接后在查询界面执行查询。
执行查询
注:dbeaver由于社区附件大小限制,无法上传,请加群直接获取,后续相关资源更新也会直接在群里更新。
3.3 JDBC驱动
JDBC驱动使用方式与常见的数据库驱动使用方式一致,注册驱动以后通过DriverManager获取连接并执行即可。
JDBC驱动
注意事项
超级查询服务需要进行独立部署才能使用
参考资料与附件
划重点
超级查询提供标准的SQL,以支持对实体查询。
提供【模式管理】,管控用户的查询范围。
屏蔽底层的跨库细节,可以将存储在不同分库的实体进行联查。
屏蔽拆分表细节,只管查询实体属性即可,无须关心具体存储。
提供web客户端直接执行查询。
提供GUI客户端连接苍穹执行查询。
提供JDBC驱动来从外部连接查询。
#往期推荐#
更多精彩内容,“码”上了解!↓
苍穹跨库查询超能力,超级查询来了
本文2024-09-23 00:33:47发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-140261.html