TdEngine 踩坑(一)

TdEngine 踩坑

简要介绍

Tdengine 是一款国内开源的时序数据库,支持分布式,社区发展比较健康(相比国内)。

笔者主要开发量化交易软件,行情数据存储和读取对性能 延时要求毕竟高,存储比例要求也比较高,针对数据库进行过多次选项,Mongo、DolphinDb、TdEngine都测试过,详情参见文章 行情数据库性能基准测试(MongoDb/TdEngine/DolphinDb)。最终参考压缩比例、开源、文档、易用性、速度等指标,选择了TdEngine。

不过还是要趟很多坑,国内开源平台主要还是靠内部团队贡献,社区贡献并不是很多,有些问题解决的并不是那么及时。

安装

单机版服务端

官网提供了编译好的二进制版本,linux/win都提供安装包,直接下载即可安装。下载地址

以Ubuntu20.04 为例:

tar xvzf TDengine-enterprise-server-2.6.0.6-Linux-x64.tar.gz
cd TDengine-enterprise-server-2.6.0.6-Linux-x6
./install.sh

即可完成安装。

Docker版服务端

version: '3'
services: 
 arbitrator:
    image: tdengine/tdengine:2.6.0.6
    command: tarbitrator
 tdnode1:
    #开机自启
    restart: always
    #指定镜像
    image: tdengine/tdengine:2.6.0.6
    container_name: tdnode1
    hostname: tdnode1
    #创建容器后默认执行的命令
    privileged: true
    ports:
        - 6030-6042:6030-6042
        - 6030-6041:6030-6041/udp
    volumes:
      - /etc/localtime:/etc/localtime:ro #同步主机时区到容器
      - /etc/taos:/etc/taos
      - /data/docker/tdengine/data:/var/lib/taos
      - /data/docker/tdengine/log:/var/log/taos

执行docker-compose --compatibility up -d命令即可启动单节点服务,arbitrator为副本偶数时必须部署的。
配置好/etc/taos/taos.cfg 中的参数和hosts,执行taos,即可连接上数据库了。

c++客户端

官网也有安装包可直接下载安装。
但是我遇到一个比较恶心的事情,tdengine把version作为全局变量定义,导致和其它动态链接库冲突了,目测是ctp接口(期货交易接口)冲突了(Unbuntu22.04,windows下无此bug),导致taos_connect时,返回版本错误,连接不了数据库。

目前已经提了ISSUE,但是不一定给解决的,因为我查了历史的ISSUE,2.4.0就有人提了,到现在没有解决。唯一的解决方案是自己重新编译源码,可以修改version参数名,或者不导出version变量。具体的可以参考大牛的解决方案 ISSUE。

那目前只能自己编译。下载源码,切到2.6分支,开始:

mkdir build && cd build
cmake ..
make
make install

漫长的等待结束后,就好了,再执行程序就不会出现版本不一致的问题了(最新版3.0还未测试,有结果更新下)。

TDENGINE >= 3.0解决了上述问题,只需要从官网下载安装包即可安装。

TdEngine 踩坑(一)_第1张图片

你可能感兴趣的:(期货量化,c++,tdengine,大数据,时序数据库)