CN104516894B - 用于管理时间序列数据库的方法和装置 - Google Patents
用于管理时间序列数据库的方法和装置 Download PDFInfo
- Publication number
- CN104516894B CN104516894B CN201310452861.9A CN201310452861A CN104516894B CN 104516894 B CN104516894 B CN 104516894B CN 201310452861 A CN201310452861 A CN 201310452861A CN 104516894 B CN104516894 B CN 104516894B
- Authority
- CN
- China
- Prior art keywords
- cost
- memory module
- time series
- data
- measurement point
- 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
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/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- 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/17—Details of further file system functions
- G06F16/1734—Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
-
- 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/23—Updating
- G06F16/235—Update request formulation
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/067—Enterprise or organisation modelling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Human Resources & Organizations (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- Marketing (AREA)
- Quality & Reliability (AREA)
- General Business, Economics & Management (AREA)
- Development Economics (AREA)
- Tourism & Hospitality (AREA)
- Educational Administration (AREA)
- Operations Research (AREA)
- Game Theory and Decision Science (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Software Systems (AREA)
- Fuzzy Systems (AREA)
- Probability & Statistics with Applications (AREA)
Abstract
本发明的各实施方式提供了用于管理时间序列数据库的方法和装置。在一个实施方式中,提供了一种用于管理时间序列数据库的方法,包括:监视针对时间序列数据库进行访问的多个操作以识别多个操作的类型,多个操作的类型包括查询类型和插入类型中的至少任一项;针对多个存储模式中的存储模式,分别基于类型来获取多个操作对时间序列数据库进行访问的成本;从多个存储模式中选择与最低成本相对应的存储模式;以及在预定时间段期间,根据选择的存储模式来向时间序列数据库中存储从多个测量点处采集的数据值。在一个实施方式中,提供了一种用于管理时间序列数据库的装置。采用本发明的方法和装置,可以提高向时间序列数据库的存储效率和查询效率。
Description
技术领域
本发明的各实施方式涉及数据库管理,更具体地,涉及用于管理时间序列数据库(Time Series Database)的方法和装置。
背景技术
随着计算机、数据通信以及实时监控等技术的发展,时间序列数据库已经被应用于例如设备监控、生产线管理、金融分析等诸多方面。时间序列(Time Sequence)是指按照时间顺序排列的测量值的集合。时间序列数据库是指用于存储这些测量值的数据库。测量值可以包括各种数据,例如在监控桥梁安全性的应用环境中,被采集数据可以包括某传感器采集的压强数据;在天气预报应用环境中,被采集数据可以包括温度、湿度、压力、风力(例如,包括大小和方向);以及在城市的电网监控系统中,被采集数据可以包括城市中各个家庭的用电量的测量值,等等。
通常而言,按照应用环境的不同,采集数据的频率以及采集点的数量可能存在较大的差异。对于海量时间序列数据而言,可能存在如下情况:1)需要以较高的频率采集数据,然而测量点的数量较少;2)需要以较低的频率采集数据,然而测量点的数量极大。由于所采集到的总体数据量是采集频率与采集点数量的乘积,因而上述两种情况都会产生海量的时序数据。
具体而言,在监控桥梁安全的应用环境中,例如可以在桥梁的重要位置部署传感器(例如,数十个),并且以每秒10次的频率来采集桥梁各个位置的压强数据;在电网监控系统中,可以在每个家庭部署传感器(例如,数千万个甚至更多),并且以每15分钟一次的频率来采集各个家庭的用电量。可见,常规应用环境下的时间序列数据的数据量是巨大的。
另外,由于应用环境不同,针对所采集到的数据执行的操作也可能会有所差异,例如,除了向数据库中插入所采集到的数据以外还存在查询操作。对于监控桥梁安全的应用环境而言,一种常规的查询操作是历史查询,该历史查询可以查询在一定时间范围(例如,一小时)内从特定传感器采集的数据。又例如,对于电网监控系统而言,一种常规的查询操作是时间片查询(slice query),当电力公司统计每个用户的用电量时,可以在较小的时间范围(例如,几分钟)内并行地查询部署在各个家庭的传感器。
由于时间序列数据通常包括海量的数据,并且时间序列数据库在各行各业中的应用越来越广泛,因而如何降低存储数据和查询数据所涉及的资源开销,以及如何提高时间序列数据的存储效率和查询效率,已经成为目前的一个研究热点。
发明内容
因而,期望开发一种能够基于测量点的数量、测量频率的大小以及针对时间序列数据库进行访问的类型,来管理时间序列数据库的技术方案。并且还期望该技术方案可以基于时间序列数据库的近期状态来自适应地调整管理方案,以便提高数据存储效率和数据查询效率。
根据本发明的一个方面,提供了一种用于管理时间序列数据库的方法,包括:监视针对时间序列数据库进行访问的多个操作以识别多个操作的类型,多个操作的类型包括查询类型和插入类型中的至少任一项;针对多个存储模式中的存储模式,分别基于类型来获取多个操作对时间序列数据库进行访问的成本;从多个存储模式中选择与最低成本相对应的存储模式;以及在预定时间段期间,根据选择的存储模式来向时间序列数据库中存储从多个测量点处采集的数据值。
在本发明的一个实施方式中,提供了一种用于管理时间序列数据库的方法,包括:根据上文所述的方法,向时间序列数据库中存储采集的数据值;以及响应于对时间序列数据库的查询操作,基于与选择的存储模式相对应的数据存储结构,从时间序列数据库中读取数据。
在本发明的一个实施方式中,提供了一种用于管理时间序列数据库的装置,包括:监视模块,配置用于监视针对时间序列数据库进行访问的多个操作以识别多个操作的类型,多个操作的类型包括查询类型和插入类型中的至少任一项;获取模块,配置用于针对多个存储模式中的存储模式,分别基于类型来获取多个操作对时间序列数据库进行访问的成本;选择模块,配置用于从多个存储模式中选择与最低成本相对应的存储模式;以及存储模块,配置用于在预定时间段期间,根据选择的存储模式来向时间序列数据库中存储从多个测量点处采集的数据值。
在本发明的一个实施方式中,提供了一种用于管理时间序列数据库的装置,包括:存储模块,配置用于利用上文所述的装置,向时间序列数据库中存储采集的数据值;以及读取模块,配置用于响应于对时间序列数据库的查询操作,基于与选择的存储模式相对应的数据存储结构,从时间序列数据库中读取数据。
采用本发明的方法和装置,可以自适应地调整针对时间序列数据库进行存储和查询操作的方式,进而提高存储和查询效率。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示意性示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图;
图2示意性示出了根据一个解决方案的时间序列数据库中的数据记录的示意图;
图3示意性示出了根据本发明一个实施方式的用于管理时间序列数据库的技术方案的架构图;
图4示意性示出了根据本发明一个实施方式的用于管理时间序列数据库的方法的流程图;
图5A和图5B分别示意性示出了根据本发明一个实施方式的分组存储模式和高频存储模式中的数据块(blob)的数据结构的示意图;
图6示意性示出了根据本发明一个实施方式的成本模型的框图;以及
图7示意性示出了根据本发明一个实施方式的用于管理时间序列数据库的装置的框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其他可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其他可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instructionmeans)的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其他可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其他可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其他光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其他程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其他计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其他模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其他硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
在下文中将详细描述如何在数据库中存储时间序列数据。例如,在如上文所述的监控桥梁安全的应用中,需要以特定频率从部署在桥梁上的多个传感器处采集测量值(例如,压强等)。根据一个技术方案,可以利用现有的关系数据库来存储多个测量值。如下文表1所示,其中示出了使用普通关系数据库来存储测量值的数据表的示例。
表1关系数据库中的数据表
序号 | 测量点 | 时间 | 压强 |
1 | ID_1 | 15:30:02 | 2.3Pa |
… | … | … | … |
N | ID_N | 15:30:02 | 3.3Pa |
N+1 | ID_1 | 15:30:03 | 2.1Pa |
… | … | … | … |
2N | ID_N | 15:30:03 | 3.2Pa |
… | … | … | … |
如表1所示,第一列示出了数据表中各个数据记录的序号,第二列“测量点”表示从中采集测量值的传感器的标识符,第三列“时间”表示采集时间,以及第四列“压强”表示在特定时间从特定传感器采集到的压强的数值。具体而言,例如,第二行中序号为“1”的记录表示:在时间“15:30:02”时从测量点“ID_1”处采集到的压强为“2.3Pa”。假设在桥梁上部署了N个测量点,采样频率为每秒1次,则可以在第1至第N条记录中依次存储在时间点t1采集到的数据,接着在第N+1至第2N条记录中存储在时间点t2采集到的数据。
参见图2,该图示意性示出了根据一个解决方案的时间序列数据库中的数据记录的示意图200。类似于上文表1中的示例,可以采用如图2所示的结构来存储时序数据。具体地,每个数据记录可以包括序号212、测量点ID 214、时间216以及所采集到的数据值218。尽管在图2中仅以一个字段示出了数据值218,本领域技术人员应当注意,根据具体应用环境,数据值218中可以包括不同的内容。例如,在天气预报的应用环境中,数据值可以包括温度、湿度、压力、风力(例如,包括大小和方向)等多个测量值。
时间序列数据库中的每条记录的数据量通常并不很大,然而由于测量点数目巨大或者由于采样频率较高,因而导致时间序列数据库中记录的数量是巨大的。然而,这些数据记录中可能会存在冗余信息。例如,在表1中的第1至N条记录中,第三列“时间”的内容均为“15:30:02”,因而存在冗余;而当按照测量点排序时,第二列“测量点”中的数据也存在冗余的情况。因而,为了提高存储器的利用率,可以基于时间序列数据库的特征来建立新的存储结构。
此外,由于时间序列的查询通常也存在特殊性,当在传统关系数据库中存储时间序列数据时,在执行数据存储和数据查询时的效率并不令人满意。因而,期望能够开发出一种适合于存储时间序列数据的技术方案,并且期望该技术方案能够根据对所存储的时间序列数据的历史操作,来自适应地调整存储数据的方法,以便提高数据存储效率和查询效率。
图3示意性示出了根据本发明一个实施方式的用于管理时间序列数据库的技术方案的架构图300。根据此实施方式,在方框310处监视针对时间序列数据库进行的访问操作,该操作例如可以以结构化查询语言(Structured Query Language,SQL)来实现,并且可以包括不同的操作类型,例如数据插入操作(即,向数据库中写入新采集到的数据值)以及查询操作(即,从数据库中查询满足特定条件的数据值)。
可以从访问操作(如箭头A所示)中提取操作的类型(如箭头B所示),并且按照与各个操作类型相关联的成本模型库350来估算各个操作的访问成本(如箭头C所示)。继而,在方框320处从预定义的存储模式库360中选择与最低访问成本相匹配的存储模式(如箭头D所示)。并且在方框330处,利用所选择的存储模式来将从各个测量点处采集到的数据值(如箭头E所示)作为时间序列数据(如箭头F所示)存储至时间序列数据库340中。
通过使用如图3所示的架构来管理数据线连数据库,一方面可以考虑到向数据库中存储数据的访问操作的特征,还可以结合从数据库中查询数据的特征,来综合考虑在未来的下一时间段中以何种方式存储数据,进而提高数据存储效率和查询效率。
在本发明的一个实施方式中,提供了一种用于管理时间序列数据库的方法,包括:监视针对时间序列数据库进行访问的多个操作以识别多个操作的类型,多个操作的类型包括查询类型和插入类型中的至少任一项;针对多个存储模式中的存储模式,分别基于类型来获取多个操作对时间序列数据库进行访问的成本;从多个存储模式中选择与最低成本相对应的存储模式;以及在预定时间段期间,根据选择的存储模式来向时间序列数据库中存储从多个测量点处采集的数据值。
在下文中,参见图4来详细描述本发明的实施方式。图4示意性示出了根据本发明一个实施方式的用于管理时间序列数据库的方法的流程图400。在步骤S402处,监视针对时间序列数据库进行访问的多个操作以识别多个操作的类型,多个操作的类型包括查询类型和插入类型中的至少任一项。
在数据库领域中,通常以SQL语言来定义针对数据库进行的操作,例如,向数据库中插入数据值的操作SQL1可以是“INSERT INTOtable1(point,time,pressure)VALUSE(ID_1,‘15:30:02’,2.3)”,该操作SQL1是插入操作(即,用于向数据库中存储新的数据值),具体地,表示向名称为table1的表插入一条记录,其中列point、time和pressure的值分别是ID_1,‘15:30:02’,2.3。
又例如,从数据库中进行查询的操作SQL2可以是“SELECT point,time,pressureFROM table1WHERE time=‘15:30:02’”,该操作SQL是查询操作,并且表示从名称为table1的表中查询满足查询条件“time=‘15:30:02’”的记录的数据。因而,基于分析多个操作中的关键字,可以获得操作的类型。
在步骤S404处,针对多个存储模式中的存储模式,分别基于类型来获取多个操作对时间序列数据库进行访问的成本。本领域技术人员应当理解,由于操作类型的不同,针对时间序列数据库进行访问时所需资源的数量将会有所不同。
在此实施方式中,可以根据针对数据库进行的操作,来预先设计多个存储模式。每个存储模式可以适合于一种类型的应用环境。例如,可以针对诸如上文所述的监控桥梁安全的应用环境(需要以较高的频率采集数据,然而测量点的数量较少)设计存储模式,还可以针对电网监控的应用环境(需要以较低的频率采集数据,然而测量点的数量极大)设计存储模式。
针对多个存储模式中的每个存储模式,本领域技术人员可以相应地设计计算成本方式,例如,可以分别针对查询类型和插入类型来定义计算公式。具体而言,对于插入操作而言,访问成本可以涉及向数据库中插入数据的频率、执行一次插入操作时所需的缓冲区的大小等;对于查询操作而言,访问成本可以涉及被访问的测量点的数量、以及查询所涉及的时间区间,本领域技术人员可以基于这些参数来定义计算成本的方法。
在步骤S406处,从多个存储模式中选择与最低成本相对应的存储模式。在此实施方式中,由于已经基于访问类型和存储模式计算了访问成本,继而可以选择与最低成本相对应的存储模式。
最后,在步骤S408处,在预定时间段期间,根据选择的存储模式来向时间序列数据库中存储从多个测量点处采集的数据值。在此实施方式中,可以根据对所存储的时间序列数据的历史操作,来自适应地调整存储数据的方法。仅作为示例,可以监视最近1小时内对数据库进行访问的操作,以确定在未来的特定时间段(例如,1小时,或者更大或者更小的时间间隔)内以何种存储模式来向数据库中存储数据。
在本发明的一个实施方式中,该方法被周期性地执行。在此实施方式中,周期性地执行的含义在于可以随时根据访问操作的最新信息来确定适合于当前状况的存储模式。例如,对于电网监控系统而言,由于在白天和夜间的用电量存在巨大的差异,针对白天和夜间设置不同的测量频率可能会导致向数据库中插入测量值的频率有所不同(即,访问成本不同),因而可以选择不同的存储模式分别用于在白天和夜间存储数据。
在本发明的一个实施方式中,多个存储模式至少包括以下中的任一项:分组存储模式:基于按照测量时间段而将多个测量点划分所得的分组,在至少一个分组数据块中存储在该时间段内在多个测量点处采集到的数据值;以及高频存储模式:在至少一个高频数据块中存储在一时间段内、在一测量点处采集到的数据值。在此的测量时间段是指在测量点处采集数据值的时间范围。例如,基于具体应用环境,测量时间段可以是1分钟、10分钟、1小时等等。
在下文中,参见图5A和图5B来描述各个存储模式的细节。图5A和图5B分别示意性示出了根据本发明一个实施方式的分组存储模式和高频存储模式中的数据块的数据结构的示意图。应当注意,尽管在图5A和图5B中分别示意性示出了仅一个数据块的数据结构,在本发明的各个实施方式中,时间序列数据库中可以单独包括多个如图5A所示的数据块,单独包括多个如图5B所示的数据块,或者还可以包括两种数据块。
图5A示意性示出了分组存储模式下的数据块的数据结构500A,该分组存储模式尤其适合于存储测量点数量巨大并且测量频率较低的时间序列数据。在进行时间片查询时,该存储模式的查询效率较高。分组存储模式的原理在于,按照测量数据值的时间来将测量点划分为多个分组,为每个分组分配唯一标识符,并且记录该分组中的测量点的数量。
如图5A所示,标记510A-540A表示数据头部分,其中开始时间510A和结束时间520A用于表示在分组中的测量点处采集数据的开始时间和结束时间,分组ID 530A表示该分组的唯一标识符,计数540A表示该分组中的测量点的数量。应当注意,图500A中各个字段内以括号示出的数字表示该字段的长度,即包括多少个存储单元。例如,可以以8个存储单元来表示开始时间510A,以2个存储单元来表示计数540A。本领域技术人员可以自定义存储单元的大小。
在电网系统的应用环境中,例如假设测量时间段为8:00:00-9:00:00,可以将一个建筑内的全部测量点划分至一个分组,分组ID为group1。在分组内包括100个测量点的情况下,按照分组存储模式的数据块的数据头可以表示为:{8:00:00,9:00:00,group1,100}。应当注意,该表示仅仅是示意性的,本领域技术可以根据具体应用环境来以其他方式实现。
在本发明的一个实施方式中,在分组存储模式中,在至少一个分组数据块中的一个分组数据块的数据节点处,至少存储分组中的测量点的标识符、采集到的数据值以及时间偏移。具体地,参见图5A,数据节点550A可以是多个数据节点,并且节点的数量可以等于在计数540A中所存储的数值。在每个数据节点中,可以存储测量点的ID、所测量的数据值、以及测量时间相对于开始时间510A中记载时间的偏移量。具体地,例如数据节点552A中可以包括以2个存储单元表示的测量点ID1、以8个存储单元表示的数据值V和以2个测量单元表示的时间偏移。
采用如图5A所示的分组存储模式,当按照时间片方式查询测量时间在特定时间段期间的数据时,可以通过如图5A所示的数据块迅速找到相应的测量点和数据值,从而大大提高了查询效率。以此方式组织数据,相当于预先为时间片查询而建立了数据库索引,由此保证了较高的查询效率。
图5B示意性示出了高频存储模式下的数据块的数据结构500B,该高频存储模式尤其适合于存储测量点数量较小、并且测量频率较高的时间序列数据。在进行历史查询时,该存储模式的查询效率较高。高频存储模式的原理在于,按照测量点来存储测量数据,即,每个数据块中存储来自同一测量点的、在不同时间所采集的数据。
高频存储模式的数据头包括由标记510B-530B所示的字段,其中时间戳510B表示采集时间,测量点ID 520B表示从哪个测量点采集数据,而计数530B表示该数据块中包括多少个测量值。
在本发明的一个实施方式中,在高频存储模式中,在至少一个高频数据块中的一个高频数据块的数据节点处,至少存储采集到的数据值。参见图5B,在数据体部分中,类似于参见图5A中的标记550A所述,数据节点540B可以是多个数据节点,并且在每个数据节点中存储具体的测量值、以及采集该测量值的时间相对于时间戳510B中的时间的偏移量。应当注意,当以固定频率进行采样时,可以根据时间戳510B和数据节点540B的位置以及固定频率算出该测量值的采集时间,因此可以在数据节点540B中省略偏移量。
采用如图5B所示的高频存储模式,当执行历史查询时,可以通过如图5B所示的数据块迅速找到相应的测量时间,从而大大提高查询效率。以此方式组织数据,相当于预先为历史查询而建立了数据库索引,由此保证了较高的查询效率。
在本发明的一个实施方式中,其中基于类型来获取多个操作对时间序列数据库进行访问的成本包括:基于类型,根据与多个存储模式相对应的成本模型来计算成本。每个访问类型可以具有自身特征,并且上文参见图5A和图5B所示的各个存储模式分别适用于不同的访问类型,因而可以基于访问类型和存储模式两者,来确定数据访问的成本。
在本发明的一个实施方式中,根据与多个存储模式相对应的成本模型来计算成本包括以下中的至少任一项:响应于多个操作中的第一部分操作属于查询类型,基于查询成本模型计算成本,其中查询成本模型描述针对数据库执行查询操作时的访问成本;以及响应于多个操作中的第二部分操作属于插入类型,基于插入成本模型计算成本,其中插入成本模型描述针对数据库执行插入操作时的访问成本。
在本发明的一个实施方式中,多个操作中可以仅涉及查询类型或者仅涉及插入类型,或者还可以涉及两种类型。在此可以从整体上考虑访问类型的自身特征,并且综合评价数据访问开销。在此的访问成本可以主要涉及在执行插入/查询期间所需的数据I/O方面的开销。
具体地,当检测到访问操作中包括关键字“SELECT”时,可以估算查询操作所涉及的读成本,针对全部查询操作的读成本可以是基于各个查询操作估算的读成本的总和。另外,当检测到访问操作中包括关键字“INSERT”时,可以估算查询操作所涉及的写成本。该成本可以涉及在向数据库写入数据的时间窗口期间的全部写成本的总和。
在本发明的一个实施方式中,查询成本模型和插入成本模型分别包括:分别与分组存储模式和高频存储模式相对应的成本模型。具体地,图6示意性示出了根据本发明一个实施方式的成本模型的框图600。成本模型600可以包括查询成本模型610和插入成本模型620,并且每个成本模型还分别包括针对两种存储模式的成本模型。例如,查询成本模型610可以包括用于分组存储模式的查询成本模型CQ(G)(如方框612所示),以及用于高频存储模式的查询成本模型CQ(H)(如方框614所示);插入成本模型620可以包括用于分组存储模式的插入成本模型CI(G)(如方框622所示),以及用于高频存储模式的插入成本模型CI(H)(如方框624所示)。在下文中,将具体描述各个成本模型的计算公式。
在本发明的一个实施方式中,响应于多个操作中的第一部分操作属于查询类型,基于查询成本模型计算成本包括:从第一部分操作中提取与第一部分操作相关联的多个测量点的数量ND以及多个查询时间点的数量NT,其中第一部分操作表示:从时间序列数据库中查询在多个查询时间点处从多个测量点采集到的数据值的操作;以及按照查询成本模型,至少基于多个测量点的数量ND以及多个查询时间点的数量NT来估算成本。
本领域技术人员可以理解,估算查询操作的I/O成本的原理在于,确定执行查询操作中的各个SQL语句需要调用多少I/O资源,而所调用资源的数量主要涉及需要多少个存储单位以用于缓存从时间序列数据库中读取的数据。应当注意,查询操作的主要I/O成本涉及测量点的数量ND以及期望查询在哪些时间点(数量为NT)采集的数据值。因而可以基于这两个参数来估算I/O成本。在下文中,将分别描述用于分组存储模式和高频存储模式的查询成本模型。
在本发明的一个实施方式中,用于分组存储模式的查询成本模型可以表示为:
其中,NT表示查询操作所涉及的时间点的数量,ND表示查询操作所涉及的测量点的数量,并且批次大小(batch size)B表示每个数据块(例如,上文中参见图5A的数据块)中可以缓存的所采集数据值的数量。当以分组存储模式存储数据时,由于查询操作涉及ND个测量点,则需要用个数据块来缓存ND个测量点。由于涉及NT个时间点,因而共需要个数据块来缓存查询操作的目标数据。
外,按照分组存储模式,每个数据块的长度为((8+8+8+2)+(2+8+2)×B)=(26+12×B),可知查询操作所涉及的I/O资源的大小为由此可以基于如上文所示的公式1计算用于分组存储模式的查询成本模型CQ(G)。
在本发明的一个实施方式中,用于高频存储模式的查询成本模型可以表示为:
由于一个数据块可以缓存B个数据值,因而在一个测量点的NT个时间点处采集到的数据值需要个数据块。另外,对于ND个测量点则需要个数据块。类似于基于公式1描述的计算方法,在高频存储模式下,每个数据块的长度为((8+8+2)+(8+2)×B)=(18+10B)。因而,可以基于如上文所示公式2来计算用于高频存储模式的查询成本模型CQ(H)。
在本发明的一个实施方式中,响应于多个操作中的第二部分操作属于插入类型,基于插入成本模型计算成本包括:从第二部分操作中提取与第二部分操作相关联的向数据库中插入数据的采样频率f、以及与采样频率f相关联的测量点的数量|Df|,其中第二部分操作表示:以频率f来向时间序列数据库中插入从|Df|个测量点处采集到的数据值;以及按照插入成本模型,至少基于采样频率f、以及数量|Df|,估算成本。
本领域技术人员可以理解,估算插入操作的I/O成本的原理在于,确定执行查询操作中的各个SQL语句需要占用多少I/O资源,而所占用资源的数量主要涉及需要向时间序列数据库中写入多少个存储单位。应当注意,写入操作的主要I/O成本是向数据库中插入数据的采样频率f、以及与采样频率f相关联的测量点的数量|Df|。因而可以基于这两个参数来估算I/O成本。在下文中,将分别描述用于分组存储模式和高频存储模式的查询成本模型。
在本发明的一个实施方式中,用于分组存储模式的插入成本模型可以表示为:
在本发明的一个实施方式中,首先按照采样频率f将多个测量点进行分组,相同采样频率的测量点被划分到相同的集合Df,|Df|是采样频率为f的测量点的数量。然后针对每个Df进一步分组,每个分组中包括B个测量点,所以针对每个Df将会产生||Df|/B|个分组。将每个分组的中的测量点的相关数据值插入一个数据块中,则该数据块的大小为B。
因此,每秒从一个分组中的测量点采集到的数据量为B*f,每秒期望生成B*f/B=f个数据块。在公式3中,每个数据块的长度为(26+12×B),一共需要个数据块。
在下文中将以具体示例来说明公式3的含义。假设只存在一个采样频率f=2、1000个采样点、向数据库中插入数据的最大写等待时间(time latency)TL=5秒,并且B=10。
按照分组存储模式,存在1000/10=100个小分组,从每个分组中的测量点采集到的数据量为10×2=20,需要20/10=2个数据块。由于存在100个小分组,则需要100×2=200个数据块。
在本发明的一个实施方式中,用于高频存储模式的查询成本模型可以表示为:
在本发明的一个实施方式中,首先按照采样频率f将多个测量点进行分组,相同采样频率的测量点被划分到相同的集合Df,|Df|是采样频率为f的测量点的数量,TL为最大写等待时间(time latency)。每个数据块包括来自一个测量点的B个数据值。是在写等待时间到期之前,从一个测量点处采集到的数据值的最大数目。
在此应当注意,即使也需要在数据块中填充B个数据值。因此可以选择两者中的较大值,即以此方式,在TL内采集到的数据值都可以在存储器中缓存。换言之,一共可以缓存个数据块,而每秒可以缓存个数据块。
在下文中将以具体示例来说明公式4的含义。假设只存在一种采样频率f=2、1000个采样点、向数据库中插入数据的最大写等待时间TL=5秒,并且B=10。按照高频存储模式,TL*f=10,即每秒钟可以缓存10个数据值,恰好为一个数据块的长度。因而每个测量点都对应于一个数据块。数据块的总量为1000×10,每秒可以缓存(1000×10)/5=2000个数据块。
根据高频存储模式,每个数据块的长度(占用存储单元的数量)为((8+8+2)+(8+2)×B)=(18+10×B),因而可以基于公式4可以得到相应的成本。
根据上文所述的公式1-4,可以获得符合每个成本模型的成本,继而可以从多个存储模式中选择与最低成本相对应的存储模式,并基于该选择的存储模式向数据库中存储数据。
在本发明的一个实施方式中,进一步包括:监视运行时间序列数据库的计算设备的状态信息;基于状态信息来修订成本。在此实施方式中,基于状态信息来修订成本的原理在于,预先确定在计算设备上是否存在足够用于支持基于选择的存储模式来向时间序列数据库中存储数据的I/O资源。具体地,可以定义系统成本模型来表示使用各种存储模式时所需的I/O缓冲区的大小。
在本发明的一个实施方式中,用于分组存储模式的系统成本模型可以表示为:
其中,一共具有个分组,每个分组缓存一个长度为(8+8+8+2)+(2+8+2)B=26+12B的数据块。
在本发明的一个实施方式中,用于高频存储模式的系统成本模型可以表示为:
其中,一共具有个分组(每个测量点对应于一个分组),每个分组缓存一个长度为(8+8+2)+(8+2)B=18+10B的数据块。
在本发明的一个实施方式中,可以将基于查询成本模型、插入成本模型和系统成本模型计算的各项成本进行加权以获得总成本,并选择与最小的总成本相适应的存储模式。例如,可以基于如下公式计算总成本:
Total=argmin{(1-α)×CI(S)+α×CQ(S)}公式7
其中S可以表示分组存储模式和高频存储模式中的任一项,而α可以表示0-1之间的数值,指示用户对于查询(读)成本或者插入(写)成本的偏好程度。例如,当α=0.5时,指示用户认为查询成本和插入成本同等重要;而当α=0.1时,指示用户针对查询成本赋予更高的权重。
在本发明的一个实施方式中,提供了一种用于管理时间序列数据库的方法,包括:根据上文所述的方法,向时间序列数据库中存储采集的数据值;以及响应于对时间序列数据库的查询操作,基于与选择的存储模式相对应的数据存储结构,从时间序列数据库中读取数据。
按照上文所述的实施方式,根据对时间序列数据库进行访问的历史操作来确定当前最适合的存储方式。在后续对该时间序列数据库进行查询时,即可按照相应的方式来从数据库中读取数据。具体地,例如在监控桥梁安全的应用环境中,如果已经选择了基于如图5B所示的数据块来存储数据,则后续可以解析查询操作以按照与图5B所示的数据块相适应的方式来从中读取数据。
图7示意性示出了根据本发明一个实施方式的用于管理时间序列数据库的装置的框图700。如图7所示,提供了一种用于管理时间序列数据库的装置,包括:监视模块710,配置用于监视针对时间序列数据库进行访问的多个操作以识别多个操作的类型,多个操作的类型包括查询类型和插入类型中的至少任一项;获取模块720,配置用于针对多个存储模式中的存储模式,分别基于类型来获取多个操作对时间序列数据库进行访问的成本;选择模块730,配置用于从多个存储模式中选择与最低成本相对应的存储模式;以及存储模块740,配置用于在预定时间段期间,根据选择的存储模式来向时间序列数据库中存储从多个测量点处采集的数据值。
在本发明的一个实施方式中,进一步包括:修订模块,配置用于监视运行时间序列数据库的计算设备的状态信息;以及基于状态信息来修订成本。
在本发明的一个实施方式中,多个存储模式至少包括以下中的任一项:分组存储模式:基于按照测量时间段而将测量点划分所得的分组,在至少一个分组数据块中存储在时间段内在测量点处采集到的数据值;以及高频存储模式,在至少一个高频数据块中存储在一时间段内、在一测量点处采集到的数据值。
在本发明的一个实施方式中,获取模块720包括:计算模块,配置用于基于类型,根据与多个存储模式相对应的成本模型来计算成本。
在本发明的一个实施方式中,计算模块包括以下中的至少任一项:第一计算模块,配置用于响应于多个操作中的第一部分操作属于查询类型,基于查询成本模型计算成本,其中查询成本模型描述针对数据库执行查询操作时的访问成本;以及第二计算模块,配置用于响应于多个操作中的第二部分操作属于插入类型,基于插入成本模型计算成本,其中插入成本模型描述针对数据库执行插入操作时的访问成本。
在本发明的一个实施方式中,第一计算模块包括:第一提取模块,配置用于从第一部分操作中提取与第一部分操作相关联的多个测量点的数量ND以及多个查询时间点的数量NT,其中第一部分操作表示:从时间序列数据库中查询在多个查询时间点处从多个测量点采集到的数据值的操作;以及第一估算模块,配置用于按照查询成本模型,至少基于多个测量点的数量ND以及多个查询时间点的数量NT来估算成本。
在本发明的一个实施方式中,第二计算模块包括:第二提取模块,配置用于从第二部分操作中提取与第二部分操作相关联的向数据库中插入数据的采样频率f、以及与采样频率f相关联的测量点的数量|Df|,其中第二部分操作表示:以频率f来向时间序列数据库中插入从|Df|个测量点处采集到的数据值;以及第二估算模块,配置用于按照插入成本模型,至少基于采样频率f、以及数量|Df|,估算成本。
在本发明的一个实施方式中,在分组存储模式中,在至少一个分组数据块中的一个分组数据块的数据节点处,至少存储分组中的测量点的标识符、采集到的数据值以及时间偏移;以及在高频存储模式中,在至少一个高频数据块中的一个高频数据块的数据节点处,至少存储采集到的数据值。
在本发明的一个实施方式中,查询成本模型和插入成本模型分别包括:分别与分组存储模式和高频存储模式相对应的成本模型。
在本发明的一个实施方式中,装置被周期性地调用。
在本发明的一个实施方式中,提供了一种用于管理时间序列数据库的装置,包括:存储模块,配置用于利用根据上文的装置,向时间序列数据库中存储采集的数据值;以及读取模块,配置用于响应于对时间序列数据库的查询操作,基于与选择的存储模式相对应的数据存储结构,从时间序列数据库中读取数据。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施例。
Claims (20)
1.一种用于管理时间序列数据库的方法,包括:
监视针对所述时间序列数据库进行访问的多个操作以识别所述多个操作的类型,所述多个操作的所述类型包括查询类型和插入类型中的至少任一项;
针对多个存储模式中的存储模式,分别基于所述类型来获取所述多个操作对所述时间序列数据库进行访问的成本;
从所述多个存储模式中选择与最低成本相对应的存储模式;以及
在预定时间段期间,根据选择的所述存储模式来向所述时间序列数据库中存储从多个测量点处采集的数据值。
2.根据权利要求1所述的方法,进一步包括:
监视运行所述时间序列数据库的计算设备的状态信息;以及
基于所述状态信息来修订所述成本。
3.根据权利要求1或2所述的方法,其中所述多个存储模式至少包括以下中的任一项:
分组存储模式:基于按照测量时间段而将多个测量点划分所得的分组,在至少一个数据块中存储在所述时间段内在所述多个测量点处采集到的所述数据值;以及
高频存储模式:在至少一个数据块中存储在一时间段内、在一测量点处采集到的所述数据值。
4.根据权利要求3所述的方法,其中基于所述类型来获取所述多个操作对所述时间序列数据库进行访问的成本包括:
基于所述类型,根据与所述多个存储模式相对应的成本模型来计算所述成本。
5.根据权利要求4所述的方法,其中根据与所述多个存储模式相对应的成本模型来计算所述成本包括以下中的至少任一项:
响应于所述多个操作中的第一部分操作属于所述查询类型,基于查询成本模型计算所述成本,其中所述查询成本模型描述针对所述数据库执行查询操作时的访问成本;以及
响应于所述多个操作中的第二部分操作属于所述插入类型,基于插入成本模型计算所述成本,其中所述插入成本模型描述针对所述数据库执行插入操作时的访问成本。
6.根据权利要求5所述的方法,其中响应于所述多个操作中的第一部分操作属于所述查询类型,基于查询成本模型计算所述成本包括:
从所述第一部分操作中提取与所述第一部分操作相关联的多个测量点的数量ND以及多个查询时间点的数量NT,其中所述第一部分操作表示:从所述时间序列数据库中查询在所述多个查询时间点处从所述多个测量点采集到的数据值的操作;以及
按照所述查询成本模型,至少基于所述多个测量点的数量ND以及所述多个查询时间点的数量NT来估算所述成本。
7.根据权利要求5所述的方法,其中响应于所述多个操作中的第二部分操作属于所述插入类型,基于插入成本模型计算所述成本包括:
从所述第二部分操作中提取与所述第二部分操作相关联的向所述数据库中插入数据的采样频率f、以及与采样频率f相关联的测量点的数量|Df|,其中所述第二部分操作表示:以频率f来向所述时间序列数据库中插入从|Df|个所述测量点处采集到的数据值;以及
按照所述插入成本模型,至少基于所述采样频率f、以及所述数量|Df|,估算所述成本。
8.根据权利要求3所述的方法,其中:
在所述分组存储模式中,在所述至少一个数据块中的一个数据块的数据节点处,至少存储所述分组中的测量点的标识符、采集到的所述数据值以及时间偏移;以及
在所述高频存储模式中,在所述至少一个数据块中的一个数据块的数据节点处,至少存储采集到的所述数据值。
9.根据权利要求5所述的方法,其中所述查询成本模型和所述插入成本模型分别包括:
分别与所述分组存储模式和所述高频存储模式相对应的成本模型。
10.根据权利要求1或2所述的方法,其中所述方法被周期性地执行。
11.一种用于管理时间序列数据库的方法,包括:
根据权利要求1-10中任一项所述的方法,向所述时间序列数据库中存储采集的所述数据值;以及
响应于对所述时间序列数据库的查询操作,基于与选择的所述存储模式相对应的数据存储结构,从所述时间序列数据库中读取数据。
12.一种用于管理时间序列数据库的装置,包括:
监视模块,配置用于监视针对所述时间序列数据库进行访问的多个操作以识别所述多个操作的类型,所述多个操作的所述类型包括查询类型和插入类型中的至少任一项;
获取模块,配置用于针对多个存储模式中的存储模式,分别基于所述类型来获取所述多个操作对所述时间序列数据库进行访问的成本;
选择模块,配置用于从所述多个存储模式中选择与最低成本相对应的存储模式;以及
存储模块,配置用于在预定时间段期间,根据选择的所述存储模式来向所述时间序列数据库中存储从多个测量点处采集的数据值。
13.根据权利要求12所述的装置,进一步包括:
修订模块,配置用于监视运行所述时间序列数据库的计算设备的状态信息;以及基于所述状态信息来修订所述成本。
14.根据权利要求12或13所述的装置,其中所述多个存储模式至少包括以下中的任一项:
分组存储模式:基于按照测量时间段而将测量点划分所得的分组,在至少一个数据块中存储在所述时间段内在所述测量点处采集到的所述数据值;以及
高频存储模式,在至少一个数据块中存储在一时间段内、在一测量点处采集到的所述数据值。
15.根据权利要求14所述的装置,其中所述获取模块包括:
计算模块,配置用于基于所述类型,根据与所述多个存储模式相对应的成本模型来计算所述成本。
16.根据权利要求15所述的装置,其中所述计算模块包括以下中的至少任一项:
第一计算模块,配置用于响应于所述多个操作中的第一部分操作属于所述查询类型,基于查询成本模型计算所述成本,其中所述查询成本模型描述针对所述数据库执行查询操作时的访问成本;以及
第二计算模块,配置用于响应于所述多个操作中的第二部分操作属于所述插入类型,基于插入成本模型计算所述成本,其中所述插入成本模型描述针对所述数据库执行插入操作时的访问成本。
17.根据权利要求16所述的装置,其中所述第一计算模块包括:
第一提取模块,配置用于从所述第一部分操作中提取与所述第一部分操作相关联的多个测量点的数量ND以及多个查询时间点的数量NT,其中所述第一部分操作表示:从所述时间序列数据库中查询在所述多个查询时间点处从所述多个测量点采集到的数据值的操作;以及第一估算模块,配置用于按照所述查询成本模型,至少基于所述多个测量点的数量ND以及所述多个查询时间点的数量NT来估算所述成本。
18.根据权利要求16所述的装置,其中所述第二计算模块包括:
第二提取模块,配置用于从所述第二部分操作中提取与所述第二部分操作相关联的向所述数据库中插入数据的采样频率f、以及与采样频率f相关联的测量点的数量|Df|,其中所述第二部分操作表示:以频率f来向所述时间序列数据库中插入从|Df|个所述测量点处采集到的数据值;以及
第二估算模块,配置用于按照所述插入成本模型,至少基于所述采样频率f、以及所述数量|Df|,估算所述成本。
19.根据权利要求14所述的装置,其中:
在所述分组存储模式中,在所述至少一个数据块中的一个数据块的数据节点处,至少存储所述分组中的测量点的标识符、采集到的所述数据值以及时间偏移;以及
在所述高频存储模式中,在所述至少一个数据块中的一个数据块的数据节点处,至少存储采集到的所述数据值。
20.根据权利要求16所述的装置,其中所述查询成本模型和所述插入成本模型分别包括:
分别与所述分组存储模式和所述高频存储模式相对应的成本模型。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310452861.9A CN104516894B (zh) | 2013-09-27 | 2013-09-27 | 用于管理时间序列数据库的方法和装置 |
US14/492,423 US10229129B2 (en) | 2013-09-27 | 2014-09-22 | Method and apparatus for managing time series database |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310452861.9A CN104516894B (zh) | 2013-09-27 | 2013-09-27 | 用于管理时间序列数据库的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104516894A CN104516894A (zh) | 2015-04-15 |
CN104516894B true CN104516894B (zh) | 2018-08-17 |
Family
ID=52741185
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310452861.9A Active CN104516894B (zh) | 2013-09-27 | 2013-09-27 | 用于管理时间序列数据库的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10229129B2 (zh) |
CN (1) | CN104516894B (zh) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10089336B2 (en) * | 2014-12-22 | 2018-10-02 | Oracle International Corporation | Collection frequency based data model |
US10255336B2 (en) | 2015-05-07 | 2019-04-09 | Datometry, Inc. | Method and system for transparent interoperability between applications and data management systems |
WO2016183564A1 (en) | 2015-05-14 | 2016-11-17 | Walleye Software, LLC | Data store access permission system with interleaved application of deferred access control filters |
US10594779B2 (en) | 2015-08-27 | 2020-03-17 | Datometry, Inc. | Method and system for workload management for data management systems |
US10095757B2 (en) * | 2015-12-07 | 2018-10-09 | Sap Se | Multi-representation storage of time series data |
US10248621B2 (en) | 2016-02-09 | 2019-04-02 | Moonshadow Mobile, Inc. | Systems and methods for storing, updating, searching, and filtering time-series datasets |
CN106250414B (zh) * | 2016-07-22 | 2020-01-03 | 北京赛博智通信息技术有限责任公司 | 一种基于测点对象的数据存储系统及方法 |
CN106682070B (zh) * | 2016-11-14 | 2019-10-29 | 浙江浙大中控信息技术有限公司 | 一种历史平均值管理系统及管理方法 |
CN106815318B (zh) * | 2016-12-24 | 2020-08-04 | 上海七牛信息技术有限公司 | 一种时序数据库的集群化方法及系统 |
CN106960016A (zh) * | 2017-03-03 | 2017-07-18 | 北京匡恩网络科技有限责任公司 | 向数据库插入数据的方法及系统 |
CN109241121A (zh) * | 2017-06-29 | 2019-01-18 | 阿里巴巴集团控股有限公司 | 时间序列数据的存储和查询方法、装置、系统及电子设备 |
US10866943B1 (en) | 2017-08-24 | 2020-12-15 | Deephaven Data Labs Llc | Keyed row selection |
EP3477559A1 (en) * | 2017-10-31 | 2019-05-01 | Tata Consultancy Services Limited | Method and system for multi-core processing based time series management with pattern detection based forecasting |
US11397726B2 (en) | 2017-11-15 | 2022-07-26 | Sumo Logic, Inc. | Data enrichment and augmentation |
US11182434B2 (en) | 2017-11-15 | 2021-11-23 | Sumo Logic, Inc. | Cardinality of time series |
CN108287668B (zh) * | 2018-01-25 | 2021-05-18 | 深圳市智物联网络有限公司 | 设备数据的处理方法及装置、计算机装置及可读存储介质 |
CN109189785A (zh) * | 2018-08-10 | 2019-01-11 | 平安科技(深圳)有限公司 | 数据存储方法、装置、计算机设备及存储介质 |
CN109726315A (zh) * | 2018-10-24 | 2019-05-07 | 阿里巴巴集团控股有限公司 | 数据查询方法、装置、计算设备及存储介质 |
US11294869B1 (en) | 2018-12-19 | 2022-04-05 | Datometry, Inc. | Expressing complexity of migration to a database candidate |
US11204898B1 (en) | 2018-12-19 | 2021-12-21 | Datometry, Inc. | Reconstructing database sessions from a query log |
US11403291B1 (en) | 2018-12-20 | 2022-08-02 | Datometry, Inc. | Static emulation of database queries for migration to a different database |
CN109933294B (zh) * | 2019-03-26 | 2023-10-17 | 努比亚技术有限公司 | 数据处理方法、装置、可穿戴设备及存储介质 |
US11216466B2 (en) | 2019-04-24 | 2022-01-04 | Ebay Inc. | Managing database offsets with time series |
CN110377229B (zh) * | 2019-06-24 | 2023-04-25 | 北京百度网讯科技有限公司 | 数据分析方法、装置、计算机设备及存储介质 |
CN110515952A (zh) * | 2019-08-28 | 2019-11-29 | 广州高谱技术有限公司 | 一种电力数据的存储方法 |
CN110727682A (zh) * | 2019-09-27 | 2020-01-24 | 北京智道合创科技有限公司 | 数据存储方法及装置 |
CN111046038B (zh) * | 2019-11-22 | 2023-02-28 | 厦门科灿信息技术有限公司 | 时序数据存储的方法及终端设备 |
CN111046081B (zh) * | 2019-12-06 | 2023-09-12 | 和利时卡优倍科技有限公司 | 一种工业时序数据的访问方法及系统 |
US11379478B2 (en) | 2020-04-02 | 2022-07-05 | International Business Machines Corporation | Optimizing a join operation |
CN113761013A (zh) * | 2020-06-05 | 2021-12-07 | 杭州海康威视数字技术股份有限公司 | 时序数据预统计方法、装置及存储介质 |
CN113779102B (zh) * | 2020-11-04 | 2022-11-08 | 北京沃东天骏信息技术有限公司 | 数据特征生成方法、装置、电子设备以及计算机可读介质 |
CN112579836B (zh) * | 2021-03-01 | 2021-05-25 | 深圳市土地公网络科技有限公司 | 一种多数据库数据处理方法及系统 |
CN113078908B (zh) * | 2021-03-10 | 2022-03-25 | 杭州又拍云科技有限公司 | 一种适用于时间序列数据库的简易编解码方法 |
US11940991B2 (en) | 2021-03-22 | 2024-03-26 | International Business Machines Corporation | Data holes in a time series database |
CN114328515A (zh) * | 2021-12-22 | 2022-04-12 | 宁夏中科嘉业新能源研究院(有限公司) | 一种基于复合分配算法的数据存储方法 |
CN115732036B (zh) * | 2022-12-06 | 2023-11-28 | 云舟生物科技(广州)股份有限公司 | 调整转录本基础库存的方法、计算机存储介质及电子设备 |
CN116049153B (zh) * | 2022-12-12 | 2023-08-25 | 本原数据(北京)信息技术有限公司 | 数据库的数据处理方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101984421A (zh) * | 2010-09-03 | 2011-03-09 | 中国科学院软件研究所 | 基于实时数据库的气象要素数据组织录入与查询方法 |
CN102609504A (zh) * | 2012-02-03 | 2012-07-25 | 成都成电医星数字健康软件有限公司 | 一种关系型数据库的多维化设计方法 |
CN102855391A (zh) * | 2012-08-10 | 2013-01-02 | 南京南瑞继保电气有限公司 | 一种ems多专业数据全息存储及全景事故反演方法 |
WO2013096887A1 (en) * | 2011-12-23 | 2013-06-27 | Amiato, Inc. | Scalable analysis platform for semi-structured data |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5412806A (en) * | 1992-08-20 | 1995-05-02 | Hewlett-Packard Company | Calibration of logical cost formulae for queries in a heterogeneous DBMS using synthetic database |
US8346761B2 (en) | 2004-08-05 | 2013-01-01 | International Business Machines Corporation | Method and system for data mining for automatic query optimization |
CN101232422B (zh) * | 2008-01-18 | 2010-06-02 | 北京交通大学 | 一种基于网格技术的网络存储系统 |
US8386471B2 (en) | 2010-05-27 | 2013-02-26 | Salesforce.Com, Inc. | Optimizing queries in a multi-tenant database system environment |
US9009138B2 (en) | 2011-06-17 | 2015-04-14 | International Business Machines Corporation | Transparent analytical query accelerator |
US20130067182A1 (en) | 2011-09-09 | 2013-03-14 | Onzo Limited | Data processing method and system |
CN102591593B (zh) * | 2011-12-28 | 2014-07-30 | 华为技术有限公司 | 一种混合存储模式的切换方法、装置及系统 |
US20160055186A1 (en) * | 2013-03-18 | 2016-02-25 | Ge Intelligent Platforms, Inc. | Apparatus and method for optimizing time series data storage based upon prioritization |
-
2013
- 2013-09-27 CN CN201310452861.9A patent/CN104516894B/zh active Active
-
2014
- 2014-09-22 US US14/492,423 patent/US10229129B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101984421A (zh) * | 2010-09-03 | 2011-03-09 | 中国科学院软件研究所 | 基于实时数据库的气象要素数据组织录入与查询方法 |
WO2013096887A1 (en) * | 2011-12-23 | 2013-06-27 | Amiato, Inc. | Scalable analysis platform for semi-structured data |
CN102609504A (zh) * | 2012-02-03 | 2012-07-25 | 成都成电医星数字健康软件有限公司 | 一种关系型数据库的多维化设计方法 |
CN102855391A (zh) * | 2012-08-10 | 2013-01-02 | 南京南瑞继保电气有限公司 | 一种ems多专业数据全息存储及全景事故反演方法 |
Also Published As
Publication number | Publication date |
---|---|
US10229129B2 (en) | 2019-03-12 |
CN104516894A (zh) | 2015-04-15 |
US20150095381A1 (en) | 2015-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104516894B (zh) | 用于管理时间序列数据库的方法和装置 | |
CN112287182B (zh) | 图数据存储、处理方法、装置及计算机存储介质 | |
CN105069703B (zh) | 一种电网海量数据管理方法 | |
AU2019333921A1 (en) | Method and system for indexing of time-series data | |
US9081834B2 (en) | Process for gathering and special data structure for storing performance metric data | |
CN102915347B (zh) | 一种分布式数据流聚类方法及系统 | |
CN103853752A (zh) | 管理时间序列数据库的方法和装置 | |
JP5939583B2 (ja) | 抽出装置、データ処理システム、抽出方法および抽出プログラム | |
CN107391744A (zh) | 数据存储、读取方法、装置及其设备 | |
CN103514229A (zh) | 用于在分布式数据库系统中处理数据库数据的方法和装置 | |
JP6060312B2 (ja) | データの編成及び高速検索 | |
CN109213604A (zh) | 一种数据源的管理方法和装置 | |
CN109903050A (zh) | 交易去重方法、交易构造方法、设备和存储介质 | |
CN111666344B (zh) | 异构数据同步方法及装置 | |
CN109977078A (zh) | 一种数据的处理方法、装置、计算机设备和存储介质 | |
CN106599189A (zh) | 基于云计算的动态Skyline查询装置 | |
CN109828965A (zh) | 一种数据处理的方法及电子设备 | |
CN115525793A (zh) | 由计算机实现的方法、系统及存储介质 | |
CN114153380B (zh) | 用于数据访问和获取的集成电路、系统和方法 | |
Li et al. | Real‐time approach for oscillatory stability assessment in large‐scale power systems based on MRMR classifier | |
US11645283B2 (en) | Predictive query processing | |
Incipini et al. | Databases performance evaluation for IoT systems: The Scrovegni chapel use case | |
JP5430436B2 (ja) | 情報蓄積検索方法及び情報蓄積検索プログラム | |
CN117271480B (zh) | 数据处理方法、装置、电子设备及介质 | |
CN110197305A (zh) | 一种基于最短路径算法的继电保护数据模型搜索优化方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |