使用datax将数据从InfluxDB抽取到TDengine过程记录

  1. 编写InfluxDB数据查询语句
sql 复制代码
select  time as ts,device as tbname, ip,device as district_code from "L2_CS" limit 1000
  1. 创建TDengine表
sql 复制代码
create database if not exists sensor;
create stable if not exists sensor.water(ts timestamp, ip varchar(50), device varchar(50)) 
tags(district_code nchar(12));

3, 编写datax配置json文件

html 复制代码
{
  "job": {
    "content": [
      {
        "reader": {
          "name": "influxdbreader",
          "parameter": {
            "column": [
              "*"
            ],
            "connection": [
              {
                "endpoint": "http://127.0.0.7:8086",
                "database": "DisasterCloudDB"
              }
            ],
            "querySql": "select time as ts,device as tbname, ip,device as district_code from \"L2_CS\" limit 1000",
            "connTimeout": 15,
            "readTimeout": 20,
            "writeTimeout": 20,
            "username": "monitor_ro",
            "password": "HGhcxCFkacxdmBeU"
          }
        },
        "writer": {
          "name": "tdengine30writer",
          "parameter": {
            "username": "jcyj",
            "password": "XquFvQoCM#I1sn6jc",
            "column": [
              "ts",
              "tbname",
              "ip",
              "district_code"
            ],
            "connection": [
              {
                "table": [
                  "water"
                ],
                "username": "jcyj",
                "password": "XquFvQoCM#I1sn6jc",
                "jdbcUrl": "jdbc:TAOS-RS://127.0.0.1:6041/jcyj?timestampFormat=TIMESTAMP"
              }
            ],
            "batchSize": 100,
            "ignoreTagsUnmatched": true
          }
        },
        "transformer": [
          {
            "name": "dx_replace",
            "parameter":
            {
              "columnIndex":2,
              "paras":["1","2","d50"]
            }
          }
        ]
      }
    ],
    "setting": {
      "speed": {
        "channel": 1
      }
    }
  }
}

增加 device as tbname 后,会根据设备id自动创建子表,不同的设备会创建不同的表

html 复制代码
{
  "name": "dx_replace",
  "parameter":
   {
     "columnIndex":2,
     "paras":["1","2","d50"]
   }
}

使用 dx_replace 插件处理设备id全是数字,建表之后不能查看问题,这里替换前两个字符 增加字母d

最后来一张生成的结果图

相关推荐
小王毕业啦16 分钟前
2022年 国内税务年鉴PDF电子版Excel
大数据·人工智能·数据挖掘·数据分析·数据统计·年鉴·社科数据
小伍_Five31 分钟前
Spark实战能力测评模拟题精析【模拟考】
java·大数据·spark·scala·intellij-idea
不吃饭的猪32 分钟前
记一次运行spark报错
大数据·分布式·spark
qq_4639448636 分钟前
【Spark征服之路-2.1-安装部署Spark(一)】
大数据·分布式·spark
SelectDB2 小时前
Apache Doris + MCP:Agent 时代的实时数据分析底座
大数据·数据分析·敏捷开发
IvanCodes3 小时前
一、Sqoop历史发展及原理
大数据·sqoop
王哥儿聊AI4 小时前
MaskSearch:提升智能体搜索能力的新框架
大数据·人工智能·算法·语言模型·自然语言处理
时序数据说4 小时前
时序数据库IoTDB与EdgeX Foundry集成适配服务介绍
大数据·数据库·开源·时序数据库·iotdb
黄雪超4 小时前
DataStreamAPI实践原理——快速上手(实操详细版)
大数据·flink·scala
Flink_China4 小时前
Fluss 实战:用 Partial Update 构建实时宽表的新范式
大数据·flink