时序数据库Influx-IOx源码学习二(环境搭建)

原创
04/12 17:09
阅读数 4.2K

InfluxDB是一个由InfluxData开发的开源时序数据库,专注于海量时序数据的高性能读、写、高效存储与实时分析等,在DB-Engines Ranking时序型数据库排行榜上常年排名第一。

InfluxDB可以说是当之无愧的佼佼者,但 InfluxDB CTO Paul 在 2020/12/10 号在博客中发表一篇名为:Announcing InfluxDB IOx – The Future Core of InfluxDB Built with Rust and Arrow的文章,介绍了一个新项目 InfluxDB IOx,InfluxDB 的下一代时序引擎。

接下来,我将连载对于InfluxDB IOx的源码解析过程,欢迎各位批评指正,联系方式见文章末尾。


上一篇介绍了InfluxDB IOx的一些项目背景及现有架构中存在的问题,详情见:https://my.oschina.net/u/3374539/blog/5015114

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

测试版本号:

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,根据查询语句进行逐列查询的时候使用),安装脚本根据系统的不同。

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

展开阅读全文
打赏
0
1 收藏
分享
加载中
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部