iotdb
https://github.com/apache/iotdb.git
安装maven3.9.6以上版本执行编译
iotdb启动,使用安装包sbin目录下的start-standalone.bat
sbin\start-standalone.bat
执行报错如果是内存问题,可以在对应的node配置中修改,如conf\datanode-evn.bat中修改
c++
example\pom.xml中需要添加client-cpp-example的模块
参考官方文档:https://iotdb.apache.org/zh/UserGuide/V0.13.x/IoTDB-Introduction/What-is-IoTDB.html
mvn package -P compile-cpp -pl client-cpp,server,example/client-cpp-example -am -Dcmake.generator=“your cmake generator” -Dboost.include.dir= y o u r b o o s t h e a d e r f o l d e r − D b o o s t . l i b r a r y . d i r = {your boost header folder} -Dboost.library.dir= yourboostheaderfolder−Dboost.library.dir={your boost lib (stage) folder} -DskipTests
python
client-py子项目中有python的模块,或者pip install apache-iotdb
import time
from iotdb.Session import Session
from iotdb.utils.IoTDBConstants import TSDataType, TSEncoding, Compressor
from iotdb.utils.Tablet import Tablet
import pandas as pd
# 连接到 IoTDB
session = Session("127.0.0.1", 6667, "root", "root")
session.open(False)
# 创建存储组和时间序列
session.set_storage_group("root.sg1")
session.create_time_series("root.sg1.d1.s1", TSDataType.INT32, TSEncoding.RLE, Compressor.SNAPPY)
# 生成测试数据
measurements_ = ["s_01", "s_02", "s_03", "s_04", "s_05", "s_06"]
values_ = [False, 10, 11, 1.1, 10011.1, "test_record"]
data_types_ = [
TSDataType.BOOLEAN,
TSDataType.INT32,
TSDataType.INT64,
TSDataType.FLOAT,
TSDataType.DOUBLE,
TSDataType.TEXT,
]
# 开始写入测试
start_time = time.time()
for i in range(100000):
session.insert_record("root.sg_test_01.d_01", i, measurements_, data_types_, values_)
end_time = time.time()
# 输出写入时间
print(f"写入 100000 条数据耗时: {end_time - start_time} 秒")
session.delete_storage_group("root.sg1")
# 关闭连接
session.close()
本机测试单线程单连接大概每秒写入在1w以上,c++接口写入会比python快接近一倍左右(很奇快,执行都是java,都是通过thrift调用的)