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' = '' );
参数说明
参数 |
是否必选 |
说明 |
---|---|---|
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,请确保以下几点:
- OpenTSDB的ip地址和端口请从OpenTSDB服务配置中查看配置项“tsd.network.bind”和“tsd.network.port”分别获取。
- 若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。
- 在建立增强型跨源连接时,需要将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' = '' );