CN111752945B - 一种基于容器和层次模型的时序数据库数据交互方法和系统 - Google Patents

一种基于容器和层次模型的时序数据库数据交互方法和系统 Download PDF

Info

Publication number
CN111752945B
CN111752945B CN202010473240.9A CN202010473240A CN111752945B CN 111752945 B CN111752945 B CN 111752945B CN 202010473240 A CN202010473240 A CN 202010473240A CN 111752945 B CN111752945 B CN 111752945B
Authority
CN
China
Prior art keywords
access
point
time sequence
model
sequence database
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
Application number
CN202010473240.9A
Other languages
English (en)
Other versions
CN111752945A (zh
Inventor
孙超
艾文凯
吕志强
徐丹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NR Electric Co Ltd
NR Engineering Co Ltd
Original Assignee
NR Electric Co Ltd
NR Engineering Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NR Electric Co Ltd, NR Engineering Co Ltd filed Critical NR Electric Co Ltd
Priority to CN202010473240.9A priority Critical patent/CN111752945B/zh
Publication of CN111752945A publication Critical patent/CN111752945A/zh
Application granted granted Critical
Publication of CN111752945B publication Critical patent/CN111752945B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2474Sequence data queries, e.g. querying versioned data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/06Energy or water supply

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • Economics (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Water Supply & Treatment (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Physics (AREA)
  • Public Health (AREA)
  • Fuzzy Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开一种基于容器和层次模型的时序数据库数据交互方法和系统,方法通过管理和维护电力监控对象的层次模型和关联测点与模型对象,实现将外部访问请求通过查找层次模型缓存查询到访问目标测点的时序数据库点号,进而根据点号对相应的时序数据库进行访问操作,简化了应用访问时序数据库的复杂度;对于多测点访问请求,本发明利用容器技术将多测点访问请求分为对应单个时序数据库实例的访问请求队列,分配至不同的容器中并行运行,实现了访问处理能力的弹性扩展。利用本发明能够大大提升访问效率。

Description

一种基于容器和层次模型的时序数据库数据交互方法和系统
技术领域
本发明涉及电力调度自动化系统时序数据库访问技术领域,特别是一种基于容器和层次模型的时序数据库数据交互方法和系统。
背景技术
目前电力调度自动化系统的应用获取时序数据的方法为先通过业务模型库获取电力监测对象的测点信息,然后以此测点的ID到一个转换表中查找此测点对应的时间序列数据库点号,最后通过时间序列数据库点号访问时间序列数据库获取数据,此过程涉及模型库访问,ID映射转换和时间序列数据库访问三个步骤,效率低,中间环节多过程复杂容易出错,因此迫切需要一种能够一次访问解决时序数据操作的接口。
发明内容
本发明的目的是提供一种时序数据库数据交互方法和系统,采用容器技术实现对多点操作的并行化,能够简化应用访问时序数据库的复杂度,提升访问效率,扩大时序数据的应用范围。
本发明采用的技术方案如下:
一方面,本发明提供一种时序数据库数据交互方法,包括:
获取业务模型库的数据更新状态信息,并响应于业务模型库发生数据更新事件,获取更新后的业务模型信息,更新至预设的层次模型缓存;所述层次模型缓存记录有各测点的时间序列数据库点号;
响应于接收到时序数据访问请求报文,解析报文得到访问目标测点信息;
根据访问目标测点信息,获取或从层次模型缓存中获取各访问目标测点的时序数据库点号;
响应于访问目标测点为单个测点,确定相应的单侧点访问请求队列;
响应于访问目标测点包括多个测点,将多测点访问请求划分为分别对应各测点的单测点访问请求队列;
对于各单测点访问请求队列,根据访问目标测点的时序数据库点号,确定访问目标测点对应的时序数据库实例,将各时序数据库实例管理范围内测点对应的所有单测点访问请求队列集群为至少一个访问请求队列;
并行执行所有访问请求队列对时序数据库实例的访问操作,顺序执行各访问请求队列中的测点访问操作,并获取访问结果数据;
基于所有访问请求队列中所有测点访问操作的访问结果数据,构造包括全部访问结果数据的结果数据集;
将结果数据集返回至时序数据访问请求方。
可选的,所述层次模型缓存由对象类和测点类组成,对象类用于描述缓存中所有对象的信息,包括对象名称、ID、描述以及从根对象到当前对象的全路径名、根据全路径名计算的索引、当前对象的测点列表、当前对象的子对象列表;测点类用于描述测点信息,包括测点名称、时间序列数据库点号、描述以及从根对象到当前测点的全路径名、根据全路径名计算的索引、当前测点数据类型和业务数据类型。通过根对象向下可搜索到当前对象,并结合当前对象的测点队列可以为每个测点生成从根对象到测点的全路径。
可选的,本发明方法还包括,将所获取的更新后的业务模型作为最新版本模型,保存至预设的模型版本库;
所述获取业务模型库的数据更新状态信息包括接收来自外部的业务模型变化通知信息;
将更新后的业务模型信息更新至预设的层次模型缓存包括:
获取预设的模型版本库中的最新版本模型信息;
将更新后业务模型信息与所述最新版本模型信息进行差异比较,确定业务模型的新增、修改和/或删除信息;
对于业务模型新增信息,在当前层次模型缓存中查找相应信息的父节点,并在其下创建新的子节点,将新增业务模型信息记录至新子节点的记录域中,包括增加相关测点的定义,以及为新增测点分配时间序列数据库的点号;
对于业务模型修改信息,在当前层次模型缓存中查找对应的记录对象节点,进而修改相应节点的记录域和测点定义,维持相应测点的时间序列数据库点号不变;
对于业务模型删除信息,在当前层次模型缓存中查找对应的记录对象节点,进而修改相应记录对象和测点定义为不再使用,保留相应测点的时间序列数据库点号;
针对业务模型新增信息增加的子节点记录对象,更新相应的全路径名,并生成新的索引。
可选的,进行差异比较时,业务模型信息新增的判据为:更新后业务模型的记录比最新版本模型的记录有新增;业务模型信息修改的判据为:更新后业务模型的记录比最新版本模型的记录存在数据域变化;业务模型信息删除的判据为:更新后业务模型的记录比最新版本模型的记录有减少。
可选的,针对业务模型新增信息增加的子节点记录对象,其全路径名的生成方法为:按照更新后层次模型的层次将从根节点到新增对象节点所经过的所有中间节点的对象名称,按照先后顺序排列,并在相邻层次之间用符号“/”分隔开,即生成;相应的索引通过对所述全路径名计算Hash值得到。
可选的,所述访问目标测点信息为单个访问目标测点的时序数据库点号,或者单个访问目标测点对应的模型层次参数,或者多个访问目标测点对应的模型层次参数;
所述获取或从层次模型缓存中获取各访问目标测点的时序数据库点号包括:
响应于访问目标测点信息为单个访问目标测点的时序数据库点号,则直接获取相应时序数据库点号;
响应于访问目标测点信息为单个访问目标测点的模型层次参数,则按照预设的索引规则,根据模型层次参数生成对层次模型缓存中相应测点记录对象进行访问的全路径名,进而通过全路径名访问层次模型缓存,得到相应测点的时序数据库点号;
响应于访问目标测点信息为多个访问目标测点的模型层次参数,则对于各目标测点,分别按照预设的索引规则根据相应的模型层次参数生成全路径名,访问相应的测点记录对象,得到相应的时序数据库点号。
以上方案中,所述预设的索引规则以及访问请求对象中的层次模型参数应当是对应设置的,使得能够根据层次模型参数生成能够成功访问层次模型缓存中对应测点记录对象的全路径名,实现对层次模型缓存的快速索引。
可选的,所述将各时序数据库实例管理范围内测点对应的所有单测点访问请求队列集群为至少一个访问请求队列包括:
根据测点的时序数据库点号,以及预先设定的各时序数据库实例的点号管理范围,确定测点对应的时序数据库实例;
对于各时序数据库实例,汇总其管理范围内各测点对应的单测点访问请求队列;
根据预设的顺序访问队列长度,将汇总后的访问请求队列划分为能够并列执行的至少一个访问请求队列,单个访问请求队列的队列长度等于或小于所述顺序访问队列长度。
以上方案中,顺序访问队列长度可根据针对各时序数据库实例的访问请求负荷进行设置,对于单个时序数据库实例存在多测点访问请求的情况,通过划分为多个访问请求队列并行执行对同一时序数据库实例的访问,能够大大提高访问操作效率。
可选的,所述单个访问请求队列利用容器技术顺序执行对时序数据库的访问操作,若链接时序数据库失败或者访问操作未接收到返回结果,则生成对应访问失败的异常结果信息,若连接时序数据库成功且访问操作后接收到返回结果,则生成访问结果信息。
可选的,所述访问结果数据为对应访问失败的异常结果信息,或对应访问成功的访问结果信息;
所述构造包括全部访问结果数据的结果数据集包括:
将获取到的访问结果数据实时缓存到测点结果集队列;
响应于所有测点访问请求均已返回方位结果数据,基于所述异常结果信息及其对应的测点构造返回错误报文队列,基于所述访问结果信息构造返回结果报文队列;
基于所述返回错误报文队列和返回结果报文队列,构造结果数据集返回报文。
第二方面,本发明还提供一种时序数据库数据交互系统,包括:
模型管理模块,被配置用于获取业务模型库的数据更新状态信息,并响应于业务模型库发生数据更新事件,获取更新后的业务模型信息,更新至预设的层次模型缓存;所述层次模型缓存记录有各测点的时间序列数据库点号;
报文接口模块,被配置用于接收时序数据访问请求报文,并解析报文得到访问目标测点信息,进而根据访问目标测点信息,获取或从层次模型缓存中获取各访问目标测点的时序数据库点号;
操作执行调度模块,被配置用于响应于访问目标测点为单个测点,确定相应的单侧点访问请求队列;响应于访问目标测点包括多个测点,将多测点访问请求划分为对应各测点的单测点访问请求队列;进而对于各单测点访问请求队列,根据访问目标测点的时序数据库点号,确定访问目标测点对应的时序数据库实例,将各时序数据库实例管理范围内测点对应的所有单测点访问请求队列集群为至少一个访问请求队列;
测点操作容器,被配置用于并行地分别执行单个访问请求队列对对应的时序数据库进行访问操作,对于单个访问请求队列中的测点访问请求顺序执行相应的测点访问操作,进而获取访问结果数据;
结果数据集构造模块,被配置用于基于所有访问请求队列中所有测点访问操作的访问结果数据,构造包括全部访问结果数据的结果数据集,进而通过报文接口模块将结果数据集返回至时序数据访问请求方。
有益效果
一方面,本发明利用容器技术实现对多测点多个时序数据库实例的并行访问,实现了一种弹性扩展并发访问机制,较传统的顺序获取多个测点时序数据的方式能够显著提高时序数据库访问的效率,在电网系统分析类应用基于网架拓扑获取大量测点数据时其性能优势凸显;
另一方面,本发明通过动态管理业务模型版本以及设置层次模型缓存,将业务模型与测点点号的复杂映射过程通过维护过程完成,能够实现对层次模型中对象全路径名的快速索引,使得时序数据库访问能够通过全路径名快速获取时间序列数据库点号,进一步提升时序数据的访问效率。
附图说明
图1为本发明时序数据库数据交互系统架构示意图;
图2为本发明模型管理及层次模型缓存维护流程示意图;
图3为本发明报文解析流程示意图;
图4为本发明结果数据集构造流程示意图;
图5为本发明测点访问队列执行调度流程示意图;
图6为本发明单库执行容器的流程图。
具体实施方式
以下结合附图和具体实施例进一步描述。
本发明的技术构思为:通过管理和维护模型版本库以及层次模型缓存,实现业务模型测点与时序数据库点号的增量式映射,在接收外部访问请求时,即可根据测点信息访问层次模型缓存,从而获取时序数据库点号并对相应的时序数据库实例进行访问操作,简化应用访问时序数据库的复杂度。对于多测点访问请求,则利用容器技术将多测点访问请求分为对应单个时序数据库实例的访问请求队列,分配至不同的容器中并行运行,实现访问处理能力的弹性扩展,提高时序数据库访问效率。
实施例1
本实施例介绍一种时序数据库数据交互方法,参考图1所示,方法包括:
获取业务模型库的数据更新状态信息,并响应于业务模型库发生数据更新事件,获取更新后的业务模型信息,更新至预设的层次模型缓存;所述层次模型缓存记录有各测点的时间序列数据库点号;
响应于接收到时序数据访问请求报文,解析报文得到访问目标测点信息;
根据访问目标测点信息,获取或从层次模型缓存中获取各访问目标测点的时序数据库点号;
响应于访问目标测点为单个测点,确定相应的单侧点访问请求队列;
响应于访问目标测点包括多个测点,将多测点访问请求划分为分别对应各测点的单测点访问请求队列;
对于各单测点访问请求队列,根据访问目标测点的时序数据库点号,确定访问目标测点对应的时序数据库实例,将各时序数据库实例管理范围内测点对应的所有单测点访问请求队列集群为至少一个访问请求队列;
并行执行所有访问请求队列对时序数据库实例的访问操作,顺序执行各访问请求队列中的测点访问操作,并获取访问结果数据;
基于所有访问请求队列中所有测点访问操作的访问结果数据,构造包括全部访问结果数据的结果数据集;
将结果数据集返回至时序数据访问请求方。
实施例1-1
本实施例具体介绍实施例1的一种实现方式。
本发明的方法主要涉及以下几个方面的内容:
一、模型版本及层次模型缓存管理和维护
为简化访问复杂度,本发明通过增量式的修改实现对模型版本和层次模型缓存中测点记录对象的管理和维护。
本实施例方法还包括:将所获取的更新后的业务模型作为最新版本模型,保存至预设的模型版本库;
所述获取业务模型库的数据更新状态信息包括接收来自外部的业务模型变化通知信息;
将更新后的业务模型信息更新至预设的层次模型缓存包括:
获取预设的模型版本库中的最新版本模型信息;
将更新后业务模型信息与所述最新版本模型信息进行差异比较,确定业务模型的新增、修改和/或删除信息;
对于业务模型新增信息,在当前层次模型缓存中查找相应信息的父节点,并在其下创建新的子节点,将新增业务模型信息记录至新子节点的记录域中,包括增加相关测点的定义,以及为新增测点分配时间序列数据库的点号;
对于业务模型修改信息,在当前层次模型缓存中查找对应的记录对象节点,进而修改相应节点的记录域和测点定义,维持相应测点的时间序列数据库点号不变;
对于业务模型删除信息,在当前层次模型缓存中查找对应的记录对象节点,进而修改相应记录对象和测点定义为不再使用,保留相应测点的时间序列数据库点号;
针对业务模型新增信息增加的子节点记录对象,更新相应的全路径名,并生成新的索引。
进行差异比较时,业务模型信息新增的判据为:更新后业务模型的记录比最新版本模型的记录有新增;业务模型信息修改的判据为:更新后业务模型的记录比最新版本模型的记录存在数据域变化;业务模型信息删除的判据为:更新后业务模型的记录比最新版本模型的记录有减少。
具体步骤参考图3所示,包括:
步骤101:接收业务模型变化通知,当业务模型发生变化时由模型维护方发起通知给模型管理模块,并由后者执行步骤102;
步骤102:获取业务模型库中的最新模型,并执行步骤103;
步骤103:与当前模型版本库中最新版本比较差异,如果存在差异则执行步骤104,否则执行步骤101等待新的模型变化通知;
步骤104:对模型版本的差异进行分类,将差异分为新增、修改和删除三种类型,其中新增部分的判据为从业务模型数据库中获取的模型记录比当前模型版本库中最新版本的记录有新增;修改的判据为从业务模型数据库中获取的模型记录比当前模型版本库中最新版本的记录的数据域有变化;删除的判据为从业务模型数据库中获取的模型记录比当前模型版本库中最新版本的记录有减少,并执行步骤105;
步骤105:判断模型差异分类中是否存在新增的情况,如果有则执行步骤106,如果没有则执行步骤107;
步骤106:在现有层次模型缓存中按照层次关系搜索找到新增记录的父节点并在其下创建新的子节点,将增加记录信息记录在此节点的记录域中,增加相关测点的定义,为新增测点分配测时间序列数据库的点号,并执行步骤111;
步骤107:判断模型差异分类中是否存在修改的情况,如果有则执行步骤108,否则执行步骤109;
步骤108:在现有层次模型缓存中按照层次关系搜索要修改的记录对象节点,并修改相关对象和测点定义,测点的时间序列数据库点号不变,并执行步骤111;
步骤109:判断模型差异分类中是否存在删除的情况,如果有则执行步骤110,否则执行步骤101继续接收业务模型变化通知;
步骤110:在现有层次模型缓存中按照层次关系检索需要删除的记录对象节点,修改相关对象和测点定义为不再使用,测点的时间序列数据库点号保留,并执行步骤112;
步骤111:更新变化的层次模型对象的全路径名并生成新的索引,具体方法为按照模型的层次将从根节点到变化对象节点所经过的所有中间节点的对象名称按照先后顺序每一层次之间用“/”分隔开形成全路径名,用此全路径名计算Hash值作为新的索引,并执行步骤112;
步骤112:完成此次更新,并保留获取的业务模型到版本库,作为当前最新版本,并执行步骤101。
本实施例中层次模型缓存由对象类和测点类组成,其中对象类负责描述缓存中所有对象的信息,包括对象名称、ID、描述以及从根对象到当前对象的全路径名、根据全路径名计算的哈希值、当前对象的测点列表、当前对象的子对象列表。通过子对象列表可以查找当前对象的下一级对象,以此类推可以从根对象一直查找到叶子对象从而形成完整的层次对象模型。测点类描述了测点的名称、时间序列数据库点号、描述以及从根对象到当前对象的全路径名、根据全路径名计算的哈希值、当前测点数据类型和业务数据的类型,通过根对象向下可搜索到当前对象,并结合当前对象的测点队列可以为每个测点生成从根对象到测点的全路径名,并计算哈希值。层次模型缓存的对象类的C++语言设计如下:
Figure BDA0002515016820000091
层次模型缓存的测点类的C++语言设计如下:
Figure BDA0002515016820000092
二、访问请求解析
本实施例中,访问目标测点信息可以是单个访问目标测点的时序数据库点号,或者单个访问目标测点对应的模型层次参数,或者多个访问目标测点对应的模型层次参数;
所述获取或从层次模型缓存中获取各访问目标测点的时序数据库点号包括:
响应于访问目标测点信息为单个访问目标测点的时序数据库点号,则直接获取相应时序数据库点号;
响应于访问目标测点信息为单个访问目标测点的模型层次参数,则按照预设的索引规则,根据模型层次参数生成对层次模型缓存中相应测点记录对象进行访问的全路径名,进而通过全路径名访问层次模型缓存,得到相应测点的时序数据库点号;
响应于访问目标测点信息为多个访问目标测点的模型层次参数,则对于各目标测点,分别按照预设的索引规则根据相应的模型层次参数生成全路径名,访问相应的测点记录对象,得到相应的时序数据库点号。
以上所述预设的索引规则以及访问请求对象中的层次模型参数应当是对应设置的,且根据层次模型架构确定,使得能够根据层次模型参数生成能够成功访问层次模型缓存中对应测点记录对象的全路径名,实现对层次模型缓存的快速索引。
访问请求解析的具体步骤参考图2所示,包括:
步骤201:接口接收访问报文,进行报文解析,从输入参数中分析时间序列数据库点号或者模型层次参数,执行步骤202;
步骤202:判断是否为单测点的访问,如果是则执行步骤203,如果不是则执行步骤204;
步骤203:判断参数中是否含有模型层次参数,如果有则执行步骤205,如果没有则执行步骤206;
步骤204:将多测点访问的请求拆分为单个测点的访问请求队列,并执行步骤207;
步骤205:根据层次关系生成对象的全路径名并生成hash值访问索引获取时序数据库点号,并执行步骤206;
步骤206:确定单个测点的访问请求队列及测点的时序数据库点号,以在后续访问时序数据库获取数据并返回给访问方;
步骤207:调用测点操作执行调度器模块,以将测点访问请求队列分配给多个容器并发执行。
三、测点操作执行调度
本实施例将各时序数据库实例管理范围内测点对应的所有单测点访问请求队列集群为至少一个能够并发运行的访问请求队列,包括:
根据测点的时序数据库点号,以及预先设定的各时序数据库实例的点号管理范围,确定测点对应的时序数据库实例;时序数据库实例的点号管理范围在时序数据库实例注册时设定,为点号区间,比如点号从0-9999的1万点由时序数据库实例1来负责交互;点号10000-19999的测点由时序数据库实例2来负责交互;
对于各时序数据库实例,汇总其管理范围内各测点对应的单测点访问请求队列;
根据预设的顺序访问队列长度,将汇总后的访问请求队列划分为能够并列执行的至少一个访问请求队列,单个访问请求队列的队列长度等于或小于所述顺序访问队列长度。
以上顺序访问队列长度可根据针对各时序数据库实例的访问请求负荷进行设置,对于单个时序数据库实例存在多测点访问请求的情况,通过划分为多个访问请求队列并行执行对同一时序数据库实例的访问,能够大大提高访问操作效率。
测点操作执行调度具体步骤参考图5所示,包括:
步骤401:接收测点访问请求队列,并执行步骤402;
步骤402:按照测点与时间序列数据库实例的关系将测点访问请求队列分成时间序列数据库实例访问队列,其方法为每个时间序列数据库实例负责管理特定范围的时间序列数据库点的存储和查询,因此根据测点的时间序列数据库点号与每个时间序列数据库实例所管理点号范围匹配即可确定测点访问的时间序列数据库实例,并将此测点访问请求加入对应时间序列数据库实例的访问队列,并执行步骤403;
步骤403:分析时间序列数据库实例访问队列,列出每个实例的访问请求数,并执行步骤404;
步骤404:检查每个实例的访问请求数是否超过顺序执行阀值,如果是则执行步骤405,否则执行步骤406;
步骤405:为时序数据库实例启动多个测点操作容器,每个容器执行部分访问请求,并执行步骤407;
步骤406:为时序数据库实例启动一个测点操作容器,并将其访问请求序列作为参数传递给容器,并执行步骤407;
步骤407:采集每个容器的运行状态信息,并执行步骤408;
步骤408:判断容器是否正常完成操作,如果是则执行步骤409,如果不是则执行步骤410;
步骤409:将执行的结果返回给接口解析引擎构造多少测点结果集;
步骤410:重新启动失败的容器继续进行测点操作,并执行步骤407。
测点执行调度是根据每个时间序列数据库实例的测点范围来分配查询任务的,时间序列数据库实例与测点范围的匹配对照表如下表所示,每个时间序列数据库实例管理的测点是连续的,因此只需要记录其开始点号和结束点号既可以判断某个待操作的测点是否属于某个特定实例:
表1
Figure BDA0002515016820000121
四、单个访问请求队列的执行
本实施例中,单个访问请求队列利用容器技术顺序执行对时序数据库的访问操作,若链接时序数据库失败或者访问操作未接收到返回结果,则生成对应访问失败的异常结果信息,若连接时序数据库成功且访问操作后接收到返回结果,则生成访问结果信息。
各测点操作容器负责单个访问请求队列的执行,并返回结果,具体逻辑步骤参考图6所示,包括:
步骤501:初始化容器运行环境,包括加载测点操作所需的运行文件系统目录、第三方类库、初始化环境参数、初始化测点操作执行程序,并执行步骤502;
步骤502:链接需要执行测点操作所对应的时序数据库实例,并执行步骤503;
步骤503:判断链接时序数据库的操作是否成功,如果成功则执行步骤504,如果失败则执行步骤507;
步骤504:从访问请求队列中去除一条访问请求并调用时序数据库接口执行,执行步骤505;
步骤505:判断操作是否返回结果,判断依据为在超时时间范围内是否有异常错误输出或者是正常的结果输出,如果有则执行步骤506,如果否则执行步骤507;
步骤506:将返回的结果放入测点结果集队列中,并执行步骤508;
步骤507:将无法正常结束的异常信息发送给单库SQL执行调度器,并执行步骤508;
步骤508:访问请求队列是否全部执行完毕,如果是则执行步骤509,如果否则执行步骤504;
步骤509:监测点结果集队列输出给测点操作执行调度器,并执行步骤510;
步骤510:收回容器运行资源,退出容器运行。
五、结果数据集的构造
由于单个容器执行后返回的访问结果数据为对应访问失败的异常结果信息,或对应访问成功的访问结果信息,因此本实施例中结果数据集的构造包括:
将获取到的访问结果数据实时缓存到测点结果集队列;
响应于所有测点访问请求均已返回方位结果数据,基于所述异常结果信息及其对应的测点构造返回错误报文队列,基于所述访问结果信息构造返回结果报文队列;
基于所述返回错误报文队列和返回结果报文队列,构造结果数据集返回报文。
具体实现参考图4所示,步骤包括:
步骤301:接收测点操作容器的返回结果,并执行步骤302;
步骤302:将结果缓存到测点结果集队列中,并执行步骤303;
步骤303:判断是否所有待访问的测点均已经返回结果,如果是则执行步骤304,如果不是则执行步骤301继续接受测点操作容器返回的结果;
步骤304:从测点结果集队列中取出一个测点的操作结果,并执行步骤305;
步骤305:判断执行结果是否为正常返回的结果,如果是则执行步骤306,如果否则执行步骤307;
步骤306:将此测点的数据放入返回结果报文队列,并执行步骤308;
步骤307:将此测点的错误信息放入返回错误报文队列,并执行步骤308;
步骤308:是否测点结果集队列中的结果均已经处理,如果是则执行步骤309,如果不是则执行步骤304;
步骤309:组织返回结果报文,返回给调用方,其方法为将返回结果报文队列和返回错误报文队列的数据作为返回报文的数据区,并添加报文头说明错误信息和结果报文的数量。
至此,访问请求方即可得到需访问测点的所有访问结果信息,相较于传统访问方式,访问效率大大提升。
实施例2
本实施例介绍基于容器和层次模型的时序数据库数据交互系统,参考图1所示,系统包括:
模型管理模块,被配置用于获取业务模型库的数据更新状态信息,并响应于业务模型库发生数据更新事件,获取更新后的业务模型信息,更新至预设的层次模型缓存;所述层次模型缓存记录有各测点的时间序列数据库点号;
报文接口模块,被配置用于接收时序数据访问请求报文,并解析报文得到访问目标测点信息,进而根据访问目标测点信息,获取或从层次模型缓存中获取各访问目标测点的时序数据库点号;
操作执行调度模块,被配置用于响应于访问目标测点为单个测点,确定相应的单侧点访问请求队列;响应于访问目标测点包括多个测点,将多测点访问请求划分为对应各测点的单测点访问请求队列;进而对于各单测点访问请求队列,根据访问目标测点的时序数据库点号,确定访问目标测点对应的时序数据库实例,将各时序数据库实例管理范围内测点对应的所有单测点访问请求队列集群为至少一个访问请求队列;
测点操作容器,被配置用于并行地分别执行单个访问请求队列对对应的时序数据库进行访问操作,对于单个访问请求队列中的测点访问请求顺序执行相应的测点访问操作,进而获取访问结果数据;
结果数据集构造模块,被配置用于基于所有访问请求队列中所有测点访问操作的访问结果数据,构造包括全部访问结果数据的结果数据集,进而通过报文接口模块将结果数据集返回至时序数据访问请求方。
以上各模块的具体实现参考实施例1和实施例1-1中相关功能实现内容。参考图1所示,模型管理模块负责当接收到模型数据更新事件后访问业务模型库获取当前最新模型并更新模型缓存中的层次模型;报文接口模块(接口解析引擎)负责访问请求的解析,按照层次关系组成的全路径通过模型管理模块查询模型缓存获取时间序列数据库点号,调用操作执行调度模块发起针对特定时间序列数据库实例的操作访问,并负责构造多测点结果数据集;操作执行调度模块(操作执行调度器)负责对将多测点的访问请求队列按照时间序列数据库实例所管理的测点范围分类,并启动和管理测点操作容器集群,并行化访问操作,最终将结果集反馈给接口解析引擎模块;测点操作容器负责执行时序数据库实例的测点操作,并将结果返回给测点操作执行调度器。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

Claims (10)

1.一种时序数据库数据交互方法,其特征是,包括:
获取业务模型库的数据更新状态信息,并响应于业务模型库发生数据更新事件,获取更新后的业务模型信息,更新至预设的层次模型缓存;所述层次模型缓存记录有各测点的时间序列数据库点号;
响应于接收到时序数据访问请求报文,解析报文得到访问目标测点信息;
根据访问目标测点信息,获取或从层次模型缓存中获取各访问目标测点的时序数据库点号;
响应于访问目标测点为单个测点,确定相应的单侧点访问请求队列;
响应于访问目标测点包括多个测点,将多测点访问请求划分为分别对应各测点的单测点访问请求队列;
对于各单测点访问请求队列,根据访问目标测点的时序数据库点号,确定访问目标测点对应的时序数据库实例,将各时序数据库实例管理范围内测点对应的所有单测点访问请求队列集群为至少一个访问请求队列;
并行执行所有访问请求队列对时序数据库实例的访问操作,顺序执行各访问请求队列中的测点访问操作,并获取访问结果数据;
基于所有访问请求队列中所有测点访问操作的访问结果数据,构造包括全部访问结果数据的结果数据集;
将结果数据集返回至时序数据访问请求方。
2.根据权利要求1所述的方法,其特征是,所述层次模型缓存由对象类和测点类组成,对象类用于描述缓存中所有对象的信息,包括对象名称、ID、描述以及从根对象到当前对象的全路径名、根据全路径名计算的索引、当前对象的测点列表、当前对象的子对象列表;测点类用于描述测点信息,包括测点名称、时间序列数据库点号、描述以及从根对象到当前测点的全路径名、根据全路径名计算的索引、当前测点数据类型和业务数据类型。
3.根据权利要求1或2所述的方法,其特征是,还包括,将所获取的更新后的业务模型作为最新版本模型,保存至预设的模型版本库;
所述获取业务模型库的数据更新状态信息包括接收来自外部的业务模型变化通知信息;
将更新后的业务模型信息更新至预设的层次模型缓存包括:
获取预设的模型版本库中的最新版本模型信息;
将更新后业务模型信息与所述最新版本模型信息进行差异比较,确定业务模型的新增、修改和/或删除信息;
对于业务模型新增信息,在当前层次模型缓存中查找相应信息的父节点,并在其下创建新的子节点,将新增业务模型信息记录至新子节点的记录域中,包括增加相关测点的定义,以及为新增测点分配时间序列数据库的点号;
对于业务模型修改信息,在当前层次模型缓存中查找对应的记录对象节点,进而修改相应节点的记录域和测点定义,维持相应测点的时间序列数据库点号不变;
对于业务模型删除信息,在当前层次模型缓存中查找对应的记录对象节点,进而修改相应记录对象和测点定义为不再使用,保留相应测点的时间序列数据库点号;
针对业务模型新增信息增加的子节点记录对象,更新相应的全路径名,并生成新的索引。
4.根据权利要求3所述的方法,其特征是,进行差异比较时,业务模型信息新增的判据为:更新后业务模型的记录比最新版本模型的记录有新增;业务模型信息修改的判据为:更新后业务模型的记录比最新版本模型的记录存在数据域变化;业务模型信息删除的判据为:更新后业务模型的记录比最新版本模型的记录有减少。
5.根据权利要求3所述的方法,其特征是,针对业务模型新增信息增加的子节点记录对象,其全路径名的生成方法为:按照更新后层次模型的层次将从根节点到新增对象节点所经过的所有中间节点的对象名称,按照先后顺序排列,并在相邻层次之间用符号“/”分隔开,即生成;相应的索引通过对所述全路径名计算Hash值得到。
6.根据权利要求1所述的方法,其特征是,所述访问目标测点信息为单个访问目标测点的时序数据库点号,或者单个访问目标测点对应的模型层次参数,或者多个访问目标测点对应的模型层次参数;
所述获取或从层次模型缓存中获取各访问目标测点的时序数据库点号包括:
响应于访问目标测点信息为单个访问目标测点的时序数据库点号,则直接获取相应时序数据库点号;
响应于访问目标测点信息为单个访问目标测点的模型层次参数,则按照预设的索引规则,根据模型层次参数生成对层次模型缓存中相应测点记录对象进行访问的全路径名,进而通过全路径名访问层次模型缓存,得到相应测点的时序数据库点号;
响应于访问目标测点信息为多个访问目标测点的模型层次参数,则对于各目标测点,分别按照预设的索引规则根据相应的模型层次参数生成全路径名,访问相应的测点记录对象,得到相应的时序数据库点号。
7.根据权利要求1所述的方法,其特征是,所述将各时序数据库实例管理范围内测点对应的所有单测点访问请求队列集群为至少一个访问请求队列包括:
根据测点的时序数据库点号,以及预先设定的各时序数据库实例的点号管理范围,确定测点对应的时序数据库实例;
对于各时序数据库实例,汇总其管理范围内各测点对应的单测点访问请求队列;
根据预设的顺序访问队列长度,将汇总后的访问请求队列划分为能够并列执行的至少一个访问请求队列,单个访问请求队列的队列长度等于或小于所述顺序访问队列长度。
8.根据权利要求7所述的方法,其特征是,所述单个访问请求队列利用容器技术顺序执行对时序数据库的访问操作,若链接时序数据库失败或者访问操作未接收到返回结果,则生成对应访问失败的异常结果信息,若连接时序数据库成功且访问操作后接收到返回结果,则生成访问结果信息。
9.根据权利要求1或8所述的方法,其特征是,所述访问结果数据为对应访问失败的异常结果信息,或对应访问成功的访问结果信息;
所述构造包括全部访问结果数据的结果数据集包括:
将获取到的访问结果数据实时缓存到测点结果集队列;
响应于所有测点访问请求均已返回方位结果数据,基于所述异常结果信息及其对应的测点构造返回错误报文队列,基于所述访问结果信息构造返回结果报文队列;
基于所述返回错误报文队列和返回结果报文队列,构造结果数据集返回报文。
10.一种时序数据库数据交互系统,其特征是,包括:
模型管理模块,被配置用于获取业务模型库的数据更新状态信息,并响应于业务模型库发生数据更新事件,获取更新后的业务模型信息,更新至预设的层次模型缓存;所述层次模型缓存记录有各测点的时间序列数据库点号;
报文接口模块,被配置用于接收时序数据访问请求报文,并解析报文得到访问目标测点信息,进而根据访问目标测点信息,获取或从层次模型缓存中获取各访问目标测点的时序数据库点号;
操作执行调度模块,被配置用于响应于访问目标测点为单个测点,确定相应的单侧点访问请求队列;响应于访问目标测点包括多个测点,将多测点访问请求划分为对应各测点的单测点访问请求队列;进而对于各单测点访问请求队列,根据访问目标测点的时序数据库点号,确定访问目标测点对应的时序数据库实例,将各时序数据库实例管理范围内测点对应的所有单测点访问请求队列集群为至少一个访问请求队列;
测点操作容器,被配置用于并行地分别执行单个访问请求队列对对应的时序数据库进行访问操作,对于单个访问请求队列中的测点访问请求顺序执行相应的测点访问操作,进而获取访问结果数据;
结果数据集构造模块,被配置用于基于所有访问请求队列中所有测点访问操作的访问结果数据,构造包括全部访问结果数据的结果数据集,进而通过报文接口模块将结果数据集返回至时序数据访问请求方。
CN202010473240.9A 2020-05-29 2020-05-29 一种基于容器和层次模型的时序数据库数据交互方法和系统 Active CN111752945B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010473240.9A CN111752945B (zh) 2020-05-29 2020-05-29 一种基于容器和层次模型的时序数据库数据交互方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010473240.9A CN111752945B (zh) 2020-05-29 2020-05-29 一种基于容器和层次模型的时序数据库数据交互方法和系统

Publications (2)

Publication Number Publication Date
CN111752945A CN111752945A (zh) 2020-10-09
CN111752945B true CN111752945B (zh) 2022-07-22

Family

ID=72673718

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010473240.9A Active CN111752945B (zh) 2020-05-29 2020-05-29 一种基于容器和层次模型的时序数据库数据交互方法和系统

Country Status (1)

Country Link
CN (1) CN111752945B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112765134A (zh) * 2020-12-29 2021-05-07 广东电网有限责任公司电力科学研究院 一种电力物联层级对象模型的生成方法及系统
CN116303661B (zh) * 2023-01-12 2023-09-12 北京万里开源软件有限公司 一种分布式数据库中针对序列的处理方法、装置及系统
CN116775310A (zh) * 2023-07-31 2023-09-19 北京中泰华电科技有限公司 一种实现多个工业实时数据库融合扩展的方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107832401A (zh) * 2017-11-01 2018-03-23 郑州云海信息技术有限公司 数据库数据访问方法、系统、装置及计算机可读存储介质

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107832401A (zh) * 2017-11-01 2018-03-23 郑州云海信息技术有限公司 数据库数据访问方法、系统、装置及计算机可读存储介质

Also Published As

Publication number Publication date
CN111752945A (zh) 2020-10-09

Similar Documents

Publication Publication Date Title
US20230144450A1 (en) Multi-partitioning data for combination operations
US11182356B2 (en) Indexing for evolving large-scale datasets in multi-master hybrid transactional and analytical processing systems
CN111752945B (zh) 一种基于容器和层次模型的时序数据库数据交互方法和系统
US8261020B2 (en) Cache enumeration and indexing
CN110196885B (zh) 一种云化分布式实时数据库系统
CN107783985B (zh) 一种分布式数据库查询方法、装置及管理系统
CN111752959B (zh) 一种实时数据库跨库sql交互方法和系统
US20070250517A1 (en) Method and Apparatus for Autonomically Maintaining Latent Auxiliary Database Structures for Use in Executing Database Queries
US20220269730A1 (en) Graph processing system
CN111488323B (zh) 一种数据处理方法、装置及电子设备
CN113760847A (zh) 日志数据处理方法、装置、设备及存储介质
US8732323B2 (en) Recording medium storing transaction model generation support program, transaction model generation support computer, and transaction model generation support method
CN113297057A (zh) 内存分析方法、装置及系统
CN115269631A (zh) 数据查询方法、数据查询系统、设备及存储介质
CN112306957A (zh) 获取索引节点号的方法、装置、计算设备和存储介质
CN112579552A (zh) 日志存储及调用方法、装置及系统
CN109918410B (zh) 基于Spark平台的分布式大数据函数依赖发现方法
CN114020446A (zh) 一种跨多引擎的路由处理方法、装置、设备及存储介质
Tang et al. IncGraph: An improved distributed incremental graph computing model and framework based on spark graphX
CN112835873A (zh) 电网调控异构系统服务化访问方法、系统、设备及介质
EP2990960A1 (en) Data retrieval via a telecommunication network
CN113127549B (zh) 增量数据的同步方法、装置、计算机设备和存储介质
CN111949439B (zh) 基于数据库的数据文件更新方法和装置
CN116263793A (zh) 逆序检索方法、装置、设备及存储介质
Gupta et al. Role of Big Data in e-Healthcare Application for Managing a Large Amount of Data

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