TDengine Kafka Connector使用步骤

td版本:3.0.7.1
指路:td官网TDengine Kafka Connector使用步骤

1.废话步骤之安装td(docker-compose方式)

version: "3.0"
services:
  tdengine:
    image: tdengine/tdengine:3.0.7.1
    container_name: tdengine
    restart: always
    hostname: tdengine
    ports:
      - 6030:6030
      - 6041:6041
      - 6043-6049:6043-6049
      - 6043-6049:6043-6049/udp
    environment:
      TAOS_FQDN: "tdengine"
      TAOS_FIRST_EP: "tdengine"
    volumes:
      - ./data:/var/lib/taos/
      - ./log:/var/log/taos/
      - ./temp:/var/temp

2.安装kafka(docker-compose方式)

version: "3"
services:
  zookeeper:
    image: 'bitnami/zookeeper:3.6'
    container_name: zookeeper
    restart: always
    ports:
      - 2181:2181
    environment:
      - ALLOW_ANONYMOUS_LOGIN=yes

  kafka:
    image: 'bitnami/kafka:3.0'
    container_name: 'kafka'
    restart: always
    ports:
      - 9092:9092
      - 8083:8083 #暴露插件端口
    environment:
      - KAFKA_BROKER_ID=1
      - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092
      - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://ip:9092
      - KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181
      - ALLOW_PLAINTEXT_LISTENER=yes
      - KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE=false
      - KAFKA_CFG_LOG_RETENTION_HOURS=6
    depends_on:
      - zookeeper
    volumes:
      - /usr/local/kafka_components:/components #映射插件目录(下面步骤会用到)

注:使用TSDB方式连接连接td需要安装td客户端
附下载地址:td-client下载地址

3.安装 TDengine Connector 插件
(1)官方步骤下载会超时,建议从github直接下载源码zip
指路下载地址:Tdengine Connector

在idea打包插件,执行命令

mvn clean package -Dmaven.test.skip=true

取出生成目录target/components/packages/下的zip文件,解压后放到第1步指定的宿主机目录/usr/local/kafka_components下

(2)进入kafka容器内部config目录,修改connect-distributed.properties
参数加入插件目录plugin.path=/components(第1步docker-compose.yml所映射容器内部插件存放目录)

4.启动kafka
进入docker-compose.yml目录,执行命令

docker-compose up -d

5.进入kafka容器内部bin目录下,执行命令

connect-distributed.sh -daemon $KAFKA_HOME/config/connect-distributed.properties

6.验证kafka connect是否成功

curl http://localhost:8083/connectors

成功控制台会输出

[]

7.测试TDengine Sink Connector
(1)准备sink-demo.json

{
  "name": "TDengineSinkConnector",
  "config": {
    "connector.class": "com.taosdata.kafka.connect.sink.TDengineSinkConnector",
    "tasks.max": "1",
    "topics": "sink",
    "connection.url": "jdbc:TAOS://ip:6030",
    "connection.user": "root",
    "connection.password": "taosdata",
    "connection.database": "sink",
    "connection.database.prefix": ,
    "db.schemaless": "line",
    "key.converter": "org.apache.kafka.connect.storage.StringConverter",
    "value.converter": "org.apache.kafka.connect.storage.StringConverter"
  }
}

(2)新增connector,执行命令

curl -X POST -d @sink-demo.json http://localhost:8083/connectors -H "Content-Type: application/json"

成功控制台会输出connector配置信息

注意事项:
1.使用connection.database.prefix配置时,官网${topic}配置默认占位的,所以纯粹使用topic作为数据库名的时候,无需配置
2.使用connection.database.prefix配置时,如果topic配置了多个,会出现以下问题,建议使用connection.database.prefix配置时,topic只配置一个
在这里插入图片描述
3.如果想要配置connector自动创建数据库的KEEP和DURATION,建议直接修改源码

(3)准备kafka数据test-data.txt

sink,location=California.LosAngeles,groupid=2 current=11.8,voltage=221,phase=0.28 1648432611249000000
sink,location=California.LosAngeles,groupid=2 current=13.4,voltage=223,phase=0.29 1648432611250000000
sink,location=California.LosAngeles,groupid=3 current=10.8,voltage=223,phase=0.29 1648432611249000000
sink,location=California.LosAngeles,groupid=3 current=11.3,voltage=221,phase=0.35 1648432611250000000

(4)向kafka发送数据,执行命令

cat test-data.txt | kafka-console-producer.sh --broker-list localhost:9092 --topic sink

(5)taos执行命令,查看是否同步

use sink

注意事项:
1.如果想要自定义子表名,需要在修改i客户端配置,编辑/etc/taos下的taos.cfg文件,新增配置

smlChildTableName=<子表名字段>

influxDB格式如下

<超表名>,<子表名>,<tag(逗号分隔)> 空格 <字段(逗号分隔)> 空格 时间戳

指路:td官网influxDB格式说明

附:
查看所有connector

curl -s -X GET "http://localhost:8083/connectors/"

删除connector

curl -s -X DELETE "http://localhost:8083/connectors/<连接名>"

查看connector状态

curl -s -X GET "http://localhost:8083/connectors/<连接名>/status"

改造源码部分截图:
1.SinkConfig
在这里插入图片描述

2.TdengineSinkTask
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值