CN106909641A - 一种实时数据存储器 - Google Patents
一种实时数据存储器 Download PDFInfo
- Publication number
- CN106909641A CN106909641A CN201710084582.XA CN201710084582A CN106909641A CN 106909641 A CN106909641 A CN 106909641A CN 201710084582 A CN201710084582 A CN 201710084582A CN 106909641 A CN106909641 A CN 106909641A
- Authority
- CN
- China
- Prior art keywords
- data
- layer
- interface
- write
- real
- 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.)
- Granted
Links
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/25—Integrating or interfacing systems involving database management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- 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/221—Column-oriented storage; Management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种实时数据存储器,包括:接口层,用于对外提供查询接口和写入接口,将查询和写入命令解析成内部约定的数据格式,然后传递给缓存层,以及将查询结果和写入结果封装并进行应答;缓存层,用于接收来自接口层的查询命令和写入命令,并向所述接口层返回查询结果和写入结果;列式数据库层,用于保存数据索引和数据内容;数据持久层,用于采用分布式文件***,将文件块保存。本发明的优点和积极效果是:实现了物联网领域的国际标准,满足了物联网领域的主要应用场景。尤其对于具有大量的传感器数据的存储,不存在单点故障,容量巨大的同时满足高可靠性。
Description
技术领域
本发明涉及信息存储技术领域,具体地说,是涉及一种实时数据存储器。
背景技术
ISO18880是物联网领域的一个国际标准, 2015年发布,是一个将信息通信技术和能源节约结合的标准。该标准立足于物联网感知层与网络层数据传输所必需的关键点,通过感知层传感节点的多协议信息标准化处理,推动物联网网络层信息的标准化应用,规范网络层及应用层数据接口形式,进而可以形成物联网数据汇聚核心,能够使用准确的远程控制和操作,为社区管理员,公共服务提供者,个人用户等提供协作管理解决方案,以更有效地控制社区和建筑群内设施,如传感器,监测监控,暖通空调(暖气,通风和空调),照明***,消防***等,可以广泛使用在智能楼宇,公共社区,现代运输***,数字化家庭等领域。
在物联网领域,大量的传感器数据采用专门的***(实时数据库***)来存储,它是数据库***的一个分支,适用于处理不断更新的快速变化的数据。这些来自于传感器的数据都可以用一个四元组来表达:(数据点编号,时间戳,数值,数据质量)。数据点(简称测点)编号可采用GUID或其他唯一算法生成,绝大多数对传感数据的查询,以数据点编号+时间为条件,即查询某段时间内某些测点的数值,因此实时数据库多根据这些特定的应用场景进行设计和性能优化。实时数据***的实现,有采用现有的纯内存数据库,特点是速度快,但不能使数据持久化;有采用现有的关系数据库,但性能会有相当的损失。
物联网领域的传感数据一般都极其巨大,对于要处理动辄T级字节大小的文件,单个数据库、单个服务器往往很难满足要求,所以可以采用多个数据库、多台服务器联合部署方式,实现所谓的“群集数据库”。群集数据库一般由若干个实时/历史数据库库组成,对外提供统一的访问接口,但是解决不了巨型数据文件的问题。
发明内容
本发明为了解决现有存储器对于存储物联网领域中大量的传感器数据时,无法集存储速度、数据持久化、以及容纳巨型数据文件的优势于一体的技术问题,提出了一种实时数据存储器,可以解决上述问题。
为了解决上述技术问题,本发明采用以下技术方案予以实现:
一种实时数据存储器,包括:
接口层,用于对外提供查询接口和写入接口,将查询和写入命令解析成内部约定的数据格式,然后传递给缓存层,以及将查询结果和写入结果封装并进行应答;
缓存层,用于接收来自接口层的查询命令和写入命令,并向所述接口层返回查询结果和写入结果;
列式数据库层,用于保存数据索引和数据内容;
数据持久层,用于采用分布式文件***,将文件块保存。
进一步的,所述接口层提供的接口符合ISO18880的查询接口和写入接口。
进一步的,所述接口层将查询结果和写入结果按ISO18880协议格式进行应答。
进一步的,所述缓存层对于来自接口层的查询命令,首先查找缓存,如果缓存中存在查询命令中所要查询的信息,则将查询结果直接返回给接口层,如果缓存中没有查询命令中所要查询的信息,则将所述查询命令传递至列式数据库层进行查询,列式数据库层将查询结果发送至缓存层,由缓存层将查询结果发送至接口层,对于来自接口层的写入命令,缓存层将数据写入缓存队列,并生成写入结果返回给接口层。
进一步的,缓存层将数据写入缓存队列时,当发生超时或缓存满时,直接将数据提交给所述列式数据库层。
进一步的,所述缓存层采用分布式存储***进行缓存。
进一步的,所述列式数据库层按数据索引-数据内容的保存形式,数据索引按照生成规则生成,至少包括测点ID和测点编号两部分,当缓存层将查询命令传递至列式数据库层进行查询时,列式数据库层按照所述生成规则将查询命令生成查询数据索引,并按照所述查询数据索引查询出所对应的数据内容,然后将查询结果返回给所述缓存层。
进一步的,当有数据写入至所述列式数据库层时,列式数据库层按照所述生成规则生成写入数据索引,若该数据索引存在,读取对应的数据内容,并按时间顺序***或者更新所要写入的数据内容;若该数据索引不存在,则创建该数据索引并将对应的数据内容写入。
进一步的,所述数据内容包括测点属性和测点数据,所述列式数据库层中,测点属性与测点数据共享一套存储方式,由索引格式加以区分,在***或者更新所要写入的数据内容之前,若所述数据内容为测点数据,将所述测点数据进行压缩后进行更新或者写入,若所述数据内容为测点属性,则直接更新或者写入。
进一步的,所述数据持久层将文件块保存时,采用分布式文件***将文件块保存为若干份进行备份保存。
与现有技术相比,本发明的优点和积极效果是:
1、采用接口层、缓存层、列式数据库层、数据持久层共四层架构的方式,能够对外提供并行的查询和写入服务,简单高效实现了ISO18880标准中规定的实时数据存储器;
2、采用列式数据库作为存储的底层框架,能够实现历史数据的海量存储功能,同时保持查询的高效性;
3、采用分布式文件***保存列式数据,文件大小几乎没有限制,特别适合物联网领域众多测点数据的存储;
4、采用分布式内存缓存层作为前端处理,提高了读写性能;
5、采用国际标准接口,适应范围广:实现了物联网领域的国际标准,满足了物联网领域的主要应用场景。
结合附图阅读本发明实施方式的详细描述后,本发明的其他特点和优点将变得更加清楚。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明所提出的实时数据存储器的一种实施例原理方框图;
图2是本发明所提出的实时数据存储器的一种实施例中读写过原理方框图;
图3是本发明所提出的实时数据存储器的一种实施例中列式数据库层的原理图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一,本实施例提出了一种实时数据存储器,如图1所示,包括:
接口层,用于对外提供查询接口和写入接口,将查询和写入命令解析成内部约定的数据格式,然后传递给缓存层,以及将查询结果和写入结果封装并进行应答;
本层提供协议的解析(由外向内的操作命令)和协议的封装(由内向外的命令应答),即将查询和写入命令解析成内部约定的数据格式,然后传递给缓存层;将查询和写入的结果封装规定的协议格式进行应答。本实时数据存储器的应用场景的特点是需要将大量以时间/测点编号为维度的数据持续不断地写入实时数据存储器,同时会以这两个维度进行读取(查询),查询与写入是并行的,简单高效。
缓存层,用于接收来自接口层的查询命令和写入命令,并向所述接口层返回查询结果和写入结果;
本实施例的缓存层优选采用分布式存储***(例如redis),采用分布式内存缓存层作为前端处理,有助于提高读写性能。
列式数据库层,用于保存数据索引和数据内容;
采用列式数据库作为存储的底层框架,能够实现历史数据的海量存储功能,并且分布式存储的方式,不存在单点故障,容量巨大的同时满足高可靠性。
数据持久层,用于采用分布式文件***,将文件块保存。
数据持久层由于采用分布式文件***保存列式数据,文件大小几乎没有限制,特别适合物联网领域众多测点数据的存储。
接口层提供的接口符合ISO18880的查询接口和写入接口。采用国际标准接口,适应范围广:实现了物联网领域的国际标准,满足了物联网领域的主要应用场景。尤其对于具有大量的传感器数据的存储,满足高性能和高可靠性。
为了满足基于ISO18880标准中规定的接口,接口层将查询结果和写入结果按ISO18880协议格式进行应答,能够与外界同样基于ISO18880标准的设备进行通信。
作为一个优选的实施例,缓存层对于来自接口层的查询命令,如图2所示,首先查找缓存,如果缓存中存在查询命令中所要查询的信息,则将查询结果直接返回给接口层,如果缓存中没有查询命令中所要查询的信息,则将所述查询命令传递至列式数据库层进行查询,列式数据库层将查询结果发送至缓存层,若查询的为测点数据,需要解压后返回,如果是测点属性,则可直接返回,由缓存层将查询结果发送至接口层,对于来自接口层的写入命令,缓存层将数据写入缓存队列,并生成写入结果返回给接口层。所述缓存层采用分布式存储***进行缓存,通过采用分布式内存缓存***作为前端处理的方式,可以提高读写速率,对于缓存层中具有的数据,直接返回至接口层。
缓存层将数据写入缓存队列时,当发生超时或缓存满时,直接将数据提交给所述列式数据库层,即采用滞后写入方式,以提高数据写入效率。
列式数据库层为按数据索引-数据内容的保存形式,数据索引按照生成规则生成,至少包括测点ID和测点编号两部分,当缓存层将查询命令传递至列式数据库层进行查询时,列式数据库层按照所述生成规则将查询命令生成查询数据索引,并按照所述查询数据索引查询出所对应的数据内容,然后将查询结果返回给所述缓存层。
如图3所示,为列式数据库层的一种实施例的原理图,整个存储由一个“大”表构成,key(数据索引)-value(数据内容)形式,key(共16字节)由两部分组成:00000000+测点ID(8位数字)或者测点ID+以日表示的时间戳(如 20160101),当key是前者时,保存的是测点属性,保存方式可以是JSON格式,当key是后者时,保存的是该测点的当日数据。
当有数据写入至所述列式数据库层时,列式数据库层按照所述生成规则生成数据索引, 若该数据索引存在,读取对应的数据内容,并按时间顺序***或者更新所要写入的数据内容;若该数据索引不存在,则创建该数据索引并将对应的数据内容写入。
数据内容包括测点属性和测点数据,因测点属性和测点数据共享一种存储方式,索引格式加以区分,列式数据库层中在***或者更新所要写入的数据内容之前,进行判断,若所述数据内容为测点数据,将所述测点数据进行压缩后进行更新或者写入,若所述数据内容为测点属性,则直接更新或者写入。
所述数据持久层将文件块保存时,采用分布式文件***将文件块保存为若干份进行备份保存。长时间运行后,传感数据条目可到达亿级或百亿级,形成的文件大小可达TB级,采用传统保存方式,成本会急剧上升,因此数据库文件适宜采用分布式文件***,可选用现成已有的***(例如hadoop),分布式文件***会自动将文件块保持一定的备份数(一般为3),当一份出现故障时,依然可以保证***的可用性。
当然,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的普通技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也应属于本发明的保护范围。
Claims (10)
1.一种实时数据存储器,其特征在于,包括:
接口层,用于对外提供查询接口和写入接口,将查询和写入命令解析成内部约定的数据格式,然后传递给缓存层,以及将查询结果和写入结果封装并进行应答;
缓存层,用于接收来自接口层的查询命令和写入命令,并向所述接口层返回查询结果和写入结果;
列式数据库层,用于保存数据索引和数据内容;
数据持久层,用于采用分布式文件***,将文件块保存。
2.根据权利要求1所述的实时数据存储器,其特征在于,所述接口层提供的接口符合ISO18880的查询接口和写入接口。
3.根据权利要求2所述的实时数据存储器,其特征在于,所述接口层将查询结果和写入结果按ISO18880协议格式进行应答。
4.根据权利要求1所述的实时数据存储器,其特征在于,所述缓存层对于来自接口层的查询命令,首先查找缓存,如果缓存中存在查询命令中所要查询的信息,则将查询结果直接返回给接口层,如果缓存中没有查询命令中所要查询的信息,则将所述查询命令传递至列式数据库层进行查询,列式数据库层将查询结果发送至缓存层,由缓存层将查询结果发送至接口层,对于来自接口层的写入命令,缓存层将数据写入缓存队列,并生成写入结果返回给接口层。
5.根据权利要求4所述的实时数据存储器,其特征在于,缓存层将数据写入缓存队列时,当发生超时或缓存满时,直接将数据提交给所述列式数据库层。
6.根据权利要求4所述的实时数据存储器,其特征在于,所述缓存层采用分布式存储***进行缓存。
7.根据权利要求4-6任一项所述的实时数据存储器,其特征在于,所述列式数据库层按数据索引-数据内容的保存形式,数据索引按照生成规则生成,至少包括测点ID和测点编号两部分,当缓存层将查询命令传递至列式数据库层进行查询时,列式数据库层按照所述生成规则将查询命令生成查询数据索引,并按照所述查询数据索引查询出所对应的数据内容,然后将查询结果返回给所述缓存层。
8.根据权利要求7所述的实时数据存储器,其特征在于,当有数据写入至所述列式数据库层时,列式数据库层按照所述生成规则生成数据索引,若该数据索引存在,读取对应的数据内容,并按时间顺序***或者更新所要写入的数据内容;若该数据索引不存在,则创建该数据索引并将对应的数据内容写入。
9.根据权利要求8所述的实时数据存储器,其特征在于,所述数据内容包括测点属性和测点数据,所述列式数据库层中,测点属性与测点数据共享一套存储方式,由索引格式加以区分,若所述数据内容为测点数据,将所述测点数据进行压缩后进行更新或者写入,若所述数据内容为测点属性,则直接更新或者写入。
10.根据权利要求1-6任一项所述的实时数据存储器,其特征在于,所述数据持久层将文件块保存时,采用分布式文件***将文件块保存为若干份进行备份保存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710084582.XA CN106909641B (zh) | 2017-02-16 | 2017-02-16 | 一种实时数据存储器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710084582.XA CN106909641B (zh) | 2017-02-16 | 2017-02-16 | 一种实时数据存储器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106909641A true CN106909641A (zh) | 2017-06-30 |
CN106909641B CN106909641B (zh) | 2020-09-29 |
Family
ID=59208799
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710084582.XA Active CN106909641B (zh) | 2017-02-16 | 2017-02-16 | 一种实时数据存储器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106909641B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108573036A (zh) * | 2018-04-02 | 2018-09-25 | 携程旅游网络技术(上海)有限公司 | 历史数据的清理方法及其***、存储介质、电子设备 |
CN109656957A (zh) * | 2018-12-14 | 2019-04-19 | 中国银行股份有限公司 | 基于持久层框架的数据查询方法及装置 |
CN110858341A (zh) * | 2018-08-22 | 2020-03-03 | ***通信集团重庆有限公司 | 基于分布式存储***的指标监控方法、装置、设备和介质 |
CN111563546A (zh) * | 2020-04-29 | 2020-08-21 | 北京字节跳动网络技术有限公司 | 传感器数据匹配方法、装置、设备和存储介质 |
CN112835526A (zh) * | 2021-02-08 | 2021-05-25 | 福州大学 | 一种工程数据持久化存储***及方法 |
CN114077609A (zh) * | 2022-01-19 | 2022-02-22 | 北京四维纵横数据技术有限公司 | 数据存储及检索方法,装置,计算机可读存储介质及电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102214236A (zh) * | 2011-06-30 | 2011-10-12 | 北京新媒传信科技有限公司 | 一种海量数据处理方法和*** |
CN103699660A (zh) * | 2013-12-26 | 2014-04-02 | 清华大学 | 一种大规模网络流式数据缓存写入的方法 |
CN104750681A (zh) * | 2013-12-25 | 2015-07-01 | ***通信集团辽宁有限公司 | 一种海量数据的处理方法及装置 |
CN104820714A (zh) * | 2015-05-20 | 2015-08-05 | 国家电网公司 | 基于hadoop的海量瓦片小文件存储管理方法 |
CN105528367A (zh) * | 2014-09-30 | 2016-04-27 | 华东师范大学 | 基于开源大数据对时间敏感数据的存储和近实时查询方法 |
US20160267132A1 (en) * | 2013-12-17 | 2016-09-15 | Hewlett-Packard Enterprise Development LP | Abstraction layer between a database query engine and a distributed file system |
CN106021484A (zh) * | 2016-05-18 | 2016-10-12 | 中国电子科技集团公司第三十二研究所 | 基于内存计算的可定制多模式大数据处理*** |
-
2017
- 2017-02-16 CN CN201710084582.XA patent/CN106909641B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102214236A (zh) * | 2011-06-30 | 2011-10-12 | 北京新媒传信科技有限公司 | 一种海量数据处理方法和*** |
US20160267132A1 (en) * | 2013-12-17 | 2016-09-15 | Hewlett-Packard Enterprise Development LP | Abstraction layer between a database query engine and a distributed file system |
CN104750681A (zh) * | 2013-12-25 | 2015-07-01 | ***通信集团辽宁有限公司 | 一种海量数据的处理方法及装置 |
CN103699660A (zh) * | 2013-12-26 | 2014-04-02 | 清华大学 | 一种大规模网络流式数据缓存写入的方法 |
CN105528367A (zh) * | 2014-09-30 | 2016-04-27 | 华东师范大学 | 基于开源大数据对时间敏感数据的存储和近实时查询方法 |
CN104820714A (zh) * | 2015-05-20 | 2015-08-05 | 国家电网公司 | 基于hadoop的海量瓦片小文件存储管理方法 |
CN106021484A (zh) * | 2016-05-18 | 2016-10-12 | 中国电子科技集团公司第三十二研究所 | 基于内存计算的可定制多模式大数据处理*** |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108573036A (zh) * | 2018-04-02 | 2018-09-25 | 携程旅游网络技术(上海)有限公司 | 历史数据的清理方法及其***、存储介质、电子设备 |
CN110858341A (zh) * | 2018-08-22 | 2020-03-03 | ***通信集团重庆有限公司 | 基于分布式存储***的指标监控方法、装置、设备和介质 |
CN109656957A (zh) * | 2018-12-14 | 2019-04-19 | 中国银行股份有限公司 | 基于持久层框架的数据查询方法及装置 |
CN111563546A (zh) * | 2020-04-29 | 2020-08-21 | 北京字节跳动网络技术有限公司 | 传感器数据匹配方法、装置、设备和存储介质 |
CN112835526A (zh) * | 2021-02-08 | 2021-05-25 | 福州大学 | 一种工程数据持久化存储***及方法 |
CN114077609A (zh) * | 2022-01-19 | 2022-02-22 | 北京四维纵横数据技术有限公司 | 数据存储及检索方法,装置,计算机可读存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN106909641B (zh) | 2020-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106909641A (zh) | 一种实时数据存储器 | |
CN105138592B (zh) | 一种基于分布式架构的日志数据存储和检索方法 | |
US10218618B2 (en) | Method and apparatus for processing operation request in storage system | |
US6961728B2 (en) | System and methods for highly distributed wide-area data management of a network of data sources through a database interface | |
CN105117171B (zh) | 一种能源scada海量数据分布式处理***及其方法 | |
CN106980669B (zh) | 一种数据的存储、获取方法及装置 | |
US8762396B2 (en) | Dynamic, hierarchical bloom filters for network data routing | |
CN110110006A (zh) | 数据管理方法及相关产品 | |
CN103235820B (zh) | 一种集群***中数据存储方法与装置 | |
CN102930062A (zh) | 一种数据库快速水平扩展的方法 | |
CN104778188A (zh) | 一种分布式设备日志采集方法 | |
CN106156328A (zh) | 一种银行运行日志数据监控方法及*** | |
CN103714134A (zh) | 一种网络流量数据索引方法及*** | |
CN107092673B (zh) | 一种网络通信资产识别管理的***、建模方法及检索方法 | |
CN107766529A (zh) | 一种用于污水处理行业的海量数据存储方法 | |
US20110055219A1 (en) | Database management device and method | |
US20210311909A1 (en) | Method And System For Deleting Obsolete Files From A File System | |
CN108647266A (zh) | 一种异构数据快速分布存储、交互方法 | |
CN104461929B (zh) | 基于***的分布式数据缓存方法 | |
CN107330017A (zh) | 一种基于主题实例的电力海量数据存储和查询统计分析方法及其*** | |
CN106201917A (zh) | 一种数据处理***和方法 | |
CN110134698A (zh) | 数据管理方法及相关产品 | |
CN109873858A (zh) | 一种业务数据分布式监控方法和分布式监控集群 | |
US11263264B2 (en) | Management of graphs using secondary index vertices | |
CN107341198A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |