时序数据库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

相关文章
相关标签/搜索