一种基于OpenTsdb实时同步时序数据至Kafka的方法
文献发布时间:2023-06-19 09:49:27
技术领域
本发明涉及OpenTsdb集群技术领域,具体的说是一种基于OpenTsdb实时同步时序数据至Kafka的方法。
背景技术
物联网IoT(Internet of Things)体系分为感知层、传输层、应用层,随着物联网技术的发展,越来越多的物(设备或传感器等)相互连接起来,从而产生了海量的时序数据,在此背景下,诞生了满足海量数据快速存储的专业领域型数据库-时序数据库OpenTsdb。
时间序列数据是指是一段时间内某个特定指标量的一系列数值数据点,OpenTsdb将时序数据通过指标和标签以及时间戳来唯一标识一个指标量,这些指标数据具有不可变性。TSD是OpenTsdb的服务进程,它是基于HBase集群的无状态服务,它通过将指标和标签数据数字化映射的方式、指定时间间隔的相同标签的指标数据聚合的方式以及Snappy、Zlib等数据压缩技术提高数据I/O的效率。
物联网平台中,数据快速存储和读取的时序数据库OpenTsdb集群支持大量时序数据实时写入和采样分析,但是,却无法满足某些特定场景的实时分析应用(如监控平台的报警需求)。
发明内容
本发明针对目前技术发展的需求和不足之处,提供一种基于OpenTsdb实时同步时序数据至Kafka的方法,在不影响时序数据写入时序数据库性能的前提下,将时序数据和注释数据实时发布至分布式消息队列Kafka的相应主题,以便下游不同的订阅者订阅时序数据或注释数据,研发满足特定需求的应用,尤其是对实时性要求较高的应用场景。
本发明的一种基于OpenTsdb实时同步时序数据至Kafka的方法,解决上述技术问题采用的技术方案如下:
一种基于OpenTsdb实时同步时序数据至Kafka的方法,利用OpenTsdb自定义插件机制自定义opentsdb-rtpub-kafka插件,自定义的opentsdb-rtpub-kafka插件运行在每个TSD实例中,将时序数据和注释数据实时发布至分布式消息队列Kafka中的相应主题。
可选的,所涉及opentsdb-rtpub-kafka插件包括Kafka实时发布插件配置单元和kafka实时发布器;
Kafka实时发布插件配置单元继承自Config类,负责设置和解析自定义opentsdb-rtpub-kafka插件相应Kafka集群的地址、主题及其他配置参数;
kafka实时发布器继承自abstract RTPublisher抽象类,负责将时序数据和注释数据实时发布至分布式消息队列Kafka中的相应主题。
可选的,所涉及自定义的opentsdb-rtpub-kafka插件基于插件版本、插件初始化及停止插件方法来管理插件的生命周期。
进一步可选的,所涉及自定义的opentsdb-rtpub-kafka插件基于两个发布数据点方法,支持将值为整型和浮点型的时序数据根据参数配置项定义的时间间隔和每个批次的最大消息数量实时发布至数据点参数项指定的主题中。
进一步可选的,所涉及自定义的opentsdb-rtpub-kafka插件基于发布注解方法,支持将注释数据根据参数配置项定义的时间间隔和每个批次的最大消息数量实时发布至注解参数项指定的主题中。
进一步可选的,所涉及自定义的opentsdb-rtpub-kafka插件基于收集状态方法,将发送到Kafka中相应主题的时序数据数量和注释数据数量通过收集器分别收集至数据点和注解两个监控指标中。
可选的,利用OpenTsdb自定义插件机制自定义opentsdb-rtpub-kafka插件时,在OpenTsdb的配置文件opentsdb.config中增加opentsdb-rtpub-kafka插件的相关配置项,增加的配置项包括发布插件路径、启用标识、插件全路径、kafka集群地址、数据点主题、注解主题。
进一步可选的,利用OpenTsdb自定义插件机制自定义opentsdb-rtpub-kafka插件后,需要将opentsdb-rtpub-kafka插件复制到时序数据库核心插件路径参数项指定的路径下,随后即可在TSD实例启动的同时启用opentsdb-rtpub-kafka插件;
启用opentsdb-rtpub-kafka插件后,即可异步且实时的将时序数据和注释数据发送至分布式消息队列Kafka的相应主题中。
本发明的一种基于OpenTsdb实时同步时序数据至Kafka的方法,与现有技术相比具有的有益效果是:
本发明在TSD实例启动的同时启用opentsdb-rtpub-kafka插件,opentsdb-rtpub-kafka插件在不影响时序数据写入时序数据库性能的前提下,可以将时序数据和注释数据实时发布至分布式消息队列Kafka的相应主题,以便下游不同的订阅者订阅时序数据或注释数据,研发满足特定需求的应用,尤其是对实时性要求较高的应用场景。
附图说明
附图1是本发明的方法流程示意图;
附图2是本发明中opentsdb-rtpub-kafka插件的类图。
具体实施方式
为使本发明的技术方案、解决的技术问题和技术效果更加清楚明白,以下结合具体实施例,对本发明的技术方案进行清楚、完整的描述。
实施例一:
结合附图1,本实施例提出一种基于OpenTsdb实时同步时序数据至Kafka的方法,利用OpenTsdb自定义插件机制自定义opentsdb-rtpub-kafka插件,自定义的opentsdb-rtpub-kafka插件运行在每个TSD实例中,将时序数据和注释数据实时发布至分布式消息队列Kafka中的相应主题。
本实施例中,opentsdb-rtpub-kafka插件包括Kafka实时发布插件配置单元和kafka实时发布器。
结合附图2,Kafka实时发布插件配置单元Kafka RT PubPlugin Config继承自Config类,负责设置和解析自定义opentsdb-rtpub-kafka插件相应Kafka集群的地址、主题及其他配置参数。
kafka实时发布器Kafka RT Publisher继承自abstract RTPublisher抽象类,负责将时序数据和注释数据实时发布至分布式消息队列Kafka中的相应主题。
本实施例中,利用OpenTsdb自定义插件机制自定义opentsdb-rtpub-kafka插件时,在OpenTsdb的配置文件opentsdb.config中增加opentsdb-rtpub-kafka插件的相关配置项,增加的配置项包括发布插件路径、启用标识、插件全路径、kafka集群地址、数据点主题、注解主题。
本实施例中,利用OpenTsdb自定义插件机制自定义opentsdb-rtpub-kafka插件后,需要将opentsdb-rtpub-kafka插件复制到时序数据库核心插件路径参数项指定的路径下,随后即可在TSD实例启动的同时启用opentsdb-rtpub-kafka插件;
启用opentsdb-rtpub-kafka插件后,即可异步且实时的将时序数据和注释数据发送至分布式消息队列Kafka的相应主题中。
实施例二:
结合附图1,本实施例提出一种基于OpenTsdb实时同步时序数据至Kafka的方法,利用OpenTsdb自定义插件机制自定义opentsdb-rtpub-kafka插件,自定义的opentsdb-rtpub-kafka插件运行在每个TSD实例中,将时序数据和注释数据实时发布至分布式消息队列Kafka中的相应主题。
本实施例中,opentsdb-rtpub-kafka插件包括Kafka实时发布插件配置单元和kafka实时发布器。
参考附图2,Kafka实时发布插件配置单元Kafka RT PubPlugin Config继承自Config类,负责设置和解析自定义opentsdb-rtpub-kafka插件相应Kafka集群的地址、主题及其他配置参数。
kafka实时发布器Kafka RT Publisher继承自abstract RTPublisher抽象类,负责将时序数据和注释数据实时发布至分布式消息队列Kafka中的相应主题。
本实施例中,为了更好的将时序数据和注释数据实时发布至分布式消息队列Kafka中的相应主题,自定义的opentsdb-rtpub-kafka插件还可以实现如下方法:
(a)自定义的opentsdb-rtpub-kafka插件基于插件版本、插件初始化及停止插件方法来管理插件的生命周期。
(b)自定义的opentsdb-rtpub-kafka插件基于两个发布数据点方法,支持将值为整型和浮点型的时序数据根据参数配置项定义的时间间隔和每个批次的最大消息数量实时发布至数据点参数项指定的主题中。
(c)自定义的opentsdb-rtpub-kafka插件基于发布注解方法,支持将注释数据根据参数配置项定义的时间间隔和每个批次的最大消息数量实时发布至注解参数项指定的主题中。
(d)自定义的opentsdb-rtpub-kafka插件基于收集状态方法,将发送到Kafka中相应主题的时序数据数量和注释数据数量通过收集器分别收集至数据点和注解两个监控指标中。
本实施例中,利用OpenTsdb自定义插件机制自定义opentsdb-rtpub-kafka插件时,在OpenTsdb的配置文件opentsdb.config中增加opentsdb-rtpub-kafka插件的相关配置项,增加的配置项包括发布插件路径、启用标识、插件全路径、kafka集群地址、数据点主题、注解主题。
本实施例中,利用OpenTsdb自定义插件机制自定义opentsdb-rtpub-kafka插件后,需要将opentsdb-rtpub-kafka插件复制到时序数据库核心插件路径参数项指定的路径下,随后即可在TSD实例启动的同时启用opentsdb-rtpub-kafka插件;
启用opentsdb-rtpub-kafka插件后,即可异步且实时的将时序数据和注释数据发送至分布式消息队列Kafka的相应主题中。
综上可知,采用本发明的一种基于OpenTsdb实时同步时序数据至Kafka的方法,可以将时序数据和注释数据实时发布至分布式消息队列Kafka的相应主题,以便下游不同的订阅者订阅时序数据或注释数据。
以上应用具体个例对本发明的原理及实施方式进行了详细阐述,这些实施例只是用于帮助理解本发明的核心技术内容。基于本发明的上述具体实施例,本技术领域的技术人员在不脱离本发明原理的前提下,对本发明所作出的任何改进和修饰,皆应落入本发明的专利保护范围。
- 一种基于OpenTsdb实时同步时序数据至Kafka的方法
- 一种基于Spark SQL的OpenTsdb时序数据查询方法