TDengine 是一个时序数据库,压缩了浮点数存储,能占用更小的空间。
https://github.com/taosdata/TDengine 最新版虽然 windows 下编译完好,但是运行不起来,说是添加了企业版功能。只能编译安装 3.1 以下的版本 3.0.7.1。
不想用 docker 版本,直接编译个 windows 版简单使用一下。另外 windows 下的客户端访问库 TDengine-client-3.0.7.1-Windows-x64.exe,需要下载安装,只安装 taospy 是访问不了的。 而且客户端的版本必须得跟服务器端版本一一致。
python
pip install taospy
import taos
def test_connection():
# all parameters are optional.
# if database is specified,
# then it must exist.
conn = taos.connect(host="localhost",
port=6030,
user="root",
password="taosdata",
database="log")
print('client info:', conn.client_info)
print('server info:', conn.server_info)
conn.close()
if __name__ == "__main__":
test_connection()
存储 OHLCV 数据
TDengine 有超级表的概念,如果存储股票数据,相当于每一个股票代码一个子表。
// 股票数据超级表
CREATE STABLE stock_ohlcv(ts TIMESTAMP, Open FLOAT, High FLOAT, Low FLOAT, Close FLOAT, Volume FLOAT) TAGS (symbol VARCHAR(32), groupId int, period int);
// 期货数据超级表
CREATE STABLE future_ohlcv(ts TIMESTAMP, Open FLOAT, High FLOAT, Low FLOAT, Close FLOAT, Volume FLOAT, open_oi FLOAT, close_oi FLOAT) TAGS (symbol VARCHAR(32), groupId int, period int);
创建子表
那 601398
为例,那么子表名位 t_1_1_601398
,模式为 t_groupId_period_symbolcode
- 1 上证
- 2 深证
CREATE TABLE t_1_1_601398 USING stock_ohlcv TAGS ("601398", 1, 1);
理论上只需要存储 1 分钟 K 线数据就可以了,不同周期的数据通过程序转化即可。但是像期货这种带夜盘的,不那么好转换,需要判断的逻辑太多。还是把各个周期都存储一下。