多种单文件版分析型数据库调用底层函数对比

研究对象:duckdb, glaredb, cedardb, clickhouse, datafusion-cli

数据准备:
nm -D |grep " U"仅查询导入函数。

nm -D duckdb130 |grep " U" > due.h
nm -D glaredb |grep " U" > gla.h
nm -D cedardb723 |grep " U" > cdr.h
nm -D clickhouse |grep " U" > cck.h
nm -D datafusion-cli |grep " U" > daf.h

保存数据到duckdb:

create table t(db varchar, func varchar);

insert into t select 'duckdb',i from read_csv('due.h',header=0)t(i);
insert into t select 'glaredb',i from read_csv('gla.h',header=0)t(i);
insert into t select 'cedardb',i from read_csv('cdr.h',header=0)t(i);
insert into t select 'clickhouse',i from read_csv('cck.h',header=0)t(i);
insert into t select 'datafusion',i from read_csv('daf.h',header=0)t(i);

统计

概况
1.各种数据库导入函数计数
D select db,count(*)cnt from t group by db order by db;
┌────────────┬───────┐
│     db     │  cnt  │
│  varchar   │ int64 │
├────────────┼───────┤
│ cedardb    │   413 │
│ clickhouse │   533 │
│ datafusion │   242 │
│ duckdb     │   429 │
│ glaredb    │   159 │
└────────────┴───────┘
2.各种数据库均导入的函数计数
D select count(*)cnt from (select func,count(*)cnt from t group by func having cnt=5);
┌───────┐
│  cnt  │
│ int64 │
├───────┤
│  52   │
└───────┘
3.哪些数据库用到了文件内存映射函数
D select db from t where func like '%munmap%';
┌────────────┐
│     db     │
│  varchar   │
├────────────┤
│ duckdb     │
│ glaredb    │
│ cedardb    │
│ clickhouse │
│ datafusion │
└────────────┘
4.哪些数据库用到了文件缓冲输出函数
D select db from t where func like '%setvbuf%';
┌────────────┐
│     db     │
│  varchar   │
├────────────┤
│ duckdb     │
│ cedardb    │
│ clickhouse │
└────────────┘
5.比较不同数据库之间公用函数的计数
D select t.db tdb, t1.db t1db,count(*)cnt from t join t t1 on(t.db<t1.db and t.func=t1.func )group by tdb,t1db order by cnt,1,2;
┌────────────┬────────────┬───────┐
│    tdb     │    t1db    │  cnt  │
│  varcharvarchar   │ int64 │
├────────────┼────────────┼───────┤
│ duckdb     │ glaredb    │    74 │
│ datafusion │ duckdb     │    97 │
│ clickhouse │ glaredb    │   108 │
│ cedardb    │ glaredb    │   109 │
│ datafusion │ glaredb    │   135 │
│ clickhouse │ datafusion │   141 │
│ cedardb    │ datafusion │   144 │
│ cedardb    │ duckdb     │   185 │
│ clickhouse │ duckdb     │   192 │
│ cedardb    │ clickhouse │   291 │
├────────────┴────────────┴───────┤
│ 10 rows               3 columns │
└─────────────────────────────────┘
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值