CN103794006B - 用于处理多个传感器的时序数据的方法和装置 - Google Patents
用于处理多个传感器的时序数据的方法和装置 Download PDFInfo
- Publication number
- CN103794006B CN103794006B CN201210429532.8A CN201210429532A CN103794006B CN 103794006 B CN103794006 B CN 103794006B CN 201210429532 A CN201210429532 A CN 201210429532A CN 103794006 B CN103794006 B CN 103794006B
- Authority
- CN
- China
- Prior art keywords
- time series
- data
- series data
- sensor
- value
- 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
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000012545 processing Methods 0.000 title claims abstract description 22
- 241001269238 Data Species 0.000 claims abstract description 18
- 230000008569 process Effects 0.000 claims abstract description 16
- 230000006798 recombination Effects 0.000 claims abstract description 7
- 238000005215 recombination Methods 0.000 claims abstract description 7
- 238000007906 compression Methods 0.000 claims description 67
- 230000006835 compression Effects 0.000 claims description 67
- 238000003860 storage Methods 0.000 claims description 61
- 238000005315 distribution function Methods 0.000 claims description 7
- 230000006837 decompression Effects 0.000 claims description 5
- 230000008521 reorganization Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 14
- 238000013507 mapping Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 8
- 238000013144 data compression Methods 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000005070 sampling Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000005291 magnetic effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000000465 moulding Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 102220034833 rs1801145 Human genes 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- 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/2308—Concurrency control
- G06F16/2315—Optimistic concurrency control
- G06F16/2322—Optimistic concurrency control using timestamps
-
- 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
-
- 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/21—Design, administration or maintenance of databases
-
- 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
-
- 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
-
- 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/2477—Temporal data queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- 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
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
- Y04S40/00—Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
- Y04S40/18—Network protocols supporting networked applications, e.g. including control of end-device applications over a network
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)
- Computer Networks & Wireless Communication (AREA)
- Human Computer Interaction (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Recording Measured Values (AREA)
- Testing And Monitoring For Control Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
Abstract
本发明涉及时序数据处理,公开一种用于处理来自多个传感器的时序数据的方法和装置,其中,所述多个传感器被划分成多个传感器组,每个时序数据包含一个时间戳和一个值,该值与该时间戳相关联,该方法包含:数据接收步骤,接收来自多个传感器的各个传感器的时序数据;数据分组步骤,将接收的各个传感器的时序数据分派到所述多个传感器组中该个传感器所属的传感器组;第一存储步骤,在第一存储器的第一数据库存储时序数据,使得被分派到所述多个传感器组中的同一个传感器组的多个时序数据被存储在第一数据库的至少一个数据库记录中;数据重组步骤,从第一数据库中获取多个传感器的各个传感器的时序数据。第二存储步骤,在第二存储器的第二数据库存储时序数据,使得同一个传感器的多个时序数据被存储在第二数据库的至少一个数据库记录中。
Description
技术领域
本发明涉及时序数据处理,更具体地,涉及在数据库中存储来自传感器的时序数据。
背景技术
在各种工业应用中,需要处理来自大量传感器的海量时序数据—亦称“时间序列数据”(Time Series Data),例如股价波动、气温变化等等。时序数据包含时间戳和与时间戳相关联的值,例如包含来自传感器的采样时间和采样值。在能源系统、智能电网等应用中,往往部署数以千万计的传感器,这些传感器产生海量的时序数据,需要将它们持久地存储在数据库中以便查询。在持久存储时序数据之前,首先要从传感器实时接收时序数据,并在临时存储器的数据库中暂存所接收的时序数据。通常是按传感器组织暂存时序数据,这种方式虽然直截了当,但是对缓存的利用效率不高,在处理来自大量低频采样的传感器的海量时序数据时,尤其如此。
发明内容
针对现有技术的状况,本发明的一个目的是提供一种用于处理来自多个传感器的时序数据的改进的方法和装置。
一方面,提供一种用于处理来自多个传感器的时序数据的方法,其中,所述多个传感器被划分成多个传感器组,每个时序数据包含一个时间戳和一个值,该值与该时间戳相关联,该方法包含:数据接收步骤,接收来自多个传感器的各个传感器的时序数据;数据分组步骤,将接收的各个传感器的时序数据分派到所述多个传感器组中该个传感器所属的传感器组;第一存储步骤,在第一存储器的第一数据库存储时序数据,使得第一数据库的各个数据库记录包含被分派到所述多个传感器组中的同一个传感器组的多个时序数据;数据重组步骤,从第一数据库中获取多个传感器的各个传感器的时序数据;第二存储步骤,在第二存储器的第二数据库存储时序数据,使得第二数据库的各个数据库记录包含同一个传感器的多个时序数据。
另一方面,提供一种用于处理来自多个传感器的时序数据的装置,其中,所述多个传感器被划分成多个传感器组,每个时序数据包含一个时间戳和一个值,该值与该时间戳相关联,该装置包含:数据接收模块,被配置得用于接收来自多个传感器的各个传感器的时序数据;数据分组模块,被配置得用于将接收的各个传感器的时序数据分派到所述多个传感器组中该个传感器所属的传感器组;第一存储控制模块,被配置得用于在第一存储器的第一数据库存储时序数据,使得第一数据库的各个数据库记录包含被分派到所述多个传感器组中的同一个传感器组的多个时序数据;数据重组模块,被配置得用于从第一数据库中获取多个传感器的各个传感器的时序数据;第二存储控制模块,被配置得用于在第二存储器的第二数据库存储时序数据,使得第二数据库的各个数据库记录包含同一个传感器的多个时序数据。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了适于用来实现本发明实施方式的示例性计算系统100的框图;
图2是按照本发明一个实施例的方法的示意性流程图;
图3是按照本发明一个实施例的装置的示意性框图;
图4示意性地表示来自传感器的时序数据的例子;
图5A和5B示意性地表示按照本发明实施例、在第一存储器中存储来自多个传感器的时序数据的数据库记录;
图6A和6B示意性地表示按照本发明一个实施例的用于第二存储器中存储时序数据的数据库记录;
图7示意性地表示按照本发明另一个实施例的用于在第二存储器中存储时序数据的数据库记录;
图8是传感器的时序数据的一种图示。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了适于用来实现本发明实施方式的示例性计算系统100的框图。如图1所示,计算机系统100可以包括:CPU(中央处理单元)101、RAM(随机存取存储器)102、ROM(只读存储器)103、系统总线104、硬盘控制器105、键盘控制器106、串行接口控制器107、并行接口控制器108、显示控制器109、硬盘110、键盘111、串行外部设备112、并行外部设备113和显示器114。在这些设备中,与系统总线104耦合的有CPU 101、RAM 102、ROM 103、硬盘控制器105、键盘控制器106、串行控制器107、并行控制器108和显示控制器109。硬盘110与硬盘控制器105耦合,键盘111与键盘控制器106耦合,串行外部设备112与串行接口控制器107耦合,并行外部设备113与并行接口控制器108耦合,以及显示器114与显示控制器109耦合。应当理解,图1所述的结构框图仅仅是为了示例的目的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况增加或减少某些设备。
所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smal l talk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instructionmeans)的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本发明涉及时序数据的处理,对时序数据的处理可以在图1所示的计算机系统100上执行。
本发明的总体构思,是针对来自多个低频采样的传感器的时序数据的特点,首先以较高的效率暂存从多个传感器接收的时序数据,然后重组所暂存的时序数据,并按相应的数据结构永久性地存储时序数据。进一步,以压缩方式存储时序数据,由此降低存储时序数据所需的存储空间。
下面参照附图,说明本发明的各种实施方式。
首先参看图2。图2示意性地表示按照本发明一个实施例的用于处理来自多个传感器的时序数据的方法的流程图。
图2所示的方法处理的时序数据,来自多个传感器(未予示出),例如来自1000个传感器。作为初始化步骤(未予示出),将所述多个传感器划分成多个传感器组,例如,将1000个传感器划分成100个传感器组,每个传感器组包含10个传感器,记录传感器组与传感器之间的映射关系如下:
G1={1,2,…10},…G10={91,92,…100},…G100={991,992,…1000}
即传感器组G1包含传感器1、2、…10;传感器组G10包含传感器91、92、…100;传感器组G100包含传感器991、992、…1000。当然,这样的分组只是示例性的,在具体实践中,传感器的数量可能数以千万计,可以根据实际情况,例如根据传感器的采样频率,适当地配置分组参数,使每个传感器组包含更多的、例如数百乃至数千个传感器。
图2所示的方法处理的时序数据,均包含一个时间和一个与时间戳关联的值。时间戳代表值的采样时间,简记为“TS”或“T”,与时间戳相关联的值也称采样值,简记为“V”。说明书中也用二元组“<时间戳,值>”来表示一对相互关联的时间戳和值,称为“时间戳-值对”。为了方便叙述,在不致引起混淆的情况下,以下也将传感器的时序数据包含的值称为“传感器的值”,将传感器的时序数据包含的时间或时间戳,称为“传感器的时间”。
概括来说,如图2所示的方法包含以下步骤:数据接收步骤210、数据分组步骤220、第一存储步骤230、数据重组步骤240和第二存储步骤250。现在结合其它附图,详细说明各个步骤的操作。
该方法的过程始于数据接收步骤210,该步骤接收来自多个传感器(未予示出)的各个传感器的时序数据。
图4示意性地表示来自传感器的时序数据,其中的表411示意性地表示来自多个传感器的一部分时序数据,其中表头“ID”、“TS”和“V”所在栏的内容,分别是传感器标识符、传感器的时间戳和值。例如,第1行表示标识符为“1”的传感器(传感器1)在时间“20120716.10:47:00”测量的温度值“32.0”。
在步骤210后,执行数据分组步骤220,将接收的各个传感器的时序数据分派到所述多个传感器组中该个传感器所属的传感器组。
例如,将来自1000个传感器的各个传感器的时序数据分派到传感器组G1、G2、…G100。假设在某一时刻,分配到传感器组G1的时序数据如图4的表411所示。
表411所示的时序数据,以及上述对传感器的分组,仅仅是示例性的。步骤210可以接收来自更多的传感器的时序数据,在将多个传感器划分成多个传感器组的情况下,每个被接收的时序数据都属于一个传感器组。
在步骤220之后,执行第一存储步骤230,在第一存储器的第一数据库DB1存储时序数据,使得第一数据库的各个数据库记录包含被分派到所述多个传感器组中的同一个传感器组的多个时序数据。
按照本发明一个实施例,第一存储器是一个用于临时存储数据的临时存储器,可以是易失性存储器,也可以是非易失性存储器。第一数据库例如可以是一个关系数据库(RDB)。
下面参照图5A和5B,进一步说明步骤230的实现方式。
图5A示意性地表示按照本发明一个实施例的数据库记录的结构。图5A所示的数据库记录包含:
(1)组标识符(G_ID)501A,是一个数据库记录对应的传感器组的标识符。
(2)数据部分504A,包含多个三元组<ID,V,T>,其中,ID表示传感器标识符,V和T分别表示传感器的值和时间戳,即传感器的时序数据中的值和时间戳。可以通过在数据库记录中设置一个额外的计数器,表示数据部分504A所包含的三元组的个数。
例如,假设一个数据库记录包含表411所示的分派到传感器组G1的时序数据,则该数据库记录可以表示为:
{G1,<1,32.0,20120716.10:47:00>,…<10,32.2,20120716.10:47:40>}
其中,G_ID=“G1”,三元组<1,32.0,20120716.10:47:00>表示传感器1(ID=1)、传感器1的时序数据中的值(V)“32.0”以及该值对应的时间戳(T)“20120716.10:47:00”。
在该数据库记录中存储了来自多个传感器的时序数据。
按照本发明一个实施例,在第一存储步骤230之前,可以对时序数据进行压缩,产生压缩的时序数据。相应地,在第一存储步骤中,所述在第一存储器的第一数据库存储时序数据,包含在第一存储器的第一数据库存储压缩的时序数据。
对时序数据进行压缩,是指将原始时序数据转换成压缩的时序数据。而存储压缩的时序数据所需的存储空间,比存储原始时序数据所需的存储空间更小。可以采用现有技术中各种数据压缩方法,对表411的时序数据进行压缩,产生压缩的时序数据。
按照本发明一个实施例,所述对时序数据进行压缩,包含对时序数据中的时间戳进行压缩。
图5B示意性地表示按照本发明一个实施例的用于以压缩方式存储数据的数据库记录的结构。图5B所示的数据库记录包含以下字段:
(1)组标识符(G_ID)501,表示传感器组的标识符;
(2)基准时间戳(Base_TS)502,表示一个基准时间;
(3)点数据包(P_Blob)504,由多个多个三元组<ID,V,Δt>504_1构成。三元组<ID,V,Δt>中的“ID”和“V”的含义与图5A所示的三元组<ID,V,T>中的“ID”和“V”的含义分别相同,“Δt”是值“V”对应的时间戳与基准时间戳502之间的偏差量。由Δt和基准时间戳502,可以导出值V对应的时间戳。
(4)计数器(P_Counter)503,表示三元组504_1的个数。例如,如果P_Counter 503的值为10,则表示点数据包504包含10个三元组504_1。点数据包504中可容纳的三元组的个数,除了受限于数据库记录的最大长度,也与数据库记录中的数据或三元组中的数据被压缩的程度有关,数据压缩率越大,可容纳的三元组的个数越多。
例如,假设一个数据库记录包含表411所示的分派到传感器组G1的时序数据,则图5B所示结构数据库记录可以表示为:
{G1,20120716.10:47:00,10,P_Blob},其中
P_Blob=<1,32.0,0>,<2,31.8,10>,<3,31.0,10>…<10,32.2,40>。
与图5A所示的数据库记录相比,图5B所示的数据库记录的数据,是经过对时序数据中的时间戳进行压缩而产生压缩的时序数据。采用图5B所示的压缩方式,可以在一个数据库记录中存储更多的时序数据。
需要指出的是,图5B所示的数据压缩方式只是示意性的,所属技术领域的技术人员应当明白,可以采用其他数据压缩方式,对图5A所示结构的数据库记录的数据进行进一步压缩。对图5B所示结构的数据库记录的数据,也可以进行进一步压缩。
按照本发明一个实施例,所述对时序数据进行压缩,包含对各个传感器的时序数据中的值进行线性压缩。对各个传感器的时序数据中的值进行线性压缩,可以减少所需存储的如图5A或5B所示的三元组的个数。
为了避免影响对图2所示的过程的描述的连贯性,对传感器的值进行线性压缩的实施方式,将在后文将结合附图加以详细说明。
需要指出的是,图5A和图5B所示的第一存储器中的每个数据库记录都唯一地对应一个传感器组;而一个传感器组,则可以对应多个图5A或图5B所示的数据库记录。
来自多个传感器的时序数据,是按照时间顺序接收的。按照常规的方式,在永久性地存储时序数据永久地之前,要在临时存储器中按传感器存储所接收的时序数据,即按传感器在临时存储器的数据库记录中存储时序数据,其中,对应一个传感器的一个数据库记录中,只记录该一个传感器的时序数据。在传感器数量大,采样频率低的应用中,需要大量的缓存空间才能支持这种存储方式。
按照本发明实施例的方法,则按传感器组存储所接收的时序数据,其中,第一存储器中的第一数据库的每个数据库记录包含属于该数据库记录对应的传感器组的传感器的时序数据,换言之,该步骤将来自一个传感器组所属的多个传感器的时序数据存储在一个数据库记录中,这可以有效地利用数据库记录的最大长度,由此可以节省所需缓存的空间。
此外,第一存储步骤230不但按传感器组存储所接收的时序数据,而且可以以压缩方式存储所接收的时序数据,从而可以节省存储空间,使得在一个数据库记录中能存储更多的时序数据。
按照本发明一个实施例,可以通过在第一数据库的数据库记录中设置适当的字段,为数据库记录建立各种索引,例如:最大值索引,该索引包含数据库记录中的时序数据中的最大值与数据库记录之间的映射关系;最小值索引,该索引包含数据库记录中的时序数据中的最小值与数据库记录之间的映射关系;起始时间索引,该索引包含数据库记录中的时序数据中的最早时间戳与数据库记录之间的映射关系;结束时间索引,该索引包含数据库记录中的时序数据中的最晚时间戳与数据库记录之间的映射关系。上述索引可以用于对第一数据库上存储的时序数据进行各种检索。
现在返回图2,在步骤230后,执行数据重组步骤240,从第一数据库中获取多个传感器的各个传感器的时序数据。
例如,可以在用于存储来自传感器的时序数据的第一存储器充满时,或者在第一存储器开始存储时序数据后的预定时间,从第一数据库中获取多个传感器的各个传感器的时序数据。具体来说,可以按照传感器组与传感器之间的映射关系,从一个传感器所属的传感器组所在的数据库记录中,抽取该传感器的时序数据。
转看图4,图中的表412示意性地表示数据重组步骤240从第一数据库获取的一个传感器的一部分时序数据。表412中的表头“TS”和“V”的含义与表411的相同,在此无须赘述。为了便于说明,假设表412所示的26个时序数据,是属于传感器组G10的传感器100的一部分时序数据。
在数据重组步骤240之后,执行第二存储步骤250,在第二存储器的第二数据库DB2存储时序数据,使得同一个传感器的多个时序数据被存储在第二数据库的至少一个数据库记录中。
第二存储器可以是非易失性存储器,例如磁盘、光盘等。第二数据库可以是关系数据库。
第二数据库中的数据库记录可以用下面的表达式(1)表示:
{ID,<V,T>,<V,T>,…} (1)
其中,ID表示传感器标识符,多个二元组<V,T>表示属于该传感器标识符代表的传感器的多个时序数据。例如,假设第二数据库的一个数据库记录包含表412所示的时序数据,则该数据库记录的内容可以表示为:
{G10,<3,20120806.10:00:00>,…<5,20120806.10:00:25>}
其中,G10是传感器标识符,<3,20120806.10:00:00>分别代表表412中的第1行的时序数据,<5,20120806.10:00:25>代表最后一行的时序数据。
需要指出的是,表达式(1)仅仅是示意性的。第二数据库的数据库记录可以包含更多的字段,数据库记录中存储的时序数据,可以包含比表412所示的更多或更少的时序数据,并且,一个传感器可以对应于多个存储其时序数据的数据库记录。所属技术领域的技术人员在具体实践中,可以针对可能的需要,例如对第二数据库进行检索的需要,对表达式(1)所示的结构作出各种修改,例如增加字段。
按照本发明一个实施例,所述第二存储步骤250进一步包含:在第二存储器的第二数据库按时间戳存储时序数据。换言之,在按传感器存储时序数据的基础上进一步按时间存储时序数据,这可以方便以后在第二数据库中进行基于传感器和时间的检索。
按照本发明一个实施例,在第二存储步骤250之前,甚至在第一步骤230之前,可以对时序数据进行压缩,产生压缩的时序数据。相应地,在第二存储步骤中,所述在第二存储器的第二数据库存储时序数据,包含在第二存储器的第二数据库存储压缩的时序数据。
按照本发明一个实施例,所述对时序数据进行压缩,包含对时序数据中的时间戳进行压缩。
图6A示意性地表示按照本发明一个实施例用于以压缩方式按时间戳存储时序数据的数据库记录的结构。图6A所示的数据库记录与图5B所示的数据库记录相比,除了传感器标识符601与组标识符501之间以及二元组<V,Δt>与三元组<ID,V,Δt>之间的差别外,其它部分基本相同。具体来说,包含以下字段:
—传感器标识符(ID)601,表示一个传感器的标识符;
—基准时间戳(Base_TS)602,表示一个基准时间;
—计数器(V_Counter)603;
—值数据包(V_Blob)604,由多个二元组<V,Δt>604_1构成,二元组<V,Δt>中的“V”表示值,“Δt”表示值“V”对应的时间戳与基准时间戳602之间的偏差量,由<V,Δt>和基准时间戳602,可以导出二元组<V,Δt>对应的<时间戳,值>对。
计数器603的值表示二元组604_1的个数。
例如,按照图6A所示的结构,可以在一个数据库记录中存储表412所示的时序数据,其内容可以示意性地表示如下:
{100,20120816.10:00:00,26,<3,0>,<3.3,1>,<3.6,2>,…<5,25>}
按照本发明一个实施例,所述对时序数据进行压缩,包含对各个传感器的时序数据中的值进行线性压缩。
按照本发明一个实施例,可以通过在表达式(1)或图6A所示的结构的数据库记录中设置适当的字段,为数据库记录建立各种索引,例如:起始时间索引,该索引包含数据库记录中的时序数据中的最早时间戳与数据库记录之间的映射关系;结束时间索引,该索引包含数据库记录中的时序数据中的最晚时间戳与数据库记录之间的映射关系。上述索引可以用于对第二数据库上存储的时序数据进行基于时间的各种检索。
按照本发明一个实施例,所述第二存储步骤250进一步包含:在第二存储器的第二数据库按值存储时序数据。
按照本发明一个实施例,在第二存储步骤250之前,可以对时序数据进行压缩,产生压缩的时序数据。相应地,在第二存储步骤中,所述在第二存储器的第二数据库存储时序数据,包含在第二存储器的第二数据库存储压缩的时序数据。
按照本发明一个实施例,所述对时序数据进行压缩,包含对时序数据中的时间戳进行压缩。
图7示意性地表示按照本发明另一个实施例的用于以压缩方式按值存储时序数据的数据库记录的结构。图7所示的数据库记录包含以下字段:
—传感器标识符(ID)701,表示一个传感器的标识符;
—值范围键(Range_Key)702,表示该数据库记录中存储的值的范围;
—基准时间戳(Base_ST)704,表示一个基准时间;
—时间戳数据包(TS_Blob)703,包含:
—多个二元组<V,Δt>703_2,二元组<V,Δt>中的“V”表示值,“Δt”表示值“V”对应的时间戳与基准时间戳704之间的偏差量,因此,<V,Δt>和基准时间戳Base_TS 704,可以表示二元组<V,Δt>对应的<时间戳,值>对。
—计数器(TS_Counter)703_1,其值表示二元组703_2的个数。
图7与图6A所示的数据库记录的结构的主要差别是,图7中包含一个值范围键(Range_Key)702字段,用于指示数据库记录中包含的时序数据的值的值范围。由于传感器在不同时间的值的差别可能很大,在数据库记录中限定所存储的时序数据的值的值范围,有助于提高在第二存储器中进行基于传感器和值的检索的速度。
可以用各种方式划分来自传感器的时序数据中的值的值范围。以传感器100为例,假设该传感器的时序数据的值的范围为[-20,20],可以简单地把这个范围划分为20个值范围,即[-20,-18]、[-18,-16]…[16,18]、[18,20]。这种划分方式的缺点是,在实际情况中,传感器的值在每个值范围上的分布不均匀,就是说,传感器的值在有的值范围内很多,在有的值范围内很少。
每个传感器的值,都有一定的分布规律。可以利用每个传感器的值的实际分布,来划分每个传感器的值的值范围。
按照本发明一个实施例,图2所示的方法进一步包含:计算来自每个传感器的值的概率分布函数PDF(Probabi l ity Distribution Function),相应地,所述在第二存储器的第二数据库按值存储时序数据包含:
根据所计算的PDF,为每个传感器的值划分多个值范围;
按所划分的值范围存储时序数据,使得一个数据库记录中包含属于同一个值范围的值对应的时序数据。
按照本发明一个实施例,可以在第一存储步骤230之前,通过统计每个传感器的时序数据,计算每个传感器的时序数据的值的PDF。例如,通过统计来自传感器100的时序数据,可以计算出传感器100的值的概率分布函数PDF:
即,传感器100的值服从正态分布,其中,μ是传感器的值的期望值,和σ是标准差。
根据所计算传感器100的值的概率分布函数PDF,按照下述公式,将概率分布函数所覆盖的采样范围分割K等分(这里设定K=20):
K=20
其中,K为分割为具有相等概率的值范围的份数,vi为第i份的起始分割点,vi+1为第i份的终止分割点,同时也是i+1份的起始分割点。结果如表1所示。
表1
表1只是示意性地表示了20个值范围的其中的4个。其中,值范围键13对应的值范围为[1.5,2.34],即该值范围的最大值和最小值分别为2.34和1.5。类似地,值范围键14、15、16对应的值范围键分别为[2.34,3.18]、[3.18,4.08]、[4.08,5.04]。
据此,可以按所划分的20个值范围存储传感器100的时序数据,使得一个数据库记录中包含属于同一个值范围的值对应的时序数据。例如,在图7所示一个数据库记录中,只存储属于值范围[1.5,2.34]的值对应的时序数据,就是说,每个二元组<V,Δt>中的值,都落在范围[1.5,2.34]内,相应地,值范围键702的值为13。
在实际应用中,可以记录值范围键(Range_Key)与其代表的值范围之间的映射关系,以方便对第二数据库的基于值的查询。
图8是一个传感器的时序数据的图示。现在参照附图8,说明线性压缩时序数据,生成压缩数据的例子。所属技术领域的技术人员知道,线性压缩(l inear compression)是一种常用的数据压缩技术,现有技术中已经有各种线性压缩算法和相应的解压算法。
图8示意性地表示了图4中的表412所示的时序数据。其中,横轴表示时间T,单位是秒,纵轴表示值V,图8中的26个点分别表示表412中的26个时序数据,其中,六个点P1、P2、P3、P4、P5和P6,分别表示表412中的第1、6、11、15、21和26行的时序数据,例如点P1的坐标为(0,3),表示第1个时序数据,即<TS,V>=<2012-08-06.10:00:00.000,3>。这六个点的连线P1-P2、P2-P3、P3-P4、P34-P5和P5-P6构成一个连续的多边线。
从图8可见,表412中第2、3、4、5个时序数据对应的点都落在连线P1-P2的附近,这表明,在预定的误差范围(例如0.2)内,可以对第1至6个时序数据进行线性压缩,即用点集{P1,P2}表示的时序数据,来代表第1个至第6个时序数据。
按照这种方式,可以将表412中的26个时序数据压缩成六个点P1、P2、P3、P4、P5和P6所表示的时序数据。具体来说,用点集{P2,P3}表示的时序数据来代表第6个—第11个时序数据;用点集{P3,P4}表示的时序数据来代表第11个—第15个时序数据;用点集{P4,P5}表示的时序数据来代表第15个—第21个时序数据;用点集{P5,P6}表示的时序数据来代表第21个—第26个时序数据。点集{P1,P2,P3,P4,P5,P6}表示的时序数据,就是对表412中所示的时序数据的值进行线性压缩而生成的压缩的时序数据。
例如,可以将该压缩的时序数据,存储在图6A所示的数据库记录中,结果如图6B所示。在图6B中,值数据包604中只存储有对表412中所示的时序数据的值进行线性压缩生成的压缩的时序数据{<3,0>,<4,5>,<3.5,10>,<2,14>,<3,20>,<5,25>}。
类似地,可以在图7所示的时间戳数据包703中存储这样的压缩的时序数据。
类似地,也可以在图5B所示的点数据包504中存储这样的压缩的时序数据。按照本发明一个实施例,可以在执行第一存储步骤230时或者之前,对每个传感器的值进行线性压缩,在第一存储器的第一数据库存储压缩的时序数据。这样,在执行数据重组步骤240时,就可以直接从第一数据库中获取多个传感器的每个传感器的压缩的时序数据,从而可以在第二存储步骤250中,在第二存储器的第二数据库中存储所获取的压缩的时序数据。
所属技术领域的技术人员知道,按照预定的线性压缩方案生成的压缩的时序数据,可以通过线性插值被解压。就上文所述的线性压缩方案来说,例如,通过在连线P1-P2上进行数据插值,就可以得到解压的第2、3、4、5个时序数据,所得到的解压的第2、3、4、5个时序数据与原始的第2、3、4、5个时序数据之间的误差,可以控制在预定的范围内,以至于可以忽略不计。
以上描述的用于处理时序数据的方法的过程,涉及对时序数据的存储,包括在第一存储器中暂存时序数据,将第一存储器中暂存的时序数据,转存到第二存储器;然后,又在第一存储器中临时存储时序数据。采用以上各实施例所示的方法,既能提高用临时存储器暂存来自海量的低频传感器的时序数据的使用效率,也能提高永久性存储时序数据的存储器的使用效率,从而提高整个数据库系统的性能。需要指出的是,图2所示的方法中的步骤的次序,仅仅是示例性的,在实践中可以有很多变化因此,图2所示的各个步骤的顺序,并不构成对本发明的严格限定。此外,除上文举例说明的压缩时序数据的方式外,本发明可以采用各种其它数据压缩算法压缩时序数据,例如采用标量压缩方法压缩时序数据。
在按照上述方法存储了时序数据后,可以响应对时序数据的查询请求,执行查询。按照本发明一个实施例,对时序数据的查询,总体上包含以下步骤。
S1.查询接收步骤,接收对时序数据的查询。
S2.查询步骤,在第二存储器中执行对时序数据的查询。
所属技术领域的技术人员明白,时序数据的查询方式,在很大程度上取决于时序数据的存储方式,包括时序数据的压缩方式和存储压缩的时序数据的数据结构,在具体实现中,可以根据时序数据的存储方式设计相应的检索程序。
就上述的查询步骤而言,在第二存储器中压缩的时序数据的情况下,按照本发明一个实施例,该查询步骤可以进一步包含以下步骤:
S21.查询转换步骤,将所接收的查询转换为对第二存储器中压缩的时序数据的查询;
S22.压缩数据查询步骤,执行对第二存储器中压缩的时序数据的查询,获得查询结果;
S23.解压步骤,将所获得的查询结果中压缩的时序数据进行解压。
可选地,还可以在第一存储器中以与在第二存储器中类似的方式执行对时序数据的查询。这是因为,虽然第一存储器的主要作用是暂存从传感器接收的时序数据,但是第一存储器暂存时序数据的时间周期可能长达数日,因此,取决于查询涉及的传感器的时间范围,有可能需要在第一存储器中执行对时序数据的查询。
以上说明了本发明的用于处理时序数据的方法的各种实施方式。按照同一个发明构思,本发明还提供用于处理时序数据的装置。
参看图3,该图示出按照本发明一个实施例的装置300的示意性框图。装置300用于处理来自多个传感器的时序数据,其中,所述多个传感器被划分成多个传感器组,每个时序数据包含一个时间戳和一个值,该值与该时间戳相关联,如图所示,装置300总体上包含:数据接收模块310、数据分组模块320、第一存储控制模块330、数据重组模块340和第二存储控制模块350。
数据接收模块310被配置得用于接收来自多个传感器的各个传感器的时序数据。
数据分组模块320被配置得用于将接收的各个传感器的时序数据分派到所述多个传感器组中该个传感器所属的传感器组;
第一存储控制模块330被配置得用于在第一存储器的第一数据库存储时序数据,使得被分派到所述多个传感器组中的同一个传感器组的多个时序数据被存储在第一数据库的至少一个数据库记录中。
数据重组模块340被配置得用于从第一数据库中获取多个传感器的各个传感器的时序数据。
第二存储控制模块350被配置得用于在第二存储器的第二数据库存储时序数据,使得同一个传感器的多个时序数据被存储在第二数据库的至少一个数据库记录中。
按照本发明一个实施例,所述第二存储控制模块350被配置得用于进一步按时间戳存储时序数据。
按照本发明一个实施例,所述第二存储控制模块350被配置得用于进一步按值存储时序数据。
按照本发明一个实施例,装置300进一步包含用于计算来自每个传感器的值的概率分布函数PDF的模块(未予示出),并且所述第二存储控制模块350被进一步配置得用于:根据所计算的PDF,为每个传感器的值划分多个值范围;按所划分的值范围存储时序数据,使得一个数据库记录中包含属于同一个值范围的值对应的时序数据。
按照本发明一个实施例,装置300进一步包含:数据压缩模块(未予示出),被配置得用于针对每个传感器,对时序数据进行压缩,产生压缩的时序数据。
按照本发明一个实施例,所述数据压缩模块包含以下的一个或多个:用于对时序数据中的时间戳进行压缩的模块;用于对每个传感器的时序数据中的值进行线性压缩的模块。
按照本发明一个实施例,所述第一存储控制模块330被进一步配置得用于在第一存储器的第一数据库存储压缩的时序数据。
按照本发明一个实施例,所述第二存储控制模块350被进一步配置得用于在第二存储器的第二数据库存储压缩的时序数据。
按照本发明一个实施例,装置300,进一步包含:查询接收模块(未予示出),被配置得用于接收对时序数据的查询;查询模块(未予示出),被配置得用于在第二存储器中执行对时序数据的查询。
按照本发明一个实施例,所述查询模块包含:查询转换模块,被配置得用于将所接收的查询转换为对第二存储器中压缩的时序数据的查询;压缩数据查询模块,被配置得用于执行对第二存储器中压缩的时序数据的查询,获得查询结果;解压模块,被配置得用于将所获得的查询结果中压缩的时序数据进行解压。
以上说明了本发明的用于处理时序数据的装置的各种实施方式。由于上文已经详细说明了本发明的用于处理时序数据的方法的各种实施方式,在对用于处理时序数据的装置的各种实施方式的说明中,省略了与对用于处理时序数据的方法的各种实施方式的说明中重复的、或者可以从中导出的内容。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (16)
1.一种用于处理来自多个传感器的时序数据的方法,其中,所述多个传感器被划分成多个传感器组,每个时序数据包含一个时间戳和一个值,该值与该时间戳相关联,该方法包含:
数据接收步骤,接收来自多个传感器的各个传感器的时序数据;
数据分组步骤,将接收的各个传感器的时序数据分派到所述多个传感器组中该个传感器所属的传感器组;
第一存储步骤,在第一存储器的第一数据库存储时序数据,使得被分派到所述多个传感器组中的同一个传感器组的多个时序数据被存储在第一数据库的至少一个数据库记录中;
数据重组步骤,从第一数据库中获取多个传感器的每个传感器的时序数据;
第二存储步骤,在第二存储器的第二数据库存储时序数据,使得同一个传感器的多个时序数据被存储在第二数据库的至少一个数据库记录中,其中,根据来自每个传感器的值的概率分布函数PDF,为每个传感器的值划分多个值范围;
按所划分的值范围存储时序数据,使得一个数据库记录中包含属于同一个值范围的值对应的时序数据。
2.权利要求1的方法,所述第二存储步骤进一步按时间戳存储时序数据。
3.权利要求1或2的方法,进一步包含:
数据压缩步骤,针对每个传感器,对时序数据进行压缩,产生压缩的时序数据。
4.权利要求3的方法,其中,所述对时序数据进行压缩,包含以下的一个或多个:
对时序数据中的时间戳进行压缩;
对每个传感器的时序数据中的值进行线性压缩。
5.权利要求4的方法,其中,所述在第一存储器的第一数据库存储时序数据,包含在第一存储器的第一数据库存储压缩的时序数据。
6.权利要求4的方法,所述对时序数据进行压缩,包含对每个传感器的时序数据中的值进行线性压缩,所述在第二存储器的第二数据库存储时序数据,包含在第二存储器的第二数据库存储压缩的时序数据。
7.权利要求3的方法,进一步包含:
查询接收步骤,接收对时序数据的查询;
查询步骤,在第二存储器中执行对时序数据的查询。
8.权利要求7的方法,其中,所述查询步骤包含:
查询转换步骤,将所接收的查询转换为对第二存储器中压缩的时序数据的查询;
压缩数据查询步骤,执行对第二存储器中压缩的时序数据的查询,获得查询结果;
解压步骤,将所获得的查询结果中压缩的时序数据进行解压。
9.一种用于处理来自多个传感器的时序数据的装置,其中,所述多个传感器被划分成多个传感器组,每个时序数据包含一个时间戳和一个值,该值与该时间戳相关联,该装置包含:
数据接收模块,被配置得用于接收来自多个传感器的各个传感器的时序数据;
数据分组模块,被配置得用于将接收的各个传感器的时序数据分派到所述多个传感器组中该个传感器所属的传感器组;
第一存储控制模块,被配置得用于在第一存储器的第一数据库存储时序数据,使得被分派到所述多个传感器组中的同一个传感器组的多个时序数据被存储在第一数据库的至少一个数据库记录中;
数据重组模块,被配置得用于从第一数据库中获取多个传感器的每个传感器的时序数据;
第二存储控制模块,被配置得用于在第二存储器的第二数据库存储时序数据,使得同一个传感器的多个时序数据被存储在第二数据库的至少一个数据库记录中,所述第二存储控制模块被进一步配置得用于:
根据所计算的PDF,为每个传感器的值划分多个值范围;
按所划分的值范围存储时序数据,使得一个数据库记录中包含属于同一个值范围的值对应的时序数据。
10.权利要求9的装置,所述第二存储控制模块被配置得用于进一步按时间戳存储时序数据。
11.权利要求9或10的装置,进一步包含:
数据压缩模块,被配置得用于针对每个传感器,对时序数据进行压缩,产生压缩的时序数据。
12.权利要求11的装置,其中,所述数据压缩模块包含以下的一个或多个:
用于对时序数据中的时间戳进行压缩的模块;
用于对每个传感器的时序数据中的值进行线性压缩的模块。
13.权利要求12的装置,其中,所述第一存储控制模块被进一步配置得用于在第一存储器的第一数据库存储压缩的时序数据。
14.权利要求12的装置,其中,所述第二存储控制模块被进一步配置得用于在第二存储器的第二数据库存储压缩的时序数据。
15.权利要求11的装置,进一步包含:
查询接收模块,被配置得用于接收对时序数据的查询;
查询模块,被配置得用于在第二存储器中执行对时序数据的查询。
16.权利要求15的装置,其中,所述查询模块包含:
查询转换模块,被配置得用于将所接收的查询转换为对第二存储器中压缩的时序数据的查询;
压缩数据查询模块,被配置得用于执行对第二存储器中压缩的时序数据的查询,获得查询结果;
解压模块,被配置得用于将所获得的查询结果中压缩的时序数据进行解压。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210429532.8A CN103794006B (zh) | 2012-10-31 | 2012-10-31 | 用于处理多个传感器的时序数据的方法和装置 |
US14/068,559 US9645736B2 (en) | 2012-10-31 | 2013-10-31 | Processing time series data from multiple sensors |
US15/450,606 US10176208B2 (en) | 2012-10-31 | 2017-03-06 | Processing time series data from multiple sensors |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210429532.8A CN103794006B (zh) | 2012-10-31 | 2012-10-31 | 用于处理多个传感器的时序数据的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103794006A CN103794006A (zh) | 2014-05-14 |
CN103794006B true CN103794006B (zh) | 2016-12-21 |
Family
ID=50548122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210429532.8A Active CN103794006B (zh) | 2012-10-31 | 2012-10-31 | 用于处理多个传感器的时序数据的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (2) | US9645736B2 (zh) |
CN (1) | CN103794006B (zh) |
Families Citing this family (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103794006B (zh) * | 2012-10-31 | 2016-12-21 | 国际商业机器公司 | 用于处理多个传感器的时序数据的方法和装置 |
US10324942B2 (en) * | 2013-07-26 | 2019-06-18 | Snap Inc. | Segment data visibility and management in a distributed database of time stamped records |
US10417258B2 (en) | 2013-12-19 | 2019-09-17 | Exposit Labs, Inc. | Interactive multi-dimensional nested table supporting scalable real-time querying of large data volumes |
US9450602B2 (en) | 2014-01-02 | 2016-09-20 | Sap Se | Efficiently query compressed time-series data in a database |
JP6570809B2 (ja) * | 2014-02-28 | 2019-09-04 | 三菱重工サーマルシステムズ株式会社 | 冷凍機制御装置、冷凍機、及び冷凍機の診断方法 |
US11722365B2 (en) | 2014-05-13 | 2023-08-08 | Senseware, Inc. | System, method and apparatus for configuring a node in a sensor network |
US9551594B1 (en) * | 2014-05-13 | 2017-01-24 | Senseware, Inc. | Sensor deployment mechanism at a monitored location |
US10282455B2 (en) | 2015-04-20 | 2019-05-07 | Splunk Inc. | Display of data ingestion information based on counting generated events |
US10817544B2 (en) | 2015-04-20 | 2020-10-27 | Splunk Inc. | Scaling available storage based on counting generated events |
WO2017011322A1 (en) | 2015-07-10 | 2017-01-19 | Whether or Knot LLC | Systems and methods for weather data distribution |
EP3128675B1 (en) * | 2015-08-06 | 2022-03-30 | Sap Se | Wireless sensor data compression |
US10339121B2 (en) * | 2015-08-06 | 2019-07-02 | Sap Se | Data compression |
US10642813B1 (en) * | 2015-12-14 | 2020-05-05 | Amazon Technologies, Inc. | Techniques and systems for storage and processing of operational data |
JP6242930B2 (ja) | 2016-03-17 | 2017-12-06 | 株式会社東芝 | センサデータ管理装置、センサデータ管理方法およびプログラム |
US10235081B2 (en) * | 2016-04-28 | 2019-03-19 | Salesforce.Com, Inc | Provisioning timestamp-based storage units for time series data |
US10282361B2 (en) * | 2016-04-29 | 2019-05-07 | Salesforce.Com, Inc. | Transforming time series data points from concurrent processes |
US10528566B2 (en) | 2016-06-30 | 2020-01-07 | Referentia Systems, Inc. | Time series data query engine |
JP2018036991A (ja) * | 2016-09-02 | 2018-03-08 | 株式会社日立製作所 | センサデータ検索システム、センサデータ検索方法及び管理計算機 |
US11726979B2 (en) | 2016-09-13 | 2023-08-15 | Oracle International Corporation | Determining a chronological order of transactions executed in relation to an object stored in a storage system |
US10733159B2 (en) | 2016-09-14 | 2020-08-04 | Oracle International Corporation | Maintaining immutable data and mutable metadata in a storage system |
WO2018071344A1 (en) | 2016-10-10 | 2018-04-19 | Utilidata, Inc. | Systems and methods for system measurements integrity determination |
US10860534B2 (en) | 2016-10-27 | 2020-12-08 | Oracle International Corporation | Executing a conditional command on an object stored in a storage system |
US10275177B2 (en) | 2016-10-31 | 2019-04-30 | Oracle International Corporation | Data layout schemas for seamless data migration |
US10956051B2 (en) | 2016-10-31 | 2021-03-23 | Oracle International Corporation | Data-packed storage containers for streamlined access and migration |
US10169081B2 (en) | 2016-10-31 | 2019-01-01 | Oracle International Corporation | Use of concurrent time bucket generations for scalable scheduling of operations in a computer system |
US10191936B2 (en) | 2016-10-31 | 2019-01-29 | Oracle International Corporation | Two-tier storage protocol for committing changes in a storage system |
US10180863B2 (en) | 2016-10-31 | 2019-01-15 | Oracle International Corporation | Determining system information based on object mutation events |
CN108153483B (zh) * | 2016-12-06 | 2021-04-20 | 南京南瑞继保电气有限公司 | 一种基于属性分组的时序数据压缩方法 |
US20190079943A1 (en) * | 2017-09-11 | 2019-03-14 | Blackfynn Inc. | Real time and retrospective query integration |
US20190138299A1 (en) * | 2017-11-06 | 2019-05-09 | General Electric Company | Software development lifecycle as a service |
US11182434B2 (en) * | 2017-11-15 | 2021-11-23 | Sumo Logic, Inc. | Cardinality of time series |
US11481383B2 (en) * | 2017-11-15 | 2022-10-25 | Sumo Logic, Inc. | Key name synthesis |
CN108052551B (zh) * | 2017-11-28 | 2021-04-30 | 北京航天云路有限公司 | 一种在redis上实现的存储大量时序数据的方法 |
JP6440810B1 (ja) * | 2017-12-01 | 2018-12-19 | 三菱電機株式会社 | データ収集システム、制御装置、制御プログラム、ゲートウェイ装置およびゲートウェイプログラム |
CN107871022B (zh) * | 2017-12-20 | 2018-12-11 | 清华大学 | 一种时序数据列式存储、查询方法及系统 |
KR102180149B1 (ko) * | 2018-08-26 | 2020-11-17 | (주)아이티공간 | IoT 기반 센서의 데이터 추출 및 전송방법 |
US11226964B1 (en) | 2018-09-28 | 2022-01-18 | Splunk Inc. | Automated generation of metrics from log data |
US11294928B1 (en) * | 2018-10-12 | 2022-04-05 | Palantir Technologies Inc. | System architecture for relating and linking data objects |
US11989186B2 (en) * | 2018-11-23 | 2024-05-21 | Amazon Technologies, Inc. | Scalable architecture for a distributed time-series database |
US11934409B2 (en) | 2018-11-23 | 2024-03-19 | Amazon Technologies, Inc. | Continuous functions in a time-series database |
CN109672992B (zh) * | 2019-01-24 | 2020-07-10 | 国佳云为(常州)信息科技有限公司 | 一种数据收集与更新方法及系统 |
US11409725B1 (en) | 2019-02-04 | 2022-08-09 | Amazon Technologies, Inc. | Multi-tenant partitioning in a time-series database |
US11853317B1 (en) | 2019-03-18 | 2023-12-26 | Amazon Technologies, Inc. | Creating replicas using queries to a time series database |
CN109933294B (zh) * | 2019-03-26 | 2023-10-17 | 努比亚技术有限公司 | 数据处理方法、装置、可穿戴设备及存储介质 |
US10936562B2 (en) | 2019-08-02 | 2021-03-02 | Timescale, Inc. | Type-specific compression in database systems |
US11216487B1 (en) | 2019-09-23 | 2022-01-04 | Amazon Technologies, Inc. | Schema-based spatial partitioning in a time-series database |
CN111125089B (zh) * | 2019-11-05 | 2023-09-26 | 远景智能国际私人投资有限公司 | 时序数据存储方法、装置、服务器及存储介质 |
CN111078755B (zh) * | 2019-12-19 | 2023-07-28 | 远景智能国际私人投资有限公司 | 时序数据的存储查询方法、装置、服务器及存储介质 |
CN114090577A (zh) * | 2021-11-04 | 2022-02-25 | 支付宝(杭州)信息技术有限公司 | 时序数据的存储、读取方法及装置 |
US20230334022A1 (en) * | 2022-04-14 | 2023-10-19 | The Hospital For Sick Children | System and method for processing and storage of a time-series data stream |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101621368A (zh) * | 2009-08-13 | 2010-01-06 | 北京必创科技有限公司 | 一种重传数据包的方法、装置及系统 |
CN101984421A (zh) * | 2010-09-03 | 2011-03-09 | 中国科学院软件研究所 | 基于实时数据库的气象要素数据组织录入与查询方法 |
CN102006081A (zh) * | 2010-12-01 | 2011-04-06 | 南京工业大学 | 智能楼宇中海量能耗信息的压缩方法 |
Family Cites Families (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5301122A (en) * | 1992-02-12 | 1994-04-05 | Measuring And Monitoring, Inc. | Measuring and monitoring system |
JP3400821B2 (ja) * | 1993-06-08 | 2003-04-28 | 松下電器産業株式会社 | データ自動監視システム |
US5600576A (en) * | 1994-03-11 | 1997-02-04 | Northrop Grumman Corporation | Time stress measurement device |
US5528516A (en) * | 1994-05-25 | 1996-06-18 | System Management Arts, Inc. | Apparatus and method for event correlation and problem reporting |
US6278961B1 (en) * | 1997-07-02 | 2001-08-21 | Nonlinear Solutions, Inc. | Signal and pattern detection or classification by estimation of continuous dynamical models |
JPH11317748A (ja) * | 1998-05-07 | 1999-11-16 | Pioneer Electron Corp | 伝送システムにおける送信インターフェース装置 |
US6351713B1 (en) * | 1999-12-15 | 2002-02-26 | Swantech, L.L.C. | Distributed stress wave analysis system |
US7034701B1 (en) * | 2000-06-16 | 2006-04-25 | The United States Of America As Represented By The Secretary Of The Navy | Identification of fire signatures for shipboard multi-criteria fire detection systems |
US6477485B1 (en) * | 2000-10-27 | 2002-11-05 | Otis Elevator Company | Monitoring system behavior using empirical distributions and cumulative distribution norms |
US6594524B2 (en) * | 2000-12-12 | 2003-07-15 | The Trustees Of The University Of Pennsylvania | Adaptive method and apparatus for forecasting and controlling neurological disturbances under a multi-level control |
WO2002103580A2 (en) * | 2001-06-15 | 2002-12-27 | Massachusetts Institute Of Technology | Adaptive mean estimation and normalization of data |
US6892163B1 (en) * | 2002-03-08 | 2005-05-10 | Intellectual Assets Llc | Surveillance system and method having an adaptive sequential probability fault detection test |
US8612193B2 (en) * | 2002-05-21 | 2013-12-17 | Schlumberger Technology Center | Processing and interpretation of real-time data from downhole and surface sensors |
US20050107723A1 (en) * | 2003-02-15 | 2005-05-19 | Wehman Thomas C. | Methods and apparatus for determining work performed by an individual from measured physiological parameters |
US6912482B2 (en) * | 2003-09-11 | 2005-06-28 | Veritas Operating Corporation | Data storage analysis mechanism |
CA2548461C (en) | 2004-02-26 | 2009-08-11 | Mitsubishi Denki Kabushiki Kaisha | Time series data dimensional compression apparatus |
JP2006308345A (ja) * | 2005-04-27 | 2006-11-09 | Nf Corp | 時系列データの記憶方法、検索方法、表示方法及び記録装置 |
JP2006338373A (ja) * | 2005-06-02 | 2006-12-14 | Toshiba Corp | 多変数時系列データ分析装置、方法およびプログラム |
US8051045B2 (en) | 2005-08-31 | 2011-11-01 | Sap Ag | Archive indexing engine |
FR2890774B1 (fr) * | 2005-09-09 | 2007-11-16 | Inst Nat Rech Inf Automat | Procede d'assitance a la conduite d'un vehicule et dispositif associe ameliore |
US7676288B2 (en) | 2006-06-23 | 2010-03-09 | Invensys Systems, Inc. | Presenting continuous timestamped time-series data values for observed supervisory control and manufacturing/production parameters |
EP3493074A1 (en) | 2006-10-05 | 2019-06-05 | Splunk Inc. | Time series search engine |
US8260783B2 (en) | 2007-02-27 | 2012-09-04 | Siemens Aktiengesellschaft | Storage of multiple, related time-series data streams |
FR2928765B1 (fr) * | 2008-03-13 | 2011-12-30 | Suez Environnement | Systeme de transmission de donnees a partir d'un capteur de mesure pour telereleve avec horodatage. |
US7756678B2 (en) * | 2008-05-29 | 2010-07-13 | General Electric Company | System and method for advanced condition monitoring of an asset system |
CA2750200C (en) | 2009-01-05 | 2015-12-15 | Schlumberger Canada Limited | Processing time series data embedded in high noise |
US8886689B2 (en) | 2009-02-17 | 2014-11-11 | Trane U.S. Inc. | Efficient storage of data allowing for multiple level granularity retrieval |
US8219574B2 (en) * | 2009-06-22 | 2012-07-10 | Microsoft Corporation | Querying compressed time-series signals |
CN102033892A (zh) * | 2009-09-30 | 2011-04-27 | 北京四通智能交通系统集成有限公司 | 交通流历史标准数据的生成方法及系统 |
US8358561B2 (en) * | 2010-04-13 | 2013-01-22 | Spectraseis Ag | Bayesian DHI for seismic data |
WO2011129818A1 (en) * | 2010-04-13 | 2011-10-20 | Empire Technology Development Llc | Adaptive compression |
US9298854B2 (en) * | 2010-05-14 | 2016-03-29 | Hitachi, Ltd. | Time-series data management device, system, method, and program |
US8676756B2 (en) | 2010-05-17 | 2014-03-18 | Invensys Systems, Inc. | Replicating time-series data values for retrieved supervisory control and manufacturing parameter values in a multi-tiered historian server environment |
CN101923569B (zh) * | 2010-07-09 | 2012-07-25 | 江苏瑞中数据股份有限公司 | 一种实时数据库的结构类型数据的存储方法 |
US9405283B1 (en) | 2011-09-22 | 2016-08-02 | Joseph P. Damico | Sensor sentinel computing device |
JP2013205171A (ja) * | 2012-03-28 | 2013-10-07 | Sony Corp | 情報処理装置、情報処理方法、およびプログラム |
US20130289927A1 (en) * | 2012-04-27 | 2013-10-31 | Magpie Sensing Llc | Environmental monitoring |
CN103794006B (zh) * | 2012-10-31 | 2016-12-21 | 国际商业机器公司 | 用于处理多个传感器的时序数据的方法和装置 |
US9664539B2 (en) * | 2012-11-30 | 2017-05-30 | Blackberry Limited | Time stamping a sensor sample |
US9355112B1 (en) * | 2012-12-31 | 2016-05-31 | Emc Corporation | Optimizing compression based on data activity |
-
2012
- 2012-10-31 CN CN201210429532.8A patent/CN103794006B/zh active Active
-
2013
- 2013-10-31 US US14/068,559 patent/US9645736B2/en not_active Expired - Fee Related
-
2017
- 2017-03-06 US US15/450,606 patent/US10176208B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101621368A (zh) * | 2009-08-13 | 2010-01-06 | 北京必创科技有限公司 | 一种重传数据包的方法、装置及系统 |
CN101984421A (zh) * | 2010-09-03 | 2011-03-09 | 中国科学院软件研究所 | 基于实时数据库的气象要素数据组织录入与查询方法 |
CN102006081A (zh) * | 2010-12-01 | 2011-04-06 | 南京工业大学 | 智能楼宇中海量能耗信息的压缩方法 |
Also Published As
Publication number | Publication date |
---|---|
US9645736B2 (en) | 2017-05-09 |
US20170177646A1 (en) | 2017-06-22 |
CN103794006A (zh) | 2014-05-14 |
US20140122022A1 (en) | 2014-05-01 |
US10176208B2 (en) | 2019-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103794006B (zh) | 用于处理多个传感器的时序数据的方法和装置 | |
CN107038162B (zh) | 基于数据库日志的实时数据查询方法和系统 | |
CN102436465B (zh) | 一种在轨航天器遥测数据存储与快速查询方法 | |
CN102254024A (zh) | 海量数据处理系统及方法 | |
CN105005683A (zh) | 一种解决区域医疗系统数据规范化问题的缓存系统及方法 | |
CN104090889A (zh) | 数据处理方法及系统 | |
CN106294462B (zh) | 一种获取推荐视频的方法和系统 | |
CN105488231A (zh) | 一种基于自适应表维度划分的大数据处理方法 | |
CN104462222A (zh) | 一种卡口车辆通行数据的分布式存储方法及系统 | |
CN104216884A (zh) | 一种基于时间衰减的协同过滤系统及方法 | |
CN107729399A (zh) | 数据处理的方法和装置 | |
CN110147367A (zh) | 一种温度缺失数据填补方法、系统及电子设备 | |
CN107402926A (zh) | 一种查询方法以及查询设备 | |
CN109325089A (zh) | 一种非定点对象查询方法、装置、终端设备及存储介质 | |
CN103778251A (zh) | 面向大规模rdf图数据的sparql并行查询方法 | |
CN104598299A (zh) | 用于对每条接收数据执行聚合处理的系统和方法 | |
CN103002061A (zh) | 一种长域名与短域名互相转化的方法及装置 | |
CN102375827A (zh) | 一种对版本化的电网模型数据库进行快速加载的方法 | |
CN103678682B (zh) | 基于抽象模板的海量栅格数据处理及管理方法 | |
CN105095515A (zh) | 支持快速查询Map-Reduce输出结果的分桶方法、装置及设备 | |
CN103793401B (zh) | 建立多个数据库表的共享索引的方法及装置 | |
CN103425694A (zh) | 关系型数据的搜索方法和装置 | |
CN112486985A (zh) | 一种锅炉数据的查询方法、装置、设备及存储介质 | |
CN104077395A (zh) | 一种电力系统等效化简重新生成内存库索引的方法 | |
CN116028446A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |