CN110795428A - 应用于工业物联网的时序数据存储方法和时序数据库 - Google Patents
应用于工业物联网的时序数据存储方法和时序数据库 Download PDFInfo
- Publication number
- CN110795428A CN110795428A CN201910958162.9A CN201910958162A CN110795428A CN 110795428 A CN110795428 A CN 110795428A CN 201910958162 A CN201910958162 A CN 201910958162A CN 110795428 A CN110795428 A CN 110795428A
- Authority
- CN
- China
- Prior art keywords
- time
- time sequence
- sequence data
- topic
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2474—Sequence data queries, e.g. querying versioned data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2477—Temporal data queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种应用于工业物联网的时序数据存储方法和时序数据库,该方法包括:获取待存储的时序数据,对时序数据进行清洗;根据时序数据的来源分配时序数据的topic,将清洗后的时序数据写入kafka中topic对应的partition中,在写入过程中,缓存每条时序数据对应的采集时间戳,以及每条时序数据在partition中的offset信息;整理合并各partition下的offset信息,确定topic、采集时间戳与offset信息之间的关联关系;将topic、采集时间戳与offset信息之间关联关系持久化到索引库。本申请可以降低因额外引入新的时序数据库而导致的数据处理复杂度和数据冗余程度。
Description
技术领域
本申请涉及数据库技术领域,尤其涉及一种应用于工业物联网的时序数据存储方法和时序数据库。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
工业物联网(Industrial Internet of Things,IIOT)场景下,因为涉及到海量数据库的采集、计算和分析等过程,基于Hadoop的大数据平台几乎是必不可少的,而由于IIOT本身的数据特性,通常还要引入诸如OpenTSDB、Cassandra等时序数据库管理从传感器或其他终端上采集的指标数据。新增一项数据库,会导致部署运维难度大幅上升,并且由于多一份数据存储,涉及到的数据同步、输出流程增加,导致数据处理复杂度与数据冗余程度双双提升。
发明内容
本申请实施例提供一种应用于工业物联网的时序数据存储方法,采用大数据平台中必备的组件kafka来实现时序数据库的功能,用以降低因需额外引入一个新的时序数据库而导致的数据处理复杂度、数据冗余程度和项目实施维护复杂度,该方法包括:
获取待存储的时序数据,对时序数据进行清洗,所述时序数据中携带采集时间戳;根据时序数据的来源分配时序数据的类别(topic),将清洗后的时序数据写入消息分发组件(kafka)中topic对应的分区(partition)中,在写入过程中,缓存每条时序数据对应的采集时间戳,以及每条时序数据在partition中的偏移量(offset)信息;根据采集时间戳所指示的时间,整理合并各partition下的offset信息,确定topic、采集时间戳与offset信息之间的关联关系;将topic、采集时间戳与offset信息之间关联关系持久化到索引库。
本申请实施例还提供一种时序数据库,采用大数据平台中必备的组件kafka来实现时序数据库的功能,用以降低因需额外引入一个新的时序数据库而导致的数据处理复杂度、数据冗余程度和项目实施维护复杂度,该时序数据库包括:
获取模块,用于获取待存储的时序数据,对时序数据进行清洗,所述时序数据中携带采集时间戳;数据写入模块,用于根据获取模块获取的时序数据的来源分配时序数据的topic,将清洗后的时序数据写入kafka中topic对应的partition中,在写入过程中,缓存每条时序数据对应的采集时间戳,以及每条时序数据在partition中的offset信息;确定模块,用于根据采集时间戳所指示的时间,整理合并各partition下的offset信息,确定topic、采集时间戳与offset信息之间的关联关系;持久化索引模块,用于将确定模块确定的topic、采集时间戳与offset信息之间关联关系持久化到索引库。
本申请实施例中,将工业物联网中传感器等设备产生的时序数据存储在kafka中,由于kafka是工业物联网所需的大数据平台的常规必备组件,这样就实现了将时序数据存储在大数据平台上,不需要再额外增加一个时序数据库来存储时序数据,降低了数据库的部署运维难度;同时,由于未新增时序数据库,也就不会增加数据同步和输出的流程,降低了因增加使用时序数据库而导致的数据处理复杂度和数据冗余程度。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本申请实施例中一种应用于工业物联网的时序数据存储方法的流程图;
图2为本申请实施例中一种查询kafka中存储数据的示意图;
图3为本申请实施例中一种时序数据库的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本申请实施例做进一步详细说明。在此,本申请的示意性实施例及其说明用于解释本申请,但并不作为对本申请的限定。
时序数据库具有如下特点:
1、数据写入时,高并发、持续性写,写入后数据只读,不可修改;
2、数据存储时,根据measurement、数据时间戳(timestamp)与数据统计维度(tag)在磁盘上分区域存储;
3、数据读取时,一般根据维度与时段批量查询和统计,很少检索单条记录。
IIOT场景的数据集有如下特点:
1、原始指标需要支持高并发、持续性的批量采集,指标一次性写入,无需更新;
2、需支持根据时间段或指标项或部分维度进行批量查询和统计分析。
发明人经仔细研究IIOT与时序数据库的核心特征后发现,在IIOT场景下,事实上不需要用到完整的时序数据库功能,可以基于Kafka的特性,通过spark/flink+hbase/mysql/es等来实现一个轻量级的时序数据库。由于实现轻量级数据库的这几项组件均为大数据平台常规必备的组件,因此轻量级的时序数据库在开发部署方面需要额外投入的成本非常低。
基于上述研究发现,本申请提供了一种应用于工业物联网的时序数据库存储数据方法,如图1所示,该方法包括步骤101至步骤104:
步骤101、获取待存储的时序数据,对时序数据进行清洗。
其中,时序数据中携带采集时间戳,采集时间戳用于标记时序数据被采集的时刻。例如,2019年9月1日8点10分10秒采集了A数据,则A数据中携带的采集时间戳为2019年9月1日8点10分10秒。
具体的,按照如下步骤1011至步骤1013对时序数据进行清洗:
步骤1011、从时序数据中截取采集时间戳。
步骤1012、对时序数据进行标准化处理。
标准化处理过程包括两部分,其一是对时序数据中的各指标项和各指标项对应的详细数据进行格式标准化处理,另一是对以指定格式,如类似字符分隔值(Comma-Separated Values,CSV)格式的文本结构,组装上述进行过格式标准化处理的数据。
对各指标项进行格式标准化处理时,将各指标项的格式转换为tagk→tagv格式,tagk→tagv格式中key和value成对存在。其中,key是关键字,value是值。示例性的,各指标项如CPU利用率、带宽、上行流量或下行流量等,作为key,而上述key对应的具体数值则为value。
对各指标项对应的详细数据进行格式标准化时,将详细数据转换为预设的格式,例如,将采集时间转换为长度较短的字符串或unix时间戳,数值转换为符合要求的单位的数值,或者,将设备信息转换为ID等。再如,如果采集时间戳为2019年9月1日8点10分10秒,在一种情况下,可以利用采集时间戳与标准时间之间的时间差来表示采集时间,unix时间戳采用的标准时间是格林威治时间1970年01月01日00时00分00秒(即北京时间1970年01月01日08时00分00秒),则可以将采集时间戳表示为1567296610,这样就大大减少了需要保存的字符串的数量,减轻了存储负担。
步骤1013、将标准化处理后的时序数据按照采集时间戳的先后顺序进行排序。
需要说明的是,可以按照采集时间戳由先至后的顺序进行排序,也可以按照采集时间戳由后至先的顺序进行排序。这样,排序后的时序数据依次写入kafka中,从而使得相同时间段内的数据尽量以相邻数据块排布在磁盘中。
步骤102、根据时序数据的来源分配时序数据的topic,将清洗后的时序数据写入kafka中topic对应的partition中,在写入过程中,缓存每条时序数据对应的采集时间戳,以及每条时序数据在partition中的offset信息。
其中,时序数据的来源包括工业物联网中的采集设备、控制器或传感器等设备。
在Kafka中,每条发送到kafka的时序数据均具有一个类别,比如,如果时序数据来源于温度传感器,则时序数据的topic为温度;如果时序数据来自于湿度传感器,则时序数据的topic为湿度。从物理上来说,不同topic的时序数据是分开存储的,每个topic可以接收多个生产者(producer)发送的数据,也可以由多个消费者(consumer)去消费其中的数据。
每个topic可以分为多个partition,一般来说,kafka根据broker节点的数量来确定partition的数量,partition的数量大于等于broker节点的数量。在partition中存储的每条时序数据都具有一个offset,offset是时序数据被添加到partition时,partition按照自身接收时序数据的时间先后按顺序进行分配的。在同一个partition中,offset可以用于区分不同的时序数据。例如,当一个partition存储1000条时序数据时,这1000条时序数据对应的offset可以为0,1,2,…,999。
在本申请实施例中,当将清洗后的时序数据写入partition的过程中,缓存每条时序数据对应的采集时间戳和offset信息,以便于后续查询某个时间段采集的数据时,可以快速根据采集时间戳确定数据的offset,进而通过offset快速确定数据的存储位置。
步骤103、根据采集时间戳所指示的时间,整理合并各partition下的offset信息,确定topic、采集时间戳与offset信息之间的关联关系。
具体的,根据采集时间戳所指示的时间,统计每个指定时间段内从开始时刻至终止时刻中采集的时序数据对应的offset信息;将统计的offset信息中,连续的offset信息合并成offset段;将topic、每个指定时间段与对应的offset段之间的关联关系作为topic、采集时间戳与offset信息之间的关联关系。
其中,指定时间段的长度是在步骤102实施之前由用户设定的,其值可以为1分钟、3分钟或5分钟等,对于其具体值,在此不做限定。
以指定时间段的长度为1分钟为例,统计每分钟内第0秒至第59秒采集的数据对应的offset信息,如果该1分钟的开始时刻为2019年9月1日8点10分0秒,结束时刻为2019年9月1日8点10分59秒,则统计时序数据戳在2019年9月1日8点10分0秒至2019年9月1日8点10分59秒之间的时序数据对应的offset信息。若该1分钟之间统计的offset信息为1102、1103、1104、…、1201、1209、1210、1211、1212、…、1230、1300、1301、1302、1303、1304,那么将上述offset信息中连续的offset信息合并成的offset段为1102~1201、1209~1230、1300~1304。
步骤104、将topic、采集时间戳与offset信息之间关联关系持久化到索引库。
在本申请实施例中,可以使用es、hbase或mysql等技术作为索引库的数据存储方案。
由于网络延迟、不同网络的数据传输速度不同或上传时序数据的设备中存在数据积压等情况,在采集时间戳在同一指定时间段范围内的数据可能难以同时到达kafka,这时,先到达kafka的时序数据已经被存储到partition中,时序数据的采集时间戳、topic和offset信息之间的关联关系也已经被持久化至索引库,后到达的数据刚刚到达kafka。由于先到达的时序数据与后到达的时序数据所在的指定时间段相同,如都是在2019年9月1日8点10分0秒至2019年9月1日8点10分59秒之间采集的,后到达的数据需要和先到达的数据存储在相同的partition中,此时,就可以查询索引库中,与待存储的指定时间段中采集的时序数据的topic相同的topic下是否已记录与待存储的指定时间段相同的时间段。比如,待存储的指定时间段为2019年9月1日8点10分0秒至2019年9月1日8点10分59秒,若已记录的时间段为2019年9月1日8点10分0秒至2019年9月1日8点10分59秒和2019年9月1日8点11分0秒至2019年9月1日8点11分59秒,则待存储的指定时间段与已记录的时间段中的一个时间段相同;若已记录的时间段为2019年9月1日8点12分0秒至2019年9月1日8点12分59秒和2019年9月1日8点15分0秒至2019年9月1日8点15分59秒,则待存储的指定时间段与已记录的时间段中的任何一个时间段均不相同。
如果索引库中已记录与待存储的指定时间段相同的时间段,则将待存储的指定时间段对应的offset段与索引库中记录的offset段取并集合并存储,其中,如果待存储的指定时间段对应的offset段与索引库中记录的offset段连续,则将连续的offset段合并为一个offset段。示例性的,如果当前索引库中2019年9月1日8点10分0秒至2019年9月1日8点10分59秒这一时间段对应的offset段为1102~1201、1209~1230、1300~1304,待存储的offset段为1305~1360、1380~1410,offset段中1300~1304和1305~1360连续,则将其合并为1300~1360,最终索引库中存储的offset段为1102~1201、1209~1230、1300~1360、1380~1410。
如果索引库中没有记录与待存储的指定时间段相同的时间段,则直接将待存储的指定时间段与对应的offset段持久化到索引库。
索引库中存储的topic、指定时间段与offset信息之间的关联关系可以供用户快速查询到所需数据。具体的,在获取查询条件后,确定查询时段范围和所需查询数据的topic;按照所需查询数据的topic和查询时段范围,从索引库中检索所需查询数据对应的offset信息;根据所需查询数据对应的offset信息,从Kafka中读取并显示所需查询数据。
如图2所示,在kafka中,各时间段内的数据大部分情况下是连续分布的。可以使用Spark或Flink等具备查询功能的数据处理引擎,根据查询时段范围对应的offset信息,从kafka中读取数据,或者对数据进行汇总统计。如果存在查询时间范围对应多个offset段,可以使用不同的切片,以提高查询的并发度。
本申请实施例中,将工业物联网中传感器等设备产生的时序数据存储在kafka中,由于kafka是工业物联网所需的大数据平台的常规必备组件,这样就实现了将时序数据存储在大数据平台上,不需要再额外增加一个时序数据库来存储时序数据,降低了数据库的部署运维难度;同时,由于未新增时序数据库,也就不会增加数据同步和输出的流程,降低了因增加使用时序数据库而导致的数据处理复杂度和数据冗余程度。
本申请实施例提供了一种时序数据库,如图3所示,时序数据库300包括获取模块301、数据写入模块302、确定模块303和持久化索引模块304。
其中,获取模块301,用于获取待存储的时序数据,对时序数据进行清洗,时序数据中携带采集时间戳。
数据写入模块302,用于根据获取模块301获取的时序数据的来源分配时序数据的类别topic,将清洗后的时序数据写入kafka中topic对应的分区partition中,在写入过程中,缓存每条时序数据对应的采集时间戳,以及每条时序数据在partition中的offset信息。
确定模块303,用于根据采集时间戳所指示的时间,整理合并各partition下的offset信息,确定topic、采集时间戳与offset信息之间的关联关系;
持久化索引模块304,用于将确定模块303确定的topic、采集时间戳与offset信息之间关联关系持久化到索引库。
在本申请实施例的一种实现方式中,获取模块301,用于:
从时序数据中截取采集时间戳;
对时序数据进行标准化处理;
将标准化处理后的时序数据按照采集时间戳的先后顺序进行排序。
在本申请实施例的一种实现方式中,确定模块303,用于:
根据采集时间戳所指示的时间,统计每个指定时间段内从开始时刻至终止时刻中采集的时序数据对应的offset信息;
将统计的offset信息中,连续的offset信息合并成offset段;
将topic、每个指定时间段与对应的offset段之间的关联关系作为topic、采集时间戳与offset信息之间的关联关系。
在本申请实施例的一种实现方式中,持久化索引模块304,用于
查询索引库中,与待存储的指定时间段中采集的时序数据的topic相同的topic下是否已记录与待存储的指定时间段相同的时间段;
如果索引库中已记录与待存储的指定时间段相同的时间段,则将待存储的指定时间段对应的offset段与索引库中记录的offset段取并集合并存储,其中,如果待存储的指定时间段对应的offset段与索引库中记录的offset段连续,则将连续的offset段合并为一个offset段;
如果索引库中没有记录与待存储的指定时间段相同的时间段,则将待存储的指定时间段与对应的offset段持久化到索引库。
在本申请实施例的一种实现方式中,时序数据库300还包括查询模块305,用于:
获取查询条件,确定查询时段范围和所需查询数据的topic;
按照所需查询数据的topic和查询时段范围,从索引库中检索所需查询数据对应的offset信息;
根据所需查询数据对应的offset信息,从Kafka中读取并显示所需查询数据。
本申请实施例中,将工业物联网中传感器等设备产生的时序数据存储在kafka中,由于kafka是工业物联网所需的大数据平台的常规必备组件,这样就实现了将时序数据存储在大数据平台上,不需要再额外增加一个时序数据库来存储时序数据,降低了数据库的部署运维难度;同时,由于未新增时序数据库,也就不会增加数据同步和输出的流程,降低了因增加使用时序数据库而导致的数据处理复杂度和数据冗余程度。
本申请实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现步骤101至步骤104及其各种实现方式中任一方法。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有执行步骤101至步骤104任一方法的计算机程序。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施例而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (12)
1.一种应用于工业物联网的时序数据存储方法,其特征在于,所述方法包括:
获取待存储的时序数据,对时序数据进行清洗,所述时序数据中携带采集时间戳;
根据时序数据的来源分配时序数据的类别topic,将清洗后的时序数据写入消息分发组件kafka中topic对应的分区partition中,在写入过程中,缓存每条时序数据对应的采集时间戳,以及每条时序数据在partition中的偏移量offset信息;
根据采集时间戳所指示的时间,整理合并各partition下的offset信息,确定topic、采集时间戳与offset信息之间的关联关系;
将topic、采集时间戳与offset信息之间关联关系持久化到索引库。
2.根据权利要求1所述的方法,其特征在于,所述对时序数据进行清洗,包括:
从时序数据中截取采集时间戳;
对时序数据进行标准化处理;
将标准化处理后的时序数据按照采集时间戳的先后顺序进行排序。
3.根据权利要求1所述的方法,其特征在于,根据采集时间戳所指示的时间,整理合并各partition下的offset信息,确定topic、采集时间戳与offset信息之间的关联关系,包括:
根据采集时间戳所指示的时间,统计每个指定时间段内从开始时刻至终止时刻中采集的时序数据对应的offset信息;
将统计的offset信息中,连续的offset信息合并成offset段;
将topic、每个指定时间段与对应的offset段之间的关联关系作为topic、采集时间戳与offset信息之间的关联关系。
4.根据权利要求3所述的方法,其特征在于,所述将topic、采集时间戳与offset信息之间的关联关系持久化到索引库,包括
查询索引库中,与待存储的指定时间段中采集的时序数据的topic相同的topic下是否已记录与待存储的指定时间段相同的时间段;
如果索引库中已记录与待存储的指定时间段相同的时间段,则将待存储的指定时间段对应的offset段与索引库中记录的offset段取并集合并存储,其中,如果待存储的指定时间段对应的offset段与索引库中记录的offset段连续,则将连续的offset段合并为一个offset段;
如果索引库中没有记录与待存储的指定时间段相同的时间段,则将待存储的指定时间段与对应的offset段持久化到索引库。
5.根据权利要求1所述的方法,其特征在于,在将topic、采集时间戳与offset信息之间的关联关系持久化到索引库之后,所述方法还包括:
获取查询条件,确定查询时段范围和所需查询数据的topic;
按照所需查询数据的topic和查询时段范围,从索引库中检索所需查询数据对应的offset信息;
根据所需查询数据对应的offset信息,从Kafka中读取并显示所需查询数据。
6.一种时序数据库,其特征在于,所述时序数据库包括:
获取模块,用于获取待存储的时序数据,对时序数据进行清洗,所述时序数据中携带采集时间戳;
数据写入模块,用于根据获取模块获取的时序数据的来源分配时序数据的topic,将清洗后的时序数据写入kafka中topic对应的partition中,在写入过程中,缓存每条时序数据对应的采集时间戳,以及每条时序数据在partition中的offset信息;
确定模块,用于根据采集时间戳所指示的时间,整理合并各partition下的offset信息,确定topic、采集时间戳与offset信息之间的关联关系;
持久化索引模块,用于将确定模块确定的topic、采集时间戳与offset信息之间关联关系持久化到索引库。
7.根据权利要求6所述的时序数据库,其特征在于,所述获取模块,用于:
从时序数据中截取采集时间戳;
对时序数据进行标准化处理;
将标准化处理后的时序数据按照采集时间戳的先后顺序进行排序。
8.根据权利要求6所述的时序数据库,其特征在于,所述确定模块,用于:
根据采集时间戳所指示的时间,统计每个指定时间段内从开始时刻至终止时刻中采集的时序数据对应的offset信息;
将统计的offset信息中,连续的offset信息合并成offset段;
将topic、每个指定时间段与对应的offset段之间的关联关系作为topic、采集时间戳与offset信息之间的关联关系。
9.根据权利要求8所述的时序数据库,其特征在于,所述持久化索引模块,用于
查询索引库中,与待存储的指定时间段中采集的时序数据的topic相同的topic下是否已记录与待存储的指定时间段相同的时间段;
如果索引库中已记录与待存储的指定时间段相同的时间段,则将待存储的指定时间段对应的offset段与索引库中记录的offset段取并集合并存储,其中,如果待存储的指定时间段对应的offset段与索引库中记录的offset段连续,则将连续的offset段合并为一个offset段;
如果索引库中没有记录与待存储的指定时间段相同的时间段,则将待存储的指定时间段与对应的offset段持久化到索引库。
10.根据权利要求6所述的时序数据库,其特征在于,所述时序数据库还包括查询模块,用于:
获取查询条件,确定查询时段范围和所需查询数据的topic;
按照所需查询数据的topic和查询时段范围,从索引库中检索所需查询数据对应的offset信息;
根据所需查询数据对应的offset信息,从Kafka中读取并显示所需查询数据。
11.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5任一所述方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至5任一所述方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910958162.9A CN110795428A (zh) | 2019-10-10 | 2019-10-10 | 应用于工业物联网的时序数据存储方法和时序数据库 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910958162.9A CN110795428A (zh) | 2019-10-10 | 2019-10-10 | 应用于工业物联网的时序数据存储方法和时序数据库 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110795428A true CN110795428A (zh) | 2020-02-14 |
Family
ID=69438883
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910958162.9A Pending CN110795428A (zh) | 2019-10-10 | 2019-10-10 | 应用于工业物联网的时序数据存储方法和时序数据库 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110795428A (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111639072A (zh) * | 2020-04-14 | 2020-09-08 | 北京中交兴路信息科技有限公司 | 一种车联网场景下的数据存储方法及系统、可读存储介质 |
CN111782636A (zh) * | 2020-06-30 | 2020-10-16 | 浙江中控技术股份有限公司 | 一种数据处理方法及装置 |
CN111966712A (zh) * | 2020-07-10 | 2020-11-20 | 武汉慧联无限科技有限公司 | 数据处理方法、装置、服务器及存储介质 |
CN112163015A (zh) * | 2020-09-22 | 2021-01-01 | 南京信息职业技术学院 | 一种物联网时序数据实时监控方法、装置和系统 |
CN112269670A (zh) * | 2020-10-30 | 2021-01-26 | 重庆紫光华山智安科技有限公司 | 数据入库方法、装置、系统及存储介质 |
CN112286948A (zh) * | 2020-11-18 | 2021-01-29 | 成都佳华物链云科技有限公司 | 时序数据库的数据存储方法、读取方法及装置 |
CN112328602A (zh) * | 2020-11-17 | 2021-02-05 | 中盈优创资讯科技有限公司 | 一种数据写入Kafka的方法、装置及设备 |
CN112597137A (zh) * | 2020-12-03 | 2021-04-02 | 广州启盟信息科技有限公司 | 位置感应数据清洗处理方法、装置及系统 |
CN112632127A (zh) * | 2020-12-29 | 2021-04-09 | 国华卫星数据科技有限公司 | 设备运行实时数据采集及时序的数据处理方法 |
CN112667628A (zh) * | 2020-07-03 | 2021-04-16 | 杭州星迈科技有限公司 | 一种大规模监控数据的存储方法、系统和可穿戴设备 |
CN113297278A (zh) * | 2021-07-26 | 2021-08-24 | 阿里云计算有限公司 | 时序数据库、数据处理方法、存储设备及计算机程序产品 |
CN113518365A (zh) * | 2021-04-29 | 2021-10-19 | 北京红山信息科技研究院有限公司 | 一种数据关联方法、装置、服务器及存储介质 |
CN114185887A (zh) * | 2021-11-25 | 2022-03-15 | 阿里云计算有限公司 | 数据的读写方法、计算设备及存储介质 |
CN114817679A (zh) * | 2022-04-14 | 2022-07-29 | 中南林业科技大学 | 一种物联网汇聚节点乱序时序数据的存储方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107133342A (zh) * | 2017-05-16 | 2017-09-05 | 广州舜飞信息科技有限公司 | 一种IndexR实时数据分析库 |
US20170329828A1 (en) * | 2016-05-13 | 2017-11-16 | Ayla Networks, Inc. | Metadata tables for time-series data management |
CN108093047A (zh) * | 2017-12-15 | 2018-05-29 | 北京小度信息科技有限公司 | 数据发送方法、装置、电子设备及中间件系统 |
CN108399263A (zh) * | 2018-03-15 | 2018-08-14 | 北京大众益康科技有限公司 | 时序数据的存储和查询方法及存储和处理平台 |
CN109597837A (zh) * | 2018-11-29 | 2019-04-09 | 深圳前海微众银行股份有限公司 | 时序数据的存储方法、查询方法及相关设备 |
-
2019
- 2019-10-10 CN CN201910958162.9A patent/CN110795428A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170329828A1 (en) * | 2016-05-13 | 2017-11-16 | Ayla Networks, Inc. | Metadata tables for time-series data management |
CN107133342A (zh) * | 2017-05-16 | 2017-09-05 | 广州舜飞信息科技有限公司 | 一种IndexR实时数据分析库 |
CN108093047A (zh) * | 2017-12-15 | 2018-05-29 | 北京小度信息科技有限公司 | 数据发送方法、装置、电子设备及中间件系统 |
CN108399263A (zh) * | 2018-03-15 | 2018-08-14 | 北京大众益康科技有限公司 | 时序数据的存储和查询方法及存储和处理平台 |
CN109597837A (zh) * | 2018-11-29 | 2019-04-09 | 深圳前海微众银行股份有限公司 | 时序数据的存储方法、查询方法及相关设备 |
Non-Patent Citations (2)
Title |
---|
MARTIN KLEPPMANN: "《Designing Data-Intensive Applications》", 1 March 2017, O’REILLY MEDIA * |
扎克BEGOD: "Kafka 0.10.1.1 以时间戳查询消息和暂停某些分区消费和消费速度控制", 《HTTPS://BLOG.CSDN.NET/AA5305123/ARTICLE/DETAILS/84104540》 * |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111639072A (zh) * | 2020-04-14 | 2020-09-08 | 北京中交兴路信息科技有限公司 | 一种车联网场景下的数据存储方法及系统、可读存储介质 |
CN111782636A (zh) * | 2020-06-30 | 2020-10-16 | 浙江中控技术股份有限公司 | 一种数据处理方法及装置 |
CN112667628A (zh) * | 2020-07-03 | 2021-04-16 | 杭州星迈科技有限公司 | 一种大规模监控数据的存储方法、系统和可穿戴设备 |
CN111966712A (zh) * | 2020-07-10 | 2020-11-20 | 武汉慧联无限科技有限公司 | 数据处理方法、装置、服务器及存储介质 |
CN112163015A (zh) * | 2020-09-22 | 2021-01-01 | 南京信息职业技术学院 | 一种物联网时序数据实时监控方法、装置和系统 |
CN112163015B (zh) * | 2020-09-22 | 2023-09-22 | 南京信息职业技术学院 | 一种物联网时序数据实时监控方法、装置和系统 |
CN112269670A (zh) * | 2020-10-30 | 2021-01-26 | 重庆紫光华山智安科技有限公司 | 数据入库方法、装置、系统及存储介质 |
CN112269670B (zh) * | 2020-10-30 | 2023-08-25 | 重庆紫光华山智安科技有限公司 | 数据入库方法、装置、系统及存储介质 |
CN112328602B (zh) * | 2020-11-17 | 2023-03-31 | 中盈优创资讯科技有限公司 | 一种数据写入Kafka的方法、装置及设备 |
CN112328602A (zh) * | 2020-11-17 | 2021-02-05 | 中盈优创资讯科技有限公司 | 一种数据写入Kafka的方法、装置及设备 |
CN112286948A (zh) * | 2020-11-18 | 2021-01-29 | 成都佳华物链云科技有限公司 | 时序数据库的数据存储方法、读取方法及装置 |
CN112286948B (zh) * | 2020-11-18 | 2023-05-23 | 成都佳华物链云科技有限公司 | 时序数据库的数据存储方法、读取方法及装置 |
CN112597137A (zh) * | 2020-12-03 | 2021-04-02 | 广州启盟信息科技有限公司 | 位置感应数据清洗处理方法、装置及系统 |
CN112632127B (zh) * | 2020-12-29 | 2022-07-15 | 国华卫星数据科技有限公司 | 设备运行实时数据采集及时序的数据处理方法 |
CN112632127A (zh) * | 2020-12-29 | 2021-04-09 | 国华卫星数据科技有限公司 | 设备运行实时数据采集及时序的数据处理方法 |
CN113518365A (zh) * | 2021-04-29 | 2021-10-19 | 北京红山信息科技研究院有限公司 | 一种数据关联方法、装置、服务器及存储介质 |
CN113518365B (zh) * | 2021-04-29 | 2023-11-17 | 北京红山信息科技研究院有限公司 | 一种数据关联方法、装置、服务器及存储介质 |
CN113297278A (zh) * | 2021-07-26 | 2021-08-24 | 阿里云计算有限公司 | 时序数据库、数据处理方法、存储设备及计算机程序产品 |
CN114185887A (zh) * | 2021-11-25 | 2022-03-15 | 阿里云计算有限公司 | 数据的读写方法、计算设备及存储介质 |
CN114817679A (zh) * | 2022-04-14 | 2022-07-29 | 中南林业科技大学 | 一种物联网汇聚节点乱序时序数据的存储方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110795428A (zh) | 应用于工业物联网的时序数据存储方法和时序数据库 | |
CN110321387B (zh) | 数据同步方法、设备及终端设备 | |
CN107038162B (zh) | 基于数据库日志的实时数据查询方法和系统 | |
CN109918349B (zh) | 日志处理方法、装置、存储介质和电子装置 | |
CN111078488B (zh) | 数据采集方法、装置、存储介质及系统 | |
CN102867071B (zh) | 一种网管海量历史数据管理方法 | |
CN110675194A (zh) | 一种漏斗分析方法、装置、设备及可读介质 | |
CN111143158B (zh) | 一种监控数据实时存储方法、系统、电子设备及存储介质 | |
CN112559475B (zh) | 数据实时捕获和传输方法及系统 | |
CN112328702B (zh) | 数据同步方法及系统 | |
CN113282611B (zh) | 一种流数据同步的方法、装置、计算机设备及存储介质 | |
CN108616556B (zh) | 数据处理方法、装置和系统 | |
Balis et al. | Towards an operational database for real-time environmental monitoring and early warning systems | |
CN108363791A (zh) | 一种数据库的数据同步方法和装置 | |
CN107153702A (zh) | 一种数据处理方法及装置 | |
CN113468196B (zh) | 用于处理数据的方法、装置、系统、服务器和介质 | |
CN107273403A (zh) | 一种历史数据收集及存储的方法 | |
CN113297245A (zh) | 获取执行信息的方法及装置 | |
CN104317820B (zh) | 报表的统计方法和装置 | |
CN107465574B (zh) | 互联网网站群平台系统及其并行隔离流式计算方法 | |
CN114124643B (zh) | 一种基于PaaS的网络设备流量采集方法及装置 | |
CN115794783A (zh) | 数据去重方法、装置、设备和介质 | |
CN106469086B (zh) | 事件处理方法和装置 | |
CN109510859A (zh) | 一种推送消息的到达量的统计方法和装置 | |
CN113220530A (zh) | 数据质量监控方法及平台 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200214 |