CN114925075B - 一种多源时空监测信息实时动态融合方法 - Google Patents
一种多源时空监测信息实时动态融合方法 Download PDFInfo
- Publication number
- CN114925075B CN114925075B CN202210850007.7A CN202210850007A CN114925075B CN 114925075 B CN114925075 B CN 114925075B CN 202210850007 A CN202210850007 A CN 202210850007A CN 114925075 B CN114925075 B CN 114925075B
- Authority
- CN
- China
- Prior art keywords
- data
- node
- memory
- time
- nodes
- 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.)
- Active
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/221—Column-oriented storage; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- 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
- G06F16/2272—Management thereof
-
- 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/2282—Tablespace storage structures; Management thereof
-
- 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/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
- G06F16/24556—Aggregation; Duplicate elimination
-
- 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/2462—Approximate or statistical queries
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/154—Networked environment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/16—General purpose computing application
- G06F2212/163—Server or database system
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种多源时空监测信息实时动态融合方法,每一设备节点被分若干个数据节点,数据节点为内存数据节点或存储数据节点;采用列式存储结构,充分利用时空监测数据具备的时序特征,在存储介质上连续存放和读取数据点的采集数据,从而使得数据点的IO速度大幅提升;同时利用去中心化数据管理方式,引入内存数据节点,当单个服务器出现故障时,存在内存数据节点组的备份可立即承接已故障节点的业务,保障数据的存储安全和数据业务的稳定性。
Description
技术领域
本发明涉及分布式网络技术领域,尤其涉及一种多源时空监测信息实时动态融合方法。
背景技术
随着5G网络时代的到来,数据通讯成本的急剧下降,各种传感技术及智能设备逐渐普及民用市场。大量的智能设备源源不断的产生时空监测数据,从健康手环、共享单车、新能源出租车、智能电表、环境监测设备到电梯、大型工业设备、工业生产线等都在源源不断的产生海量的时空监测数据。
传统采用如MySQL、Oracle、MongoDB等数据库的储存方法在处理海量的时空监测数据时,由于数据记录条数巨大,导致数据的实时写入十分困难,并且数据查询分析也十分困难。
发明内容
本发明提供一种多源时空监测信息实时动态融合方法,能够大幅度提高数据写入及查询的效率。
本发明实施例提供一种多源时空监测信息实时动态融合方法,所述方法由若干设备节点、若干内存数据节点和若干存储数据节点执行,其中,每一设备节点包括至少一个内存数据节点和至少一个存储数据节点:
任一内存数据节点接收外部应用写入的待存储的时空监测数据时,将所述时空监测数据写进提交日志,将所述时空监测数据按照列式数据结构写入预先根据时间分区K元树分配的数据体的表中;当所述内存数据节点分配的所有的内存块中不存在未超过预设的内存限制且未超过预设的存储时间限制的内存块时,将该内存数据节点存储的数据写入硬盘中,并清空该内存数据节点所有内存块存储的数据;
根据时间分区弹性索引确定每个数据块所在的节点的存储地址,并建立表、内存块与储存的存储地址的索引;
向预先分配为同一内存数据节点组中的其他内存数据节点发送数据写入请求,以使同一内存数据节点组中的其他内存数据节点同步存储所述时空监测数据。
优选地,所述方法还包括:
任一内存数据节点中每一数据块的节点的存储地址为:
其中,为该节点在时间分区K元树中的层数,,为该节点的父节点的层数;count n 为在该层中该节点的序号,nodeoff为指向节点的存储地址,为该节点的分支ID,,K为该节点其父节点的分支数,为该节点的父节点的分支ID,为子节点的分支ID。
作为一种优选方案,所述时间分区弹性索引包括多个不同时间粒度的索引树,分别为时间粒度为1周的TBKTreed索引树、时间粒度为5周的TBKTreew索引树、时间粒度为12个月的TBKTreem索引树和全局时间索引TBKTreeg索引树;
内存数据节点依次保存最新的TBKTreed索引树,根据时间顺序生成其他时间粒度的索引树。
优选地,所述方法还包括:
任一存储数据节点接收外部应用输入的查询指令,获取所述查询指令对应搜索的表存储的内存数据节点组;
查询获取的数据节点组中每一内存数据节点的存储地址,并根据每一存储地址依次发送数据查询请求;
当接收到任一内存数据节点根据所述数据查询请求反馈的数据时,反馈查询到的数据给外部应用;
当未接收到内存数据节点根据所述数据查询请求反馈的数据时,反馈查询失败的信号给外部应用。
作为一种优选方案,当检测到设备节点重新启动时,所述方法还包括:
该设备节点的每一内存数据节点通过心跳数据包获取所在内存数据节点组中其他内存数据节点的存储的数据,并判断其存储的数据与其他内存数据节点的数据与是否相同;
若数据不相同,则将该内存数据节点中的数据与所在内存数据节点组中其他内存数据节点进行同步。
优选地,所述方法还包括:
任一设备节点检测到同一内存数据节点组的其他设备节点撤销时,代替撤销的设备节点的内存数据节点工作,任一内存数据节点均有两个内容完全一致的备份存储于同一内存数据节点组的其他设备节点中;
数据负载量最高的设备节点检测到新增的设备节点时,将预设比例的内存数据节点以及存储数据节点迁移至新增的设备节点中。
优选地,所述方法还包括:
任一存储数据节点采用Master-Slave 模式与预先分配为同一存储数据节点组的存储数据节点同步更新Meta数据;
任一存储数据节点检测到同一存储数据节点组中Master节点宕机时,采用Master-Slave 模式从Slave节点中选举其他节点作为Master节点。
优选地,所述表具体为集合若干子表的聚合表,每一子表存储从同一类型采集设备获取的不同数据;
每一子表包括所存储的数据的属性信息和标签信息,所述属性信息包括温度和压力,所述标签信息包括采集设备的型号和位置。
进一步地,所述方法还包括:
任一存储数据节点接收外部应用输入的查询条件,所述查询条件包括查询的子表的属性信息和标签信息中的至少一个;
查询所有内存数据节点中符合所述查询条件的子表,获取查询得到的子表的索引得到对应的内存数据节点的存储地址;
发送数据获取请求至得到的存储地址对应内存数据节点,接收内存数据节点根据所述数据获取请求反馈的子表;
根据接收到的子表进行聚合计算,得到所述查询条件对应的查询结果。
优选地,所述方法还包括:
任一内存数据节点建立多个数据库,并为每一数据配置存储选项参数,根据每一数据库配置的存储选项参数将外部应用写入的待存储的时空监测数据存储到不同的数据库中;
所述存储选项参数包括:保留时长、备份数量、缓存大小和压缩格式。
本发明提供一种多源时空监测信息实时动态融合方法,采用列式存储结构,充分利用时空监测数据具备的时序特征,在存储介质上连续存放和读取数据点的采集数据,从而使得数据点的IO速度大幅提升;同时利用去中心化数据管理方式,引入内存数据节点,当单个服务器出现故障时,存在内存数据节点组的备份可立即承接已故障节点的业务,保障数据的存储安全和数据业务的稳定性。
附图说明
图1是本发明实施例提供的一种适用于多源时空监测信息实时动态融合方法的系统结构示意图;
图2是本发明实施例提供的内存中的时间分区K元树的结构示意图;
图3是本发明实施例提供的硬盘中的时间分区K元树的结构示意图;
图4是本发明实施例提供的一种内存数据节点的数据存储流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种多源时空监测信息实时动态融合方法,参见图1所示,是本发明实施例提供的一种适用于多源时空监测信息实时动态融合方法的系统结构示意图,该系统包括八个设备节点,分别为dnode0~ dnode7;八个设备节点构成一个集群;每一设备节点被分为若干个数据节点;
集群中的任意一个设备节点,根据其具体的CPU、运行存储、硬盘存储和其他物理资源,所述方法的每一设备节点基于硬件的负载均衡策略划分为多个数据节点,其中数据节点包含内存数据节点以及存储数据节点两种;
参见图1,每一设备节点被分为4个数据节点,每一设备节点的数据节点包括内存数据节点和存储数据节点中的至少一个;在图1中,内存数据节点包括V0~V28,存储数据节点包括M0~M2。
内存数据节点是逻辑上存储具体的时序数据的存储节点,能够实现所有针对时序数据的插入和查询操作,图1中V表示内存数据节点;存储数据节点负责管理所有数据节点的运行状态、负载均衡以及所有元数据,包括用户、数据库、表的管理,图1中用M标明。
由若干个设备节点构成的集群,为了解决物联网各类传感器设备、智能设备的即时数据采集、即时存储、实时智能数据流分析的问题,采用多源时空监测数据的实时动态融合技术,是一种新的数据库技术,充分考量了软硬件可能出现的各类故障问题,在假定单台计算机算力与存储无法支撑海量时空监测数据的存储及分析的情况进行技术优化和设计,支持去中心化数据管理,具有完整的分布式高可靠性架构。
所述系统中由内存数据节点存储时空监测数据,当内存数据节点接收外部应用写入的待存储的时空监测数据,将所述时空监测数据写进提交日志,将所述时空监测数据按照列式数据结构写入预先分配的内存块的表中,并建立表、内存块与储存的存储地址的索引;
向预先分配为同一内存数据节点组中的其他内存数据节点发送数据写入请求,以使同一内存数据节点组中的其他内存数据节点同步存储所述时空监测数据。
写入数据时,先将数据点写进提交日志,同时转发给在预先分配为同一内存数据节点组内的其他内存数据节点,以使同一内存数据节点组中的其他内存数据节点同步存储所述时空监测数据,再按列式数据存储结构写入内存块;
内存数据节点预先分配构成数据节点组,组中不同的数据节点可以位于不同的设备节点上,例如图1中的dnode0的V0、dnode1的 V5和 dnode6 中的V24 组成了一个内存数据节点组,通过异步方式对数据进行实时同步,保障数据在多个设备节点的多台物理机器上有拷贝,即便有设备节点宕机,也能有其他设备节点能处理数据请求,从而保证系统运行的高可靠性。
每个内存数据节点相互独立,每个表可以用无锁方式写入数据,写入性能大幅提升。同时,对于一个内存数据节点而言,其产生的数据是时序的,因此写的操作可用追加的方式实现,进一步大幅提高数据写入速度。
根据设备节点的计算资源和存储资源,一个设备节点基于硬件的负载均衡策略被划分为多个数据节点,每一数据节点的硬件资源平均分配。
在本发明提供的又一实施例中,参见图2,是本发明实施例提供的内存中的时间分区K元树的结构示意图;所述内存数据节点的每一节点包括存储数据的数据体,每一数据体包括至少一个存储时空监测数据的表;
时间分区K元树中包括三层,按照由上到下的层数,每一层的每一节点分配一个分支ID,图2中的时间分区K元树的分支ID分别为0~5;
需要说明的是,在图2中,时间分区K元树中包括构成三层的6个节点,在其他实施例中,时间分区K元树的节点数可为其他数量,每一层的节点数也可为其他数量;
参见图3,是本发明实施例提供的硬盘中的时间分区K元树的结构示意图,其中分支ID为0~6的7个节点依次排列,每一节点包括对应的数据体,用于存储数据。
任一内存数据节点中每一数据块的节点的存储地址为:
其中,为该节点在时间分区K元树中的层数,,为该节点的父节点的层数;count n 为在该层中该节点的序号,nodeoff为指向节点的存储地址,为该节点的分支ID,,K为该节点其父节点的分支数,为该节点的父节点的分支ID,为子节点的分支ID。
在本发明提供的又一实施例中,时间分区弹性索引为了避免边缘节点中不必要的内存使用,该索引包含多个不同时间粒度的索引树,包括1周,5周,最多12个月的不同粒度的时间索引,便于时间上的数据查询管理。
时间分区弹性索引的使用可以大大减少内存空间的消耗,为了避免边缘节点中不必要的内存使用,时间分区弹性索引包含多个不同时间粒度的索引树,分别为时间粒度为1周的TBKTreed索引树、时间粒度为5周的TBKTreew索引树、时间粒度为12个月的TBKTreem索引树和全局时间索引TBKTreeg索引树;TBKTreed索引树对最近一周每天收集的数据进行索引建立,TBKTreew索引树对TBKTreed中的最近一个月每周收集的数据建立索引;TBKTreem索引树对最近一年每月收集的数据进行索引构建;TBKTreeg索引树对最近一年收集的所有数据建立索引。因为数据采集点的数据会按时间顺序进入系统,所以时空监测信息融合数据库只需要在内存中保存最新的TBKTreed索引树,就可以为新的传入数据元组构建索引。所有以前的索引树将不会再更新,并且可以持久保存在磁盘上,以减少索引的内存使用。
为了支持对历史数据的及时查询,设计了一种新的磁盘上时间分区弹性索引查询程序。根据查询的时间范围,可以直接定位包含查询聚合结果的目标索引节点或查询数据元组的地址,而无需遍历根节点和目标索引节点之间的中间索引节点,减少不必要的读取I/o。
在本发明提供的又一实施例中,所述系统中的内存数据节点采取最久未使用策略分配至少一个内存块;
当所述设备节点中的内存数据节点分配的所有的内存块中不存在未超过预设的内存限制且未超过预设的存储时间限制的内存块时,将该内存数据节点存储的数据写入硬盘中,并清空该内存数据节点所有内存块存储的数据。
在本实施例具体实施时,每个内存数据节点采用最久未使用策略进行管理,每一内存数据节点分配一个到多个内存块,在一个内存块里,数据是连续存放的,但块与块是不连续的,因此存储时为每一个表在内存里建立有内存块的索引,以方便写入和查询。
当所述设备节点中的内存数据节点分配的所有的内存块中不存在未超过预设的内存限制且未超过预设的存储时间限制的内存块时,即内存数据节点中的内存块超出内存限制或者存储时长限制时,将该内存数据节点存储的数据写入硬盘中,并清空该内存数据节点所有内存块存储的数据,留出内存块的存储空间给新的时序监测数据。
参见图4所示,是本发明实施例提供的一种内存数据节点的数据存储流程示意图,所述内存数据节点存储数据的过程包括:
步骤①:接收外部应用写入的待存储的时空监测数据;
步骤②:将所述时空监测数据写进提交日志;
步骤③:向预先分配为同一内存数据节点组中的其他内存数据节点,即伙伴节点发送数据写入请求,以使同一内存数据节点组中的其他内存数据节点同步存储所述时空监测数据;
步骤④:将所述时空监测数据按照列式数据结构写入预先分配的内存块的表中,并建立表、内存块与储存的内存数据节点的索引;
步骤⑤:返回存储成功的信号给外部应用;
所述方法还包括:当所述设备节点中的内存数据节点分配的所有的内存块中不存在未超过预设的内存限制且未超过预设的存储时间限制的内存块时,将该内存数据节点存储的数据写入硬盘中,并清空该内存数据节点所有内存块存储的数据。
在本发明提供的又一实施例中,所述系统中的存储数据节点被配置为:
接收外部应用输入的查询指令,获取所述查询指令对应搜索的表存储的内存数据节点组;
查询获取的数据节点组中每一内存数据节点的存储地址,并根据每一存储地址依次发送数据查询请求;
当接收到任一内存数据节点根据所述数据查询请求反馈的数据时,反馈查询到的数据给外部应用;
当未接收到内存数据节点根据所述数据查询请求反馈的数据时,反馈查询失败的信号给外部应用。
在本实施例具体实施时,当外部应用需要查询一张表时,需要通过存储数据节点查询;
存储数据节点接收外部应用的查询指令,根据存储时对应表的索引,获取所述存续指令中查询的表对应存储的内存数据节点组,因为每一表在同一内存数据节点组的不同伙伴节点中均有存储备份;
通过存储数据节点查询获取的数据节点组中每一内存数据节点的存储地址,并根据每一存储地址依次发送数据查询请求;
当接收到任一内存数据节点根据所述数据查询请求反馈的数据时,反馈查询到的数据给外部应用;
当未接收到内存数据节点根据所述数据查询请求反馈的数据时,反馈查询失败的信号给外部应用。
当外部应用连接存储数据节点系统时,对于要查询的任何一张表,存储数据节点会给应用提供该表所属的内存数据节点组里各个内存数据节点的 IP 地址,如果内存数据节点组中包括三个内存数据节点,则对应的存储地址为3,如果其中一个查询失败或者操作失败,应用会尝试第二个、第三个,只有所有内存数据节点失败才会返回失败。这样保证内存数据节点组里任何一台机器宕机,都不会影响对外的服务。这些复杂的重新连接流程都将被包装隐藏起来,以接口的方式提供程序服务,应用开发者无需写程序来实现。
通过存储数据节点对整个系统的负载均衡进行统筹,并对所有内存数据节点的增加、删除、迁移、合并与拆分进行管理。外部应用可通过存储数据节点可获取对应内存数据节点信息,然后直接与内存数据节点通讯,将海量时空监测数据插入数据库,对于查询操作也是如此。因此,系统容量以及吞吐率与内存数据节点的个数成正比,整个系统是水平扩展,实现系统的高可靠性。
在本发明提供的又一实施例中,所述系统中任一设备节点重新启动时,该设备节点中的每一内存数据节点通过心跳数据包获取所在内存数据节点组中其他内存数据节点的存储的数据,并判断其存储的数据与其他内存数据节点的数据与是否相同;
若数据不相同,则将该内存数据节点中的数据与所在内存数据节点组中其他内存数据节点进行同步。
在本实施例具体实施时,为保证内存数据节点的高可靠性,本发明的内存数据节点组采用异步的方式进行数据同步;一个内存数据节点收到数据写入的请求,该请求会被立即转发给其他同一内存数据节点组的其他内存数据节点,然后在本地存储处理。一个内存数据节点组由处于不同设备节点上的内存数据节点组成,内存数据节点组中的内存数据节点存储着相同的数据,节点个数即是数据冗余的个数。在一个数据节点组里,各个内存数据节点通过心跳数据包实时获取对方的状态;当一台主机的设备节点重启时,每个内存数据节点都会检查自己数据的版本是否与其他数据节点一致,如果版本不一致,需要同步后才能进入对外服务状态。同步过程中,高版本的节点还可以正常的对外提供服务。
在本发明提供的又一实施例中,所述系统中存储数据节点检测到所述系统中任一设备节点撤销时,将该设备节点上的内存数据节点均匀的迁移到其他设备节点中去;
所述存储数据节点检测到所述系统增加一个设备节点时,检测所述系统中各个设备节点数据负载量,将数据负载量最高的预设数量的设备节点中的预设比例的内存数据节点迁移至增加的设备节点中。
在本实施例具体实施时,时空监测数据每日存储量高达数亿,海量数据必然要考虑数据的分节点存放,为更好的数据分区,本发明采用了数据节点的设计,一个内存数据节点包含多个表,每个表对应独立的内存数据节点。
内存数据节点宕机时,可以由其他节点替代;所述系统中存储数据节点检测到所述系统中任一设备节点撤销时,将该设备节点上的内存数据节点均匀的迁移到其他设备节点中去;
所述存储数据节点检测到所述系统增加一个设备节点时,检测所述系统中各个设备节点数据负载量,将数据负载量最高的预设数量的设备节点中的预设比例的内存数据节点迁移至增加的设备节点中;
实现系统中各个设备节点的负载更加均衡,让数据同步变得更加高效。
在本发明提供的又一实施例中,所述系统中预先分配为同一存储数据节点组中的存储数据节点采用Master-Slave 模式同步更新Meta数据;
当预先分配为同一存储数据节点组中Master节点宕机时,采用Master-Slave 模式从Slave节点中选举其中节点作为Master节点。
在本实施例具体实施时,存储数据节点负责存储Meta数据,同时根据每个数据节点状态来负责负载均衡,保证其高可靠性。多个存储数据节点组成一个存储数据节点组,因为Meta 数据可以被多个外部应用同时更新,因此采用Master-Slave 模式实现存储数据节点的数据同步。写的操作,只有 Slave 节点写入成功后,Master节点才会返回成功。如果Master 节点宕机,系统有机制保证其中一个Slave 会立即被选举为Master,保证系统写操作的高可靠性。
管理节点在集群中存在,但对于应用和系统管理员而言,是完全透明的。整个系统会自动在设备节点上创建存储数据节点以及存储数据节点组。在本发明提供的又一实施例中,所述表具体为集合若干子表的聚合表AggrT,每一子表存储从同一类型采集设备获取的不同数据;
每一子表包括所存储的数据的属性信息和标签信息,所述属性信息包括温度和压力,所述标签信息包括采集设备的型号和位置。
在本实施例具体实施时,多源时空监测数据的各个数据采集点的时钟往往很难去同步,为保证各数据点的时序一致性,以及单一数据点在存储介质上的连续性,针对每个内存数据节点单独建表,能极大提高数据的插入速度以及查询速度,但同时也导致表的数量极为庞大,增加了表的维护以及聚合、统计的操作难度;
为降低应用的开发难度,采用表和子表的概念,各个子表的集合构成超级表概念的表。针对同一类型的采集设备可创建一个表。每个表定义每个子表中每列数据的属性信息,所述属性信息包括温度和压力等,每个表还定义每个子表的标签信息,即采集设备的型号和位置等。
在本发明提供的又一实施例中,所述系统的存储数据节点还被配置为:
接收外部应用输入的查询条件,所述查询条件包括查询的表的属性信息和标签信息中的至少一个;
查询所述系统的内存数据节点中符合所述查询条件的表,获取查询得到的表的索引得到对应的内存数据节点的存储地址;
发送数据获取请求给得到的存储地址对应内存数据节点,接收内存数据节点根据所述数据获取请求反馈的子表;
根据接收到的子表进行聚合计算,得到所述查询条件对应的查询结果。
在本实施例具体实施时,在对包含子表的超级表进行查询操作时,外部应用可将属性信息或标签信息作为过滤条件,对一个超级表下的全部或部分表进行聚合或统计操作,这样大大简化应用的开发;
外部应用将查询条件发送至系统的某一设备节点,所述查询条件包括查询的子表的属性信息和标签信息中的至少一个;
设备节点中的存储数据节点接收外部应用输入的查询条件,
查询所述系统的内存数据节点中符合所述查询条件的子表,获取查询得到的子表的索引得到对应的内存数据节点的存储地址,若查询得到多个子表,那么将查询每一子表存储的内存数据节点组的内存数据节点的存储地址;
发送数据获取请求给得到的存储地址对应内存数据节点,接收内存数据节点根据所述数据获取请求反馈的子表;并根据每一存储地址依次发送数据查询请求;
当接收到任一内存数据节点根据所述数据查询请求反馈的数据时,接收内存数据节点根据所述数据获取请求反馈的子表;
当未接收到内存数据节点根据所述数据查询请求反馈的数据时,反馈子表查询失败的信号给外部应用;
根据接收到的子表进行聚合计算,得到所述查询条件对应的查询结果,反馈给外部应用。
在本发明提供的又一实施例中,所述系统的内存数据节点还被配置为:
建立多个数据库,并为每一数据配置存储选项参数,根据每一数据库配置的存储选项参数将外部应用写入的待存储的时空监测数据存储到不同的数据库中;
所述存储选项参数包括:保留时长、备份数量、缓存大小和压缩格式。
在本实施例具体实施时,时空监测数据具有不同的数据格式以及元数据信息,因此本发明基于各类多源时空监测数据构建异构数据模型。
根据应用场景,创建一到多个数据库,可以在每个数据库里创建多张表。
不同的时空监测数据对应不同的数据库,根据每一数据库配置的存储选项参数将外部应用写入的待存储的时空监测数据存储到不同的数据库中;
不同的数据库中存储有对应存储数据的类型的相关信息比如有的采集点数据采集频率高,有的数据保留时长较长,有的采集数据需要3份备份,而有的数据一份备份即可,有的采集点一条记录很大,而有的采集点的记录仅仅 16 个字节,很小。为让各种场景下程序都能最大效率的工作,将各类异构数据的数据特征存放在不同的表中,表创建在不同的库里,形成多个异构数据模型。
创建一个数据库时,除SQL 标准的选项外,为每一数据配置存储选项参数,所述存储选项参数包括:保留时长、备份数量、缓存大小和压缩格式。
本发明提供的一种多源时空监测信息实时动态融合方法,采用列式存储结构,充分利用时空监测数据具备的时序特征,在存储介质上连续存放和读取数据点的采集数据,从而使得数据点的IO速度大幅提升;同时利用去中心化数据管理方式,引入内存数据节点,当单个服务器出现故障时,存在一个或多个备份可立即承接已故障节点的业务。构建时空监测信息数据模型,能够将多源异构的时空监测信息进行融合,包含如压力、位移、温度、热导率、电压、电流、电容、电感等静态数据信息模型;亦或着是速度、流量、角速度等动态数据信息模型,均能够有对应的数据存储模型进行适配,保障数据存储读写的高效性,实现多源时空监测信息的实时动态融合。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (9)
1.一种多源时空监测信息实时动态融合方法,其特征在于,所述方法由若干设备节点、若干内存数据节点和若干存储数据节点执行,其中,每一设备节点包括至少一个内存数据节点和至少一个存储数据节点:
任一内存数据节点接收外部应用写入的待存储的时空监测数据时,将所述时空监测数据写进提交日志,将所述时空监测数据按照列式数据结构写入预先根据时间分区K元树分配的数据体的表中;当所述内存数据节点分配的所有的内存块中不存在未超过预设的内存限制且未超过预设的存储时间限制的内存块时,将该内存数据节点存储的数据写入硬盘中,并清空该内存数据节点所有内存块存储的数据;
根据时间分区弹性索引确定每个数据块所在的节点的存储地址,并建立表、内存块与储存的存储地址的索引;
向预先分配为同一内存数据节点组中的其他内存数据节点发送数据写入请求,以使同一内存数据节点组中的其他内存数据节点同步存储所述时空监测数据;
任一内存数据节点中每一数据块的节点的存储地址为:
2.如权利要求1所述的多源时空监测信息实时动态融合方法,其特征在于,所述时间分区弹性索引包括多个不同时间粒度的索引树,分别为时间粒度为1周的TBKTreed索引树、时间粒度为5周的TBKTreew索引树、时间粒度为12个月的TBKTreem索引树和全局时间索引TBKTreeg索引树;
内存数据节点依次保存最新的TBKTreed索引树,根据时间顺序生成其他时间粒度的索引树。
3.如权利要求1所述的多源时空监测信息实时动态融合方法,其特征在于,所述方法还包括:
任一存储数据节点接收外部应用输入的查询指令,获取所述查询指令对应搜索的表存储的内存数据节点组;
查询获取的数据节点组中每一内存数据节点的存储地址,并根据每一存储地址依次发送数据查询请求;
当接收到任一内存数据节点根据所述数据查询请求反馈的数据时,反馈查询到的数据给外部应用;
当未接收到内存数据节点根据所述数据查询请求反馈的数据时,反馈查询失败的信号给外部应用。
4.如权利要求1所述的多源时空监测信息实时动态融合方法,其特征在于,当检测到设备节点重新启动时,所述方法还包括:
该设备节点的每一内存数据节点通过心跳数据包获取所在内存数据节点组中其他内存数据节点的存储的数据,并判断其存储的数据与其他内存数据节点的数据与是否相同;
若数据不相同,则将该内存数据节点中的数据与所在内存数据节点组中其他内存数据节点进行同步。
5.如权利要求1所述的多源时空监测信息实时动态融合方法,其特征在于,所述方法还包括:
任一设备节点检测到同一内存数据节点组的其他设备节点撤销时,代替撤销的设备节点的内存数据节点工作,任一内存数据节点均有两个内容完全一致的备份存储于同一内存数据节点组的其他设备节点中;
数据负载量最高的设备节点检测到新增的设备节点时,将预设比例的内存数据节点以及存储数据节点迁移至新增的设备节点中。
6.如权利要求1所述的多源时空监测信息实时动态融合方法,其特征在于,所述方法还包括:
任一存储数据节点采用Master-Slave 模式与预先分配为同一存储数据节点组的存储数据节点同步更新Meta数据;
任一存储数据节点检测到同一存储数据节点组中Master节点宕机时,采用Master-Slave 模式从Slave节点中选举其他节点作为Master节点。
7.如权利要求1所述的多源时空监测信息实时动态融合方法,其特征在于,所述表具体为集合若干子表的聚合表,每一子表存储从同一类型采集设备获取的不同数据;
每一子表包括所存储的数据的属性信息和标签信息,所述属性信息包括温度和压力,所述标签信息包括采集设备的型号和位置。
8.如权利要求7所述的多源时空监测信息实时动态融合方法,其特征在于,所述方法还包括:
任一存储数据节点接收外部应用输入的查询条件,所述查询条件包括查询的子表的属性信息和标签信息中的至少一个;
查询所有内存数据节点中符合所述查询条件的子表,获取查询得到的子表的索引得到对应的内存数据节点的存储地址;
发送数据获取请求至得到的存储地址对应内存数据节点,接收内存数据节点根据所述数据获取请求反馈的子表;
根据接收到的子表进行聚合计算,得到所述查询条件对应的查询结果。
9.如权利要求1所述的多源时空监测信息实时动态融合方法,其特征在于,所述方法还包括:
任一内存数据节点建立多个数据库,并为每一数据配置存储选项参数,根据每一数据库配置的存储选项参数将外部应用写入的待存储的时空监测数据存储到不同的数据库中;
所述存储选项参数包括:保留时长、备份数量、缓存大小和压缩格式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210850007.7A CN114925075B (zh) | 2022-07-20 | 2022-07-20 | 一种多源时空监测信息实时动态融合方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210850007.7A CN114925075B (zh) | 2022-07-20 | 2022-07-20 | 一种多源时空监测信息实时动态融合方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114925075A CN114925075A (zh) | 2022-08-19 |
CN114925075B true CN114925075B (zh) | 2022-11-15 |
Family
ID=82815767
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210850007.7A Active CN114925075B (zh) | 2022-07-20 | 2022-07-20 | 一种多源时空监测信息实时动态融合方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114925075B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117290617B (zh) * | 2023-08-18 | 2024-05-10 | 中国船舶集团有限公司第七〇九研究所 | 一种海上分布式多源异构时空数据查询方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108920552A (zh) * | 2018-06-19 | 2018-11-30 | 浙江工业大学 | 一种面向多源大数据流的分布式索引方法 |
CN110825733A (zh) * | 2019-10-08 | 2020-02-21 | 华中科技大学 | 一种面向多采样流的时间序列数据管理方法及系统 |
CN112685404A (zh) * | 2020-12-18 | 2021-04-20 | 威盛电子股份有限公司 | 应用于键树的编码方法、应用于键树的解码方法与电子装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8554758B1 (en) * | 2005-12-29 | 2013-10-08 | Amazon Technologies, Inc. | Method and apparatus for monitoring and maintaining health in a searchable data service |
CN105095421A (zh) * | 2015-07-14 | 2015-11-25 | 南京国电南自美卓控制系统有限公司 | 一种实时数据库的分布式的存储方法 |
GB201615747D0 (en) * | 2016-09-15 | 2016-11-02 | Gb Gas Holdings Ltd | System for data management in a large scale data repository |
CN114153891A (zh) * | 2021-10-22 | 2022-03-08 | 上海铂铸信息科技有限公司 | 一种时间序列数据处理方法 |
-
2022
- 2022-07-20 CN CN202210850007.7A patent/CN114925075B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108920552A (zh) * | 2018-06-19 | 2018-11-30 | 浙江工业大学 | 一种面向多源大数据流的分布式索引方法 |
CN110825733A (zh) * | 2019-10-08 | 2020-02-21 | 华中科技大学 | 一种面向多采样流的时间序列数据管理方法及系统 |
CN112685404A (zh) * | 2020-12-18 | 2021-04-20 | 威盛电子股份有限公司 | 应用于键树的编码方法、应用于键树的解码方法与电子装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114925075A (zh) | 2022-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11461356B2 (en) | Large scale unstructured database systems | |
US11153380B2 (en) | Continuous backup of data in a distributed data store | |
US11755415B2 (en) | Variable data replication for storage implementing data backup | |
JP6522812B2 (ja) | 分散型データベースシステム用高速クラッシュ回復 | |
US10929428B1 (en) | Adaptive database replication for database copies | |
Makris et al. | A classification of NoSQL data stores based on key design characteristics | |
US9460185B2 (en) | Storage device selection for database partition replicas | |
CN103116661B (zh) | 一种数据库的数据处理方法 | |
CA2913036C (en) | Index update pipeline | |
US10216949B1 (en) | Dynamic quorum membership changes | |
US20170024315A1 (en) | Efficient garbage collection for a log-structured data store | |
JP2017195004A (ja) | モジュール式ブロックおよび関連付けられたログファイルを伴う分散型データベース | |
CN104735110B (zh) | 元数据管理方法和系统 | |
US10712964B2 (en) | Pre-forking replicas for efficient scaling of a distributed data storage system | |
JP2016511499A (ja) | 分散型データベースシステムのシステム全体のチェックポイント回避 | |
CN102394923A (zh) | 一种基于n×n陈列结构的云系统平台 | |
US10803012B1 (en) | Variable data replication for storage systems implementing quorum-based durability schemes | |
CN114925075B (zh) | 一种多源时空监测信息实时动态融合方法 | |
CN102693312A (zh) | 一种键值库数据存储中柔性事务管理方法 | |
CN111708894A (zh) | 一种知识图谱创建方法 | |
CN113032356B (zh) | 一种客舱分布式文件存储系统及实现方法 | |
CN110362590A (zh) | 数据管理方法、装置、系统、电子设备及计算机可读介质 | |
CN115083538B (zh) | 一种药物数据的处理系统、运行方法及数据处理方法 | |
CN116303789A (zh) | 多分片多副本数据库并行同步方法、装置及可读介质 | |
CN114003580A (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 |