connector-x db数据快速加载到dataframe的库

connector-x db数据快速加载到dataframe的库,支持不少数据库的到dataframe 数据的写入

支持的数据库

  • pg
  • mysql
  • mariadb
  • sqlite
  • redshift
  • clickhouse
  • sql server
  • azure sql database
  • oracle
  • big query

目的

  • pandas
  • pyarrow
  • modin
  • dask
  • polars

内部处理

  • 内存轻量处理

基于了rust 了零拷贝原则

  • 如何进行数据下载的

首先通过select * from lineitem limit 1 获取记录集的schema 然后如果分片信息指定了,会执行SELECT MIN(partitionon),MAX(partition_on) FROM (SELECT * FROM lineitem 获取分片的范围,之后原始查询会拆分为不同的查询(基于最大,最小),比如SELECT * FROM (SELECT * FROM lineitem) WHERE partitionon>0ANDpartition_on < 10000,之后获取分片数量SELECT COUNT(*) FROM (SELECT * FROM lineitem) WHERE partitionon>0ANDpartition_on < 10000, 如果分片信息没有制定,会指定SELECT COUNT(*) FROM (SELECT * FROM lineitem) 最后ConnectorX 会集合schema 信息以及查询的数量进行内存分配以及执行正常的查询 当下载开始的时候,会基于分片创建对应的线程数量,所以数据处理是并行的,每个线程会获取数据库特定的数据,然后通过流模式写入到列或者行模式的目的中

说明

官方还提供了一个不错的论文值得看看,可以更好的了解connector-x 的内部处理

参考资料

https://github.com/sfu-db/connector-x

https://sfu-db.github.io/connector-x/

https://crows.land/files/ConnectorX.pdf

posted on   荣锋亮  阅读(31)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2023-12-02 cerbos hub 流程参考
2023-12-02 cerbos webassebly 集成简单说明
2020-12-02 johnfercher/maroto fork 版本几个bug 的修复
2020-12-02 johnfercher/maroto 不错的pdf golang pdf 生成工具包
2020-12-02 jung-kurt/gofpdf pdf 生成操作
2020-12-02 griddb 4.5 体验
2020-12-02 griddb 4.5 社区版新特性

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示