TSDBWriter 插件实现了将数据点写入到阿里巴巴云原生多模数据库Lindorm TSDB数据库中(后续简称 TSDB)。
时间序列数据库(Time Series Database , 简称 TSDB)是一种高性能,低成本,稳定可靠的在线时序数据库服务;提供高效读写,高压缩比存储、时序数据插值及聚合计算,广泛应用于物联网(IoT)设备监控系统 ,企业能源管理系统(EMS),生产安全监控系统,电力检测系统等行业场景。 TSDB 提供千万级时序数据秒级写入,高压缩比低成本存储、预降采样、插值、多维聚合计算,查询结果可视化功能;解决由于设备采集点数量巨大,数据采集频率高,造成的存储成本高,写入和查询分析效率低的问题。更多关于 TSDB 的介绍,详见阿里云 Lindorm TSDB 官网。
注意:阿里巴巴自研HiTSDB已全新升级为云原生多模数据库Lindorm TSDB。Lindorm TSDB兼容大部分HiTSDB的HTTP API并提供原生SQL能力,TSDBWriter插件使用HTTP API方式写入,要使用原生SQL能力需要提前在Lindorm TSDB进行建表。详细参见与旧版TSDB的比较
通过TSDB客户端 hitsdb-client 连接 TSDB 实例,并将数据点通过HTTP API方式写入。关于写入接口详见TSDB 的SDK 参考。
配置TSDB Writer:
{
"name": "tsdbwriter",
"parameter": {
"endpoint": "http://localhost:8242",
"sourceDbType": "RDB",
"batchSize": 256,
"columnType": [
"tag",
"tag",
"field_string",
"field_double",
"timestamp",
"field_bool"
],
"column": [
"tag1",
"tag2",
"field1",
"field2",
"timestamp",
"field3"
],
"multiField":"true",
"table":"testmetric",
"username":"xxx",
"password":"xxx",
"ignoreWriteError":"false",
"database":"default"
}
}
配置一个从 支持 OpenTSDB 协议的数据库同步抽取数据到 TSDB:
{
"job": {
"content": [
{
"reader": {
"name": "opentsdbreader",
"parameter": {
"endpoint": "http://localhost:4242",
"column": [
"m"
],
"startTime": "2019-01-01 00:00:00",
"endTime": "2019-01-01 03:00:00"
}
},
"writer": {
"name": "tsdbwriter",
"parameter": {
"endpoint": "http://localhost:8242"
}
}
}
],
"setting": {
"speed": {
"channel": 1
}
}
}
}
使用 OpenTSDB (单值)协议写入TSDB(不推荐):
{
"name": "tsdbwriter",
"endpoint": "http://localhost:8242",
"sourceDbType": "RDB",
"parameter": {
"batchSize": 256,
"columnType": [
"tag",
"tag",
"field_string",
"field_double",
"timestamp",
"field_boolean"
],
"column": [
"tag1",
"tag2",
"field_metric_1",
"field_metric_2",
"timestamp",
"field_metric_3"
],
"username":"tsdb",
"password":"enxU^",
"ignoreWriteError":"false"
}
}
转换到的TSDB 表名(metric)由column中field对应的列名决定:对于上诉配置一行关系型数据将会写入三个metric(field_metric_1,field_metric_2,field_metric_3)
name
parameter
sourceDbType
multiField
column
columnType
table
batchSize
ignoreWriteError
username
password
database
maxRetryTime
DataX 内部类型 | TSDB 数据类型 |
---|---|
String | TSDB 数据点序列化字符串,包括 timestamp、metric、tags 和 value |
从 Metric、时间线、Value 和 采集周期 四个方面来描述:
固定指定一个 metric 为 m
。
前四个 tagkv 全排列,形成 10 * 20 * 100 * 100 = 2000000
条时间线,最后 IP 对应 2000000 条时间线从 1 开始自增。
tag_k | tag_v |
---|---|
zone | z1~z10 |
cluster | c1~c20 |
group | g1~100 |
app | a1~a100 |
ip | ip1~ip2000000 |
度量值为 [1, 100] 区间内的随机值
采集周期为 10 秒,持续摄入 3 小时,总数据量为 3 * 60 * 60 / 10 * 2000000 = 2,160,000,000
个数据点。
TSDB Writer 机型: 64C256G
HBase 机型: 8C16G * 5
"-Xms4096m -Xmx4096m"
通道数 | DataX 速度 (Rec/s) | DataX 流量 (MB/s) |
---|---|---|
1 | 129753 | 15.45 |
2 | 284953 | 33.70 |
3 | 385868 | 45.71 |
其他版本暂不保证兼容