用于管理时间序列数据库的方法和装置制造方法
【专利摘要】本发明的各实施方式提供了用于管理时间序列数据库的方法和装置。在一个实施方式中,提供了一种用于管理时间序列数据库的方法,包括:监视针对时间序列数据库进行访问的多个操作以识别多个操作的类型,多个操作的类型包括查询类型和插入类型中的至少任一项;针对多个存储模式中的存储模式,分别基于类型来获取多个操作对时间序列数据库进行访问的成本;从多个存储模式中选择与最低成本相对应的存储模式;以及在预定时间段期间,根据选择的存储模式来向时间序列数据库中存储从多个测量点处采集的数据值。在一个实施方式中,提供了一种用于管理时间序列数据库的装置。采用本发明的方法和装置,可以提高向时间序列数据库的存储效率和查询效率。
【专利说明】用于管理时间序列数据库的方法和装置
【技术领域】
[0001] 本发明的各实施方式涉及数据库管理,更具体地,涉及用于管理时间序列数据库 (Time Series Database)的方法和装置。
【背景技术】
[0002] 随着计算机、数据通信以及实时监控等技术的发展,时间序列数据库已经被应用 于例如设备监控、生产线管理、金融分析等诸多方面。时间序列(Time Sequence)是指按照 时间顺序排列的测量值的集合。时间序列数据库是指用于存储这些测量值的数据库。测 量值可以包括各种数据,例如在监控桥梁安全性的应用环境中,被采集数据可以包括某传 感器采集的压强数据;在天气预报应用环境中,被采集数据可以包括温度、湿度、压力、风力 (例如,包括大小和方向);以及在城市的电网监控系统中,被采集数据可以包括城市中各 个家庭的用电量的测量值,等等。
[0003] 通常而言,按照应用环境的不同,采集数据的频率以及采集点的数量可能存在较 大的差异。对于海量时间序列数据而言,可能存在如下情况:1)需要以较高的频率采集数 据,然而测量点的数量较少;2)需要以较低的频率采集数据,然而测量点的数量极大。由于 所采集到的总体数据量是采集频率与采集点数量的乘积,因而上述两种情况都会产生海量 的时序数据。
[0004] 具体而言,在监控桥梁安全的应用环境中,例如可以在桥梁的重要位置部署传感 器(例如,数十个),并且以每秒10次的频率来采集桥梁各个位置的压强数据;在电网监控 系统中,可以在每个家庭部署传感器(例如,数千万个甚至更多),并且以每15分钟一次的 频率来采集各个家庭的用电量。可见,常规应用环境下的时间序列数据的数据量是巨大的。
[0005] 另外,由于应用环境不同,针对所采集到的数据执行的操作也可能会有所差异,例 如,除了向数据库中插入所采集到的数据以外还存在查询操作。对于监控桥梁安全的应用 环境而言,一种常规的查询操作是历史查询,该历史查询可以查询在一定时间范围(例如, 一小时)内从特定传感器采集的数据。又例如,对于电网监控系统而言,一种常规的查询操 作是时间片查询(slice query),当电力公司统计每个用户的用电量时,可以在较小的时间 范围(例如,几分钟)内并行地查询部署在各个家庭的传感器。
[0006] 由于时间序列数据通常包括海量的数据,并且时间序列数据库在各行各业中的应 用越来越广泛,因而如何降低存储数据和查询数据所涉及的资源开销,以及如何提高时间 序列数据的存储效率和查询效率,已经成为目前的一个研究热点。
【发明内容】
[0007] 因而,期望开发一种能够基于测量点的数量、测量频率的大小以及针对时间序列 数据库进行访问的类型,来管理时间序列数据库的技术方案。并且还期望该技术方案可以 基于时间序列数据库的近期状态来自适应地调整管理方案,以便提高数据存储效率和数据 查询效率。
[0008] 根据本发明的一个方面,提供了一种用于管理时间序列数据库的方法,包括:监视 针对时间序列数据库进行访问的多个操作以识别多个操作的类型,多个操作的类型包括查 询类型和插入类型中的至少任一项;针对多个存储模式中的存储模式,分别基于类型来获 取多个操作对时间序列数据库进行访问的成本;从多个存储模式中选择与最低成本相对应 的存储模式;以及在预定时间段期间,根据选择的存储模式来向时间序列数据库中存储从 多个测量点处采集的数据值。
[0009] 在本发明的一个实施方式中,提供了一种用于管理时间序列数据库的方法,包括: 根据上文所述的方法,向时间序列数据库中存储采集的数据值;以及响应于对时间序列数 据库的查询操作,基于与选择的存储模式相对应的数据存储结构,从时间序列数据库中读 取数据。
[0010] 在本发明的一个实施方式中,提供了一种用于管理时间序列数据库的装置,包括: 监视模块,配置用于监视针对时间序列数据库进行访问的多个操作以识别多个操作的类 型,多个操作的类型包括查询类型和插入类型中的至少任一项;获取模块,配置用于针对多 个存储模式中的存储模式,分别基于类型来获取多个操作对时间序列数据库进行访问的成 本;选择模块,配置用于从多个存储模式中选择与最低成本相对应的存储模式;以及存储 模块,配置用于在预定时间段期间,根据选择的存储模式来向时间序列数据库中存储从多 个测量点处采集的数据值。
[0011] 在本发明的一个实施方式中,提供了一种用于管理时间序列数据库的装置,包括: 存储模块,配置用于利用上文所述的装置,向时间序列数据库中存储采集的数据值;以及读 取模块,配置用于响应于对时间序列数据库的查询操作,基于与选择的存储模式相对应的 数据存储结构,从时间序列数据库中读取数据。
[0012] 采用本发明的方法和装置,可以自适应地调整针对时间序列数据库进行存储和查 询操作的方式,进而提高存储和查询效率。
【专利附图】
【附图说明】
[0013] 通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其 他目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号 通常代表相同部件。
[0014] 图1示意性示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12 的框图;
[0015] 图2示意性示出了根据一个解决方案的时间序列数据库中的数据记录的示意图;
[0016] 图3示意性示出了根据本发明一个实施方式的用于管理时间序列数据库的技术 方案的架构图;
[0017] 图4示意性示出了根据本发明一个实施方式的用于管理时间序列数据库的方法 的流程图;
[0018] 图5A和图5B分别示意性示出了根据本发明一个实施方式的分组存储模式和高频 存储模式中的数据块(blob)的数据结构的示意图;
[0019] 图6示意性示出了根据本发明一个实施方式的成本模型的框图;以及
[0020] 图7示意性示出了根据本发明一个实施方式的用于管理时间序列数据库的装置 的框图。
【具体实施方式】
[0021] 下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开 的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方 式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的 范围完整地传达给本领域的技术人员。
[0022] 所属【技术领域】的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。 因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包 括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为"电路"、"模 块"或"系统"。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质 中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0023] 可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计 算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是--但不限 于--电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算 机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便 携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储 器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、 或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程 序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0024] 计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号, 其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括--但 不限于--电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是 计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者 传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0025] 计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括--但不限 于--无线、电线、光缆、RF等等,或者上述的任意合适的组合。
[0026] 可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机 程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++, 还包括常规的过程式程序设计语言-诸如"C"语言或类似的程序设计语言。程序代码可以 完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部 分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在 涉及远程计算机的情形中,远程计算机可以通过任意种类的网络--包括局域网(LAN)或 广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提 供商来通过因特网连接)。
[0027] 下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/ 或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各 方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、 专用计算机或其他可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序 指令通过计算机或其他可编程数据处理装置执行,产生了实现流程图和/或框图中的方框 中规定的功能/操作的装置。
[0028] 也可以把这些计算机程序指令存储在能使得计算机或其他可编程数据处理装置 以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一 个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品(manufacture) 〇
[0029] 也可以把计算机程序指令加载到计算机、其他可编程数据处理装置、或其他设备 上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计 算机实现的过程,从而使得在计算机或其他可编程装置上执行的指令能够提供实现流程图 和/或框图中的方框中规定的功能/操作的过程。
[0030] 图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框 图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使 用范围带来任何限制。
[0031] 如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统 /服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器 28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
[0032] 总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器, 外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举 例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC) 总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
[0033] 计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是 任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动 的和不可移动的介质。
[0034] 系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存 取存储器(RAM) 30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其 他可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34 可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为"硬盘驱动器")。尽管 图1中未示出,可以提供用于对可移动非易失性磁盘(例如"软盘")读写的磁盘驱动器, 以及对可移动非易失性光盘(例如⑶-ROM,DVD-ROM或者其他光介质)读写的光盘驱动器。 在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28 可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模 块被配置以执行本发明各实施例的功能。
[0035] 具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器 28中,这样的程序模块42包括--但不限于--操作系统、一个或者多个应用程序、其他 程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程 序模块42通常执行本发明所描述的实施例中的功能和/或方法。
[0036] 计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、 显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的 设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其他计算设备进行通信 的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接 口 22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络 (例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适 配器20通过总线18与计算机系统/服务器12的其他模块通信。应当明白,尽管图中未示 出,可以结合计算机系统/服务器12使用其他硬件和/或软件模块,包括但不限于:微代 码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存 储系统等。
[0037] 在下文中将详细描述如何在数据库中存储时间序列数据。例如,在如上文所述的 监控桥梁安全的应用中,需要以特定频率从部署在桥梁上的多个传感器处采集测量值(例 如,压强等)。根据一个技术方案,可以利用现有的关系数据库来存储多个测量值。如下文 表1所示,其中示出了使用普通关系数据库来存储测量值的数据表的示例。
[0038] 表1关系数据库中的数据表
[0039]
【权利要求】
1. 一种用于管理时间序列数据库的方法,包括: 监视针对所述时间序列数据库进行访问的多个操作以识别所述多个操作的类型,所述 多个操作的所述类型包括查询类型和插入类型中的至少任一项; 针对多个存储模式中的存储模式,分别基于所述类型来获取所述多个操作对所述时间 序列数据库进行访问的成本; 从所述多个存储模式中选择与最低成本相对应的存储模式;以及 在预定时间段期间,根据选择的所述存储模式来向所述时间序列数据库中存储从多个 测量点处采集的数据值。
2. 根据权利要求1所述的方法,进一步包括: 监视运行所述时间序列数据库的计算设备的状态信息;以及 基于所述状态信息来修订所述成本。
3. 根据权利要求1或2所述的方法,其中所述多个存储模式至少包括以下中的任一 项: 分组存储模式:基于按照测量时间段而将多个测量点划分所得的分组,在至少一个分 组数据块中存储在所述时间段内在所述多个测量点处采集到的所述数据值;以及 高频存储模式:在至少一个高频数据块中存储在一时间段内、在一测量点处采集到的 所述数据值。
4. 根据权利要求1或2所述的方法,其中基于所述类型来获取所述多个操作对所述时 间序列数据库进行访问的成本包括: 基于所述类型,根据与所述多个存储模式相对应的成本模型来计算所述成本。
5. 根据权利要求4所述的方法,其中根据与所述多个存储模式相对应的成本模型来计 算所述成本包括以下中的至少任一项: 响应于所述多个操作中的第一部分操作属于所述查询类型,基于查询成本模型计算所 述成本,其中所述查询成本模型描述针对所述数据库执行查询操作时的访问成本;以及 响应于所述多个操作中的第二部分操作属于所述插入类型,基于插入成本模型计算所 述成本,其中所述插入成本模型描述针对所述数据库执行插入操作时的访问成本。
6. 根据权利要求5所述的方法,其中响应于所述多个操作中的第一部分操作属于所述 查询类型,基于查询成本模型计算所述成本包括: 从所述第一部分操作中提取与所述第一部分操作相关联的多个测量点的数量ND以及 多个查询时间点的数量乂,其中所述第一部分操作表示:从所述时间序列数据库中查询在 所述多个查询时间点处从所述多个测量点采集到的数据值的操作;以及 按照所述查询成本模型,至少基于所述多个测量点的数量ND以及所述多个查询时间点 的数量NT来估算所述成本。
7. 根据权利要求5所述的方法,其中响应于所述多个操作中的第二部分操作属于所述 插入类型,基于插入成本模型计算所述成本包括: 从所述第二部分操作中提取与所述第二部分操作相关联的向所述数据库中插入数据 的采样频率f、以及与采样频率f相关联的测量点的数量|Df|,其中所述第二部分操作表 示:以频率f来向所述时间序列数据库中插入从|Df|个所述测量点处采集到的数据值;以 及 按照所述插入成本模型,至少基于所述采样频率f、以及所述数量IDf |,估算所述成本。
8. 根据权利要求3所述的方法,其中: 在所述分组存储模式中,在所述至少一个分组数据块中的一个分组数据块的数据节点 处,至少存储所述分组中的测量点的标识符、采集到的所述数据值以及时间偏移;以及 在所述高频存储模式中,在所述至少一个高频数据块中的一个高频数据块的数据节点 处,至少存储采集到的所述数据值。
9. 根据权利要求4所述的方法,其中所述查询成本模型和所述插入成本模型分别包 括: 分别与所述分组存储模式和所述高频存储模式相对应的成本模型。
10. 根据权利要求1或2所述的方法,其中所述方法被周期性地执行。
11. 一种用于管理时间序列数据库的方法,包括: 根据权利要求1-10中任一项所述的方法,向所述时间序列数据库中存储采集的所述 数据值;以及 响应于对所述时间序列数据库的查询操作,基于与选择的所述存储模式相对应的数据 存储结构,从所述时间序列数据库中读取数据。
12. -种用于管理时间序列数据库的装置,包括: 监视模块,配置用于监视针对所述时间序列数据库进行访问的多个操作以识别所述多 个操作的类型,所述多个操作的所述类型包括查询类型和插入类型中的至少任一项; 获取模块,配置用于针对多个存储模式中的存储模式,分别基于所述类型来获取所述 多个操作对所述时间序列数据库进行访问的成本; 选择模块,配置用于从所述多个存储模式中选择与最低成本相对应的存储模式;以及 存储模块,配置用于在预定时间段期间,根据选择的所述存储模式来向所述时间序列 数据库中存储从多个测量点处采集的数据值。
13. 根据权利要求12所述的装置,进一步包括: 修订模块,配置用于监视运行所述时间序列数据库的计算设备的状态信息;以及基于 所述状态信息来修订所述成本。
14. 根据权利要求12或13所述的装置,其中所述多个存储模式至少包括以下中的任一 项: 分组存储模式:基于按照测量时间段而将测量点划分所得的分组,在至少一个分组数 据块中存储在所述时间段内在所述测量点处采集到的所述数据值;以及 高频存储模式,在至少一个高频数据块中存储在一时间段内、在一测量点处采集到的 所述数据值。
15. 根据权利要求12或13所述的装置,其中所述获取模块包括: 计算模块,配置用于基于所述类型,根据与所述多个存储模式相对应的成本模型来计 算所述成本。
16. 根据权利要求15所述的装置,其中所述计算模块包括以下中的至少任一项: 第一计算模块,配置用于响应于所述多个操作中的第一部分操作属于所述查询类型, 基于查询成本模型计算所述成本,其中所述查询成本模型描述针对所述数据库执行查询操 作时的访问成本;以及 第二计算模块,配置用于响应于所述多个操作中的第二部分操作属于所述插入类型, 基于插入成本模型计算所述成本,其中所述插入成本模型描述针对所述数据库执行插入操 作时的访问成本。
17. 根据权利要求16所述的装置,其中所述第一计算模块包括: 第一提取模块,配置用于从所述第一部分操作中提取与所述第一部分操作相关联的多 个测量点的数量ND以及多个查询时间点的数量NT,其中所述第一部分操作表示:从所述时 间序列数据库中查询在所述多个查询时间点处从所述多个测量点采集到的数据值的操作; 以及 第一估算模块,配置用于按照所述查询成本模型,至少基于所述多个测量点的数量Nd 以及所述多个查询时间点的数量Nt来估算所述成本。
18. 根据权利要求16所述的装置,其中所述第二计算模块包括: 第二提取模块,配置用于从所述第二部分操作中提取与所述第二部分操作相关联的向 所述数据库中插入数据的采样频率f、以及与采样频率f?相关联的测量点的数量|Df|,其中 所述第二部分操作表示:以频率f来向所述时间序列数据库中插入从|Df|个所述测量点处 采集到的数据值;以及 第二估算模块,配置用于按照所述插入成本模型,至少基于所述采样频率f、以及所述 数量|Df|,估算所述成本。
19. 根据权利要求14所述的装置,其中: 在所述分组存储模式中,在所述至少一个分组数据块中的一个分组数据块的数据节点 处,至少存储所述分组中的测量点的标识符、采集到的所述数据值以及时间偏移;以及 在所述高频存储模式中,在所述至少一个高频数据块中的一个高频数据块的数据节点 处,至少存储采集到的所述数据值。
20. 根据权利要求15所述的装置,其中所述查询成本模型和所述插入成本模型分别包 括: 分别与所述分组存储模式和所述高频存储模式相对应的成本模型。
【文档编号】G06F17/30GK104516894SQ201310452861
【公开日】2015年4月15日 申请日期:2013年9月27日 优先权日:2013年9月27日
【发明者】陈垚亮, 陈晓艳, 刘凯, 孙国荣, 王晨, 黄胜 申请人:国际商业机器公司