Skip to content

Latest commit

 

History

History
70 lines (38 loc) · 5.08 KB

20231130_04.md

File metadata and controls

70 lines (38 loc) · 5.08 KB

期望未来DuckDB的架构演变方向

作者

digoal

日期

2023-11-30

标签

PostgreSQL , PolarDB , duckdb , in process , cs


背景

DuckDB发展有点快, 不确定是不是在不久的将来会支持我期待的模式. 2022年9月份写过一些类似使用duckdb实现serverless datalake的文章:

原来2022 11月motherduck就已经在搞这个模式了: https://motherduck.com/

现在DuckDB是in process的架构

元数据在本地, 不能共享(但是可以read only模式attach datafile. 也就是说多个进程是可以同时只读模式打开这个datafile的. 我们可以只在datafile内保存schema定义, 实现共享metadata的目的.)

pic

期望的架构

演变成服务.

聚合代理(分发任务多duckdb, 聚合结果) - duckdb(多机的独立分布式in process计算) - metadata db(共享源数据) - s3/oss parquet(廉价远程分布式存储)

pic

就算不做这个聚合代理, 仅剥离metdata也是很有意义的. (每个组件独立发展, 必要的时候可以形成联合体, 非必要依旧可以单机in process运行.) 《将 "数据结构、数据存储" 从 "数据库管理系统" 剥离后 - 造就了大量大数据产品(DataFusion, arrow-rs, databend等)》

  • duckdb真正做到了计算存储分离, 像搭积木一样组合数据库能力。想要分析就用分析类引擎, 想要时序就用时序类引擎, 想要时空就用时空类存储引擎...
    • 存储只是一个文件格式, 例如支持 iceberg, parquet, arrow, inmemory ..... 存放在哪里都可以只要能访问到(例如oss, s3, ftp, nas, nfs, 或者本地)
    • 计算直接嵌入程序, 例如直接嵌入到python中.

duckdb要更加的实用, 在生态还有一个很重要的一环, 如何快速将数据源的数据导出为parquet, 并建立meta信息.

gda (generate data's agent) - data sources - 快速生成parquet并导入s3/oss, 以及对应的metadata.

digoal's wechat