【Rust日報】2020-03-30 大表數據複製工具dbcrossbar 0.3.1即將發佈新版本
- 2020 年 4 月 2 日
- 筆記
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