dbcrossbar 0.3.1: 开源大表数据复制工具即将发布新版本
dbcrossbar 0.3.1: Copy large tables between BigQuery, PostgreSQL, RedShift, CSV, S3, etc. (preview release, uses async Rust)
【作者-emk】
大家好,Faraday公司非常慷慨的开源了其表数据复制工具dbcrossbar
。一年多以来,这个开源工具已经在很多地方被重度用于生产系统,已经到了可以值得勇敢的Rust开发人员认真审视的时候了。(已经知道未来在Version 1.0还将会有更重大的信息披露)
你可以使用dbcrossbar
将CSV裸数据快速的导入PostgreSQL,或者将PostgreSQL数据库中的表 在BigQuery里做一个镜像表来做分析应用。dbcrossbar
提供了各种常用流行的数据(库) 的驱动程序,设计目标是用来可以高效的操作大约1GB到500GB范围大小的数据集的。(更牛的地方是用在计算机集群中去分发不同的数据拷贝)由于dbcrossbar
使用多个异步的Rust Streams
'流'和 backpressure
来控制数据流, 所以整个数据复制过程完全不需要写临时文件。在工具程序内部,dbcrossbar
把一个数据表表达成多个CSV数据流, 这样就避免了用一个大的CSV文件去存整个表的内容的情况,同时也可以使得应用云buckets
更高效。
dbcrossbar
支持常用的纯量数据类型,外加数组,JSON,GeoJSON和UUID等, 并且可以在不同类型的数据库之间转换这些类型,还可以通过--where
命令行选项 做条件过滤,它可以overwrite覆盖写操作数据表,append添加写,甚至可以 (对PostgreSQL和BigQuery)做UPSERT(Update or Insert into a table)操作。它知道怎么自动的来回将PostgreSQL的表定义转换成BigQuery的表定义。
Rust的异步功能已经在这个开源项目中被证明了Rust是一种超级牛的编程语音。虽然可以预见的 还会在正在进行的开发中遇到各种各样的问题和挑战,但是Rust语言的ownership and borrowing
严格规定已经证明可以使同时使用异步功能函数和线程混用而很少出错。同时Rust语言保证了 高超的运行性能。特别需要鸣谢u/burntsushi
提供了CSV的Rust
语言库,以及Rust语言社区提供的各种非得好用和优秀的开源软件包, 那些需要感谢的人名单的确是满满的一长串。
欢迎提交bug
和代码库的PR
,具体的指南和安装手册可以看dbcrossbar的官方网站。有问题欢迎骚扰!
博文:Macros vs Rename
https://rust-analyzer.github.io/blog/2020/03/30/macros-vs-rename.html
用Github workflow cross-compiling 多个Linux版本的rust可执行文件。
https://gist.github.com/FedericoPonzi/873aea22b652572f5995f23b86543fdb
自己动手写Web Assembly解析器(2)
https://medium.com/@richardanaya/lets-write-a-web-assembly-interpreter-part-2-6c430f3f4bfd
自己动手写Web Assembly解析器(1)
https://medium.com/@richardanaya/lets-write-a-web-assembly-interpreter-part-1-287298201d75--
原文:https://rust.cc/article?id=5c3d8b3d-e825-4a1d-b2f2-79a9a0ddcafd