更新时间:2022-07-12 GMT+08:00

OpenTSDB结果表

功能描述

OpenTSDB是基于HBase分布式的 ,可伸缩的时间序列数据库。OpenTSDB的设计目标是用来采集大规模集群中的监控类信息,并可实现数据的秒级查询,解决海量监控类数据在普通数据库中查询存储的局限性,可用于系统监控和测量、物联网数据、金融数据和科学实验结果数据的收集监控。

DLI可以通过增强型跨源连接功能将Flink作业的输出数据写入到OpenTSDB中。

前提条件

  • 确保已经开启OpenTSDB服务。
  • 该场景作业需要运行在DLI的独享队列上,因此在DLI上要与OpenTSDB建立增强型跨源连接,且用户可以根据实际所需设置相应的安全组规则。

语法格式

create table tsdbSink (
  attr_name attr_type 
  (',' attr_name attr_type)* 
)
with (
  'connector.type' = 'opentsdb',
  'connector.region' = '',
  'connector.tsdb-metrics' = '',
  'connector.tsdb-timestamps' = '',
  'connector.tsdb-values' = '',
  'connector.tsdb-tags' = '',
  'connector.tsdb-link-address' = ''
);

参数说明

表1 参数说明

参数

是否必选

说明

connector.type

connector的类型,只能为opentsdb。

connector.region

OpenTSDB服务所在的区域。

connector.tsdb-metrics

数据点的metric,支持参数化。

其个数为要为1或者和“connector.tsdb-values”个数相同。

多个metric请使用“;”分隔。

connector.tsdb-timestamps

数据点的timestamp,仅支持指定动态列。

数据类型支持int、bigint、string,仅支持数据形式。

其个数需要为1或者和“connector.tsdb-values”的个数相同。

多个timestamp请使用“;”分隔。

connector.tsdb-values

数据点的value,支持指定动态列或者常数值。

多个values请使用“;”分隔。

connector.tsdb-tags

数据点的tags,每个tags里面至少一个标签值,最多8个标签值,多个标签使用“,”分隔,支持参数化。

其个数需要为1或者和“connector.tsdb-values”的个数相同。

多个tags请使用“;”分隔。

connector.batch-insert-data-num

表示一次性批量写入的数据量,即数据条数,值必须为正整数,默认值为8。

connector.tsdb-link-address

待插入数据所属集群的OpenTSDB连接地址。

注意事项

  • 若使用MRS集群的OpenTSDB,请确保以下几点:
    1. OpenTSDB的ip地址和端口请从OpenTSDB服务配置中查看配置项“tsd.network.bind”和“tsd.network.port”分别获取。
    2. 若OpenTSDB服务配置项“tsd.https.enabled”的值为true,则sql语句中的“connector.tsdb-link-address”参数值格式为https://ip:port。若“tsd.https.enabled”为false,则“connector.tsdb-link-address”参数值格式可以为http://ip:port或者ip:port。
    3. 在建立增强型跨源连接时,需要将MRS集群中的/etc/hosts主机和ip映射信息添加到“主机信息”参数中。
  • 当配置项支持参数化时,表示将记录中的一列或者多列作为该配置项的一部分。例如当配置项设置为car_${car_brand}时,如果一条记录的car_brand列值为BMW,则该配置项在该条记录下为car_BMW。
  • 若支持动态列,则其形式需要为${columnName},其中columnName为相应的字段名。

示例

create table sink1(
  attr1 bigint,
  attr2 int,
  attr3 int
) with (
  'connector.type' = 'opentsdb',
  'connector.region' = '',
  'connector.tsdb-metrics' = '',
  'connector.tsdb-timestamps' = '${attr1}',
  'connector.tsdb-values' = '${attr2};10',
  'connector.tsdb-tags' = 'key1:value1,key2:value2;key3:value3',
  'connector.tsdb-link-address' = ''
);