lightdb周边-聚合查询分库分表聚合(fwd直连库方式)

前言

使用聚合查询中间件,多个http、t3、fdw服务的结果聚合,同时利用SQL引擎的能力对结果进行连接、分组、排序、聚合

安装聚合查询

试用版本安装见 lightdb周边-聚合查询试用包指引_星辰bitone的博客-CSDN博客

场景

假设 产品信息分为2个库,每个库中又分为4张表。

产品信息表定义

create table product_info_1 ( product_id varchar2(100), product_name varchar2(100) );

create table product_info_2 ( product_id varchar2(100), product_name varchar2(100) ); 

create table product_info_3 ( product_id varchar2(100), product_name varchar2(100) ); 

create table product_info_4 ( product_id varchar2(100), product_name varchar2(100) );

初始化数据

insert into product_info_1 values('1', '理财产品1'); 
insert into product_info_2 values('2', '理财产品2'); 
insert into product_info_3 values('3', '理财产品3'); 
insert into product_info_4 values('4', '理财产品4');

聚合查询配置

聚合查询配置FDW规则见:lightdb周边-聚合查询参考手册_星辰bitone的博客-CSDN博客 中外部表聚合章节

然后建立父表

create table f_products_info ( product_id VARCHAR(100), product_name VARCHAR(100) );

建立子外部表

已数据库1举例(数据库2同理),如下:

CREATE foreign table f_products_info_db1_tab1 ( ) 
INHERITS (f_products_info) 
server oradb OPTIONS (schema 'ZHANGLIANG', table 'PRODUCT_INFO_1' ); 

CREATE foreign table f_products_info_db1_tab2 ( ) 
INHERITS (f_products_info) 
server oradb OPTIONS (schema 'ZHANGLIANG', table 'PRODUCT_INFO_2' );

CREATE foreign table f_products_info_db1_tab3 ( ) 
INHERITS (f_products_info) 
server oradb OPTIONS (schema 'ZHANGLIANG', table 'PRODUCT_INFO_3' ); 

CREATE foreign table f_products_info_db1_tab4 ( ) 
INHERITS (f_products_info) 
server oradb OPTIONS (schema 'ZHANGLIANG', table 'PRODUCT_INFO_4' );;

效果

分表聚合效果

查询父表可以直接查询到所有分表的数据

大数据量效果

product_info_2、product_info3、product_info4都存放了1048576条数据。

直接查询效果如下:

lightdb@postgres=# select count(*) from f_products_info ; 
count 
--------- 
4194304 
(1 row) 
Time: 12046.512 ms (00:12.047) 
lightdb@postgres=# select product_id, product_name, count(1) from f_products_info group by product_id , product_name; 
product_id | product_name | count 
------------+--------------+--------- 
1 | 理财产品1 | 1048576 
2 | 理财产品2 | 1048576 
3 | 理财产品3 | 1048576 
4 | 理财产品4 | 1048576 
(4 rows) 
Time: 24341.296 ms (00:24.341)

暴露接口查询,mybatis xml配置

<select id="getProductInfoFDW" resultType="map"> 
    select product_id, product_name, count(1) from f_products_info group by product_id ,    product_name 
</select>

直接分组聚合400w数据,18.56s拿到应答信息。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值