時序數據庫Influx-IOx源碼學習二(環境搭建)

InfluxDB是一個由InfluxData開發的開源時序數據庫,專一於海量時序數據的高性能讀、寫、高效存儲與實時分析等,在DB-Engines Ranking時序型數據庫排行榜上常年排名第一。git

InfluxDB能夠說是當之無愧的佼佼者,但 InfluxDB CTO Paul 在 2020/12/10 號在博客中發表一篇名爲:Announcing InfluxDB IOx – The Future Core of InfluxDB Built with Rust and Arrow的文章,介紹了一個新項目 InfluxDB IOx,InfluxDB 的下一代時序引擎。github

接下來,我將連載對於InfluxDB IOx的源碼解析過程,歡迎各位批評指正,聯繫方式見文章末尾。數據庫


上一篇介紹了InfluxDB IOx的一些項目背景及現有架構中存在的問題,詳情見:https://my.oschina.net/u/3374539/blog/5015114xcode

1.克隆倉庫

git clone https://github.com/influxdata/influxdb_iox.git

2.安裝基礎語言依賴

根據readme文件中的的描述,項目依賴兩個基礎環境,分別是rustclang微信

rust是使用rustup來進行版本管理的。默認的狀況下,會爲你安裝最後的stable版本,可是IOx項目爲了使用不太穩定的SIMD特性,從而達到更高的性能,因此在rust-toolchain文件中指定了一個nightly的版本。網絡

rust安裝

腳本:架構

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

測試版本號:app

rustc --version
rustc 1.51.0 (2fd73fabe 2021-03-23)

cd influxdb_iox
rustc --version
rustc 1.50.0-nightly (825637983 2020-11-18)

clang安裝

安裝clang是爲了編譯croaring這個依賴(RoaringBitmap,根據查詢語句進行逐列查詢的時候使用),安裝腳本根據系統的不一樣。curl

mac:性能

xcode-select --install

clang --version
Apple clang version 12.0.0 (clang-1200.0.32.29)
Target: x86_64-apple-darwin20.3.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

3.IDE搭建

我我的使用的goland,感受相比於IDEA要速度更快一些。

  1. GoLand下載:https://www.jetbrains.com/go/
  2. 安裝Toml插件: https://plugins.jetbrains.com/plugin/8195-toml
  3. 安裝Rust插件: https://plugins.jetbrains.com/plugin/8182-rust

4.導入工程

當所有完成後,你能夠在IDE的右側看到以下截圖:

你也能夠在命令行中執行:

cargo build

具體速度快慢就要看命了,網絡至少須要訪問github、crates.io

5.在IDE中啓動

打開src/main.rs文件,而後右鍵-->Run. 在運行以後,在命令行裏會提示一個錯誤,而後退出。緣由是咱們並無輸入系統能夠識別的啓動命令。

打開啓動配置頁面,在command中貼入,

run --package influxdb_iox --bin influxdb_iox run

而後就能看到程序啓動成功的提示:

祝玩兒的開心!


歡迎關注微信公衆號:

或添加微信好友: liutaohua001

相關文章
相關標籤/搜索