CN112732714B - 一种基于Hbase的时序数据存储方法、装置及设备 - Google Patents
一种基于Hbase的时序数据存储方法、装置及设备 Download PDFInfo
- Publication number
- CN112732714B CN112732714B CN202011619878.5A CN202011619878A CN112732714B CN 112732714 B CN112732714 B CN 112732714B CN 202011619878 A CN202011619878 A CN 202011619878A CN 112732714 B CN112732714 B CN 112732714B
- Authority
- CN
- China
- Prior art keywords
- data
- time
- index
- sorting
- tag
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing 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
- G06F16/2455—Query execution
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Testing And Monitoring For Control Systems (AREA)
Abstract
本发明公开了一种基于Hbase的时序数据存储方法、装置及设备,该方法包括:获取数据源所产生的一条时序数据;对多个数据标签、至少一个监控指标分别进行排序得到标签排序结果、指标排序结果,并与数据名称相关联得到排序关系;按照预设时间间隔划分时间戳,并记录数据产生时间所对应的时间戳;将数据名称、识别标签和所述数据产生时间所对应的时间戳组成行键,将所述多个数据标签中除识别标签以外的数据标签按照标签排序结果组成标签列簇的列,将所述至少一个监控指标按照指标排序结果组成属性列簇的列,得到多值模型存储结构;将多值模型存储结构、排序关系存储至HBase数据库中。应用本发明能够让数据标签与行键解耦,避免冗余存储。
Description
技术领域
本发明涉及数据存储技术领域,特别是涉及一种基于Hbase的时序数据存储方法、装置及设备。
背景技术
随着物联网以及工业4.0的到来,不同行业的所有数据都可联网,并且每时每刻产生大量的按照时间组织的数据,这些数据称为时序数据。时序数据需要存储以供后期的查询、统计和分析。常见的时序数据模型分为单值和多值两种,单值模型中一行数据只对应时序数据的一个监控指标,以风力发电源产生的数据为例,单值模型存储结构如表1所示。
表1单值模型存储结构
metric | timestamp | 生产厂商 | 风场 | 型号 | value |
功率 | 2019-01-01T00:00:10Z | Vestas | 托里 | 7AD45EC | 1800 |
风速 | 2019-01-01T00:00:10Z | Vestas | 托里 | 7AD45EC | 11.24 |
其中,metric表示监控指标,timestamp表示数据产生时间,生产厂商、风场和型号均为数据标签,value为监控指标的值。由表1可知,采用单值模型存储数据,功率和风速各有一行数据记录。
多值模型中一行数据对应时序数据的多个监控指标,同样以风力发电源产生的数据为例,多值模型存储结构如表2所示。
表2多值模型存储结构
timestamp | 生产厂商 | 风场 | 型号 | 功率 | 风速 |
2019-01-01T00:00:10Z | Vestas | 托里 | 7AD45EC | 1800 | 11.24 |
由表2可以看出,采用多值模型存储数据,功率和风速可以存储在一行数据记录中。
目前常见的开源时序数据库都支持单值模型,比如OpenTSDB,OpenTSDB支持的单值模型存储结构如表3所示。
表3OpenTSDB支持的单值模型存储结构
其中,rowkey表示行键,tags表示数据标签集,它由多个表示数据标签的tag组成,info表示列簇名,Δt1…Δtn表示列名,v1…vn表示监控指标的值。此单值模型存储结构中,tags包含tag的个数受到限制,如果tag数量过多,会导致rowkey很长,进而影响检索性能。并且,此单值模型存储结构应用于Hbase数据库时,列簇包含多少个列,rowkey就要存入多少次,意味着tags就要重复存储多少次,存在tags冗余存储问题,面对海量的时序数据时,这种冗余的影响就会非常大。
目前,支持多值模型存储结构的数据库很少,鲜有基于Hbase数据库的多值模型存储结构,比如InfluxDB数据库支持多值模型存储结构,但是InfluxDB数据库的底层是TSM存储引擎。
发明内容
本发明主要解决的技术问题是提供一种基于Hbase的时序数据存储方法、装置及设备,能够让数据标签与行键解耦,避免冗余存储。
为解决上述技术问题,本发明实施例第一方面提供一种基于Hbase的时序数据存储方法,包括:
获取数据源所产生的一条时序数据,所述时序数据包括数据产生时间、数据名称、多个数据标签和至少一个监控指标,所述多个数据标签中包含至少一个唯一标识所述数据源的识别标签;
按照预设排序方式对多个数据标签进行排序得到标签排序结果以及对至少一个监控指标进行排序得到指标排序结果,并将所述标签排序结果、指标排序结果与数据名称相关联得到排序关系;
每隔预设时间间隔生成时间戳,并记录所述数据产生时间所对应的时间戳;
将数据名称、识别标签和所述数据产生时间所对应的时间戳组成行键,将所述多个数据标签中除识别标签以外的数据标签按照标签排序结果组成标签列簇的列,将所述至少一个监控指标按照指标排序结果组成属性列簇的列,得到多值模型存储结构;
将所述多值模型存储结构、排序关系存储至HBase数据库中。
作为本发明的一个优选实施例,在所述将所述多值模型存储结构、排序关系存储至HBase数据库中的步骤之后,所述时序数据存储方法还包括:
继续获取相同数据源所产生的下一条时序数据,如果下一条时序数据的数据产生时间所对应的时间戳与当前条时序数据的数据产生时间所对应的时间戳相同,则将下一条时序数据的至少一个监控指标按照指标排序结果组成属性列簇的新的列。
作为本发明的一个优选实施例,所述在将数据名称、识别标签和所述数据产生时间所对应的时间戳组成行键的步骤之前,还包括:
将所述数据名称和多个数据标签转换为预定字节长度的映射值,并记录映射关系;
所述将所述多值模型存储结构、排序关系存储至HBase数据库中的步骤还包括:
将所述映射关系存储至HBase数据库中。
作为本发明的一个优选实施例,在所述将所述多值模型存储结构、排序关系存储至HBase数据库中的步骤之前,还包括:
记录每一个数据标签所对应的行键,得到标签索引关系;
所述将所述多值模型存储结构、排序关系存储至HBase数据库中的步骤还包括:
将所述标签索引关系存储至HBase数据库中。
作为本发明的一个优选实施例,在所述记录每一个数据标签所对应的行键,得到标签索引关系的步骤之后,还包括:
在所述标签索引关系中增加记录每一个监控指标所对应的行键。
为解决上述技术问题,本发明实施例第二方面提供一种基于Hbase的时序数据存储装置,包括获取模块、排序模块、记时模块、构建模块和存储模块;
所述获取模块用于获取数据源所产生的一条时序数据,所述时序数据包括数据产生时间、数据名称、多个数据标签和至少一个监控指标,所述多个数据标签中包含至少一个唯一标识所述数据源的识别标签;
所述排序模块用于按照预设排序方式对多个数据标签进行排序得到标签排序结果以及对至少一个监控指标进行排序得到指标排序结果,并将所述标签排序结果、指标排序结果与数据名称相关联得到排序关系;
所述记时模块用于每隔预设时间间隔生成时间戳,并记录所述数据产生时间所对应的时间戳;
所述构建模块用于将数据名称、识别标签和所述数据产生时间所对应的时间戳组成行键,将所述多个数据标签中除识别标签以外的数据标签按照标签排序结果组成标签列簇的列,将所述至少一个监控指标按照指标排序结果组成属性列簇的列,得到多值模型存储结构;
所述存储模块用于将所述多值模型存储结构、排序关系存储至HBase数据库中。
作为本发明的一个优选实施例,所述获取模块还用于继续获取相同数据源所产生的下一条时序数据;
所述构建模块还用于下一条时序数据的数据产生时间所对应的时间戳与当前条时序数据的数据产生时间所对应的时间戳相同,则将下一条时序数据的至少一个监控指标按照指标排序结果组成属性列簇的新的列。
作为本发明的一个优选实施例,所述属性列簇的每列的列名为对应的时序数据的数据产生时间除以所述预设时间间隔所得的余数。
作为本发明的一个优选实施例,所述构建模块在将数据名称、识别标签和所述数据产生时间所对应的时间戳组成行键之前,还用于将所述数据名称和多个数据标签转换为预定字节长度的映射值,并记录映射关系;
所述存储模块还用于将所述映射关系存储至HBase数据库中。
作为本发明的一个优选实施例,所述构建模块在将数据名称、识别标签和所述数据产生时间所对应的时间戳组成行键之后,还用于记录每一个数据标签所对应的行键,得到标签索引关系;
所述存储模块还用于将所述标签索引关系存储至HBase数据库中。
作为本发明的一个优选实施例,所述构建模块还用于在所述标签索引关系中增加记录每一个监控指标所对应的行键。
为解决上述技术问题,本发明实施例第三方面提供一种时序数据存储设备,所述时序数据存储设备包括存储器、处理器及存储在所述存储器中的计算机程序,所述处理器用于执行所述计算机程序,以实现前述任一种所述的时序数据存储方法。
区别于现有技术的情况,本发明实施例的基于Hbase的时序数据存储方法、装置及设备通过引入数据名称来区分不同业务类型的数据,并将唯一标识数据源的识别标签从多个数据标签中抽离出来,再将数据名称、识别标签和时间戳组成行键,从而能够让数据标签与行键解耦,避免冗余存储,可以加速索引,减少无用数据的遍历,提高检索效率和检索性能,可支持根据任意组合的多个数据标签进行条件查询、指定某个数据标签进行精确查询以及对某个或某些监控指标进行频繁过滤查询。
附图说明
图1是本发明实施例的基于Hbase的时序数据存储方法的流程示意图。
图2是本发明实施例的基于Hbase的时序数据存储装置的原理框图。
图3是本发明实施例的时序数据存储设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,本发明实施例的基于Hbase的时序数据存储方法包括如下步骤:
S11:获取数据源所产生的一条时序数据,时序数据包括数据产生时间、数据名称、多个数据标签和至少一个监控指标,多个数据标签中包含至少一个唯一标识数据源的识别标签。
其中,数据源是指产生时序数据的装置,例如为风力发电源,风力发电源产生的时序数据的格式举例如下:
measurement表示数据名称;数据值为wind,tags表示多个数据标签的集合,包括三个数据标签:生产厂商、风场、型号,数据值分别为Vestas、托里、V110_20;identifier为识别标签,其原始的数据标签为ID,数据值为7AD45EC;timestamp表示数据产生时间,数据值为2019-01-01T00:00:10Z;fields表示至少一个监控指标的集合,包括两个监控指标:功率、风速,数据值分别为1800、11.24。
S12:按照预设排序方式对多个数据标签进行排序得到标签排序结果以及对至少一个监控指标进行排序得到指标排序结果,并将标签排序结果、指标排序结果与数据名称相关联得到排序关系。
其中,预设排序方式可以是时序数据中的排序方式,也可以为其它排序方式,例如预先设置的固定排序方式。排序关系可以以数据表的形式表示,排序关系如表4所示。
表4schema
表4中,schema表示排序关系,生产厂商、风场和型号依次排序,排序顺序为1、2、3,即为多个数据标签的标签排序结果,功率、风速依次排序,排序顺序为1、2,即为至少一个监控指标的指标排序结果。
S13:每隔预设时间间隔生成时间戳,并记录数据产生时间所对应的时间戳。
其中,时间戳可以为Uinx时间戳,Uinx时间戳为从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。时间戳的划分按照实际需要设置,例如预设时间间隔为1小时,即3600秒,每小时的时间范围可以按左开右闭的原则划分,比如[00:00:00~01:00:00),[22:00:00~23:00:00)。那么数据产生时间所在1小时的时间范围的起始时间整点对应的时间戳即为数据产生时间所对应的时间戳,例如数据产生时间为2019-01-01T00:00:10Z,其所在1小时的时间范围为[00:00:00~01:00:00),起始时间整点对应的时间戳则为2019-01-01T00:00:00Z。
S14:将数据名称、识别标签和数据产生时间所对应的时间戳组成行键,将多个数据标签中除识别标签以外的数据标签按照标签排序结果组成标签列簇的列,将至少一个监控指标按照指标排序结果组成属性列簇的列,得到多值模型存储结构。
其中,以风力发电源产生的数据为例,时间戳可以为Uinx时间戳,预设时间间隔为1小时,包含一条时序数据的多值模型存储结构如表5所示。
表5包含一条时序数据的多值模型存储结构
表中,rowkey表示行键,其由wind、7AD45EC和2019-01-01T00:00:00Z组成,tags中的各个数据标签按照排序关系schema中的标签排序结果组成标签列簇的列,即Vestas;托里;V110_20,fields中的各个监控指标按照排序关系schema中的指标排序结果组成属性列簇的列,即1800;11.24。v表示列簇tags的列名,Δt表示列簇fields的列名。1546272000是2019-01-01T00:00:00Z按照Uinx时间戳进行换算后的秒数。
需要说明的是,数据名称、识别标签和数据产生时间所对应的时间戳可以以任意顺序组成行键,本发明的优选顺序为数据名称、识别标签、数据产生时间所对应的时间戳。
S15:将多值模型存储结构、排序关系存储至HBase数据库中。
其中,将数据记录、排序结果存储至HBase数据库中后,由于多值模型存储结构中的measurement对数据源做了区分,在检索时序数据时,通过指定measurement,就可以大大缩小检索范围,提升检索效率。而且rowkey只由<measurement><identifier><timstampHour>组成,timstampHour表示预设时间间隔为1小时的时间戳,与传统的时序数据库需要把所有数据标签都放到rowkey中相比,本发明实施例大大缩短了rowkey的长度,并且对于多值模型存储结构中的每一行数据,tags只需要存储一次,无需像传统的时序数据库那样需要存储多次,从而既能够让数据标签与行键解耦,又能够避免冗余存储。
由于数据源每时每刻都在产生时序数据,这些时序数据的数据产生时间如果都在预设时间间隔内,可以对应同一个行键进行存储。在本实施例中,在将所述多值模型存储结构、排序关系存储至HBase数据库中的步骤之后,时序数据存储方法还包括:
继续获取相同数据源所产生的下一条时序数据,如果下一条时序数据的数据产生时间所对应的时间戳与当前条时序数据的数据产生时间所对应的时间戳相同,则将下一条时序数据的至少一个监控指标按照指标排序结果组成属性列簇的新的列。
其中,下一条时序数据除至少一个监控指标以外的数据产生时间、数据名称、多个数据标签都无需再次存储,只需要在前一条时序数据所在行的属性列簇中增加新的列来存储下一条时序数据的至少一个监控指标。这样,将相同数据源一段时间内的时序数据聚在同一行存储,便于压缩、节约存储空间。仍以风力发电源产生的数据为例,时间戳可以为Uinx时间戳,预设时间间隔为1小时,包含多条时序数据的多值模型存储结构如表6所示。
表6包含多条时序数据的多值模型存储结构
表中,Δt1…Δtn表示属性列簇的列名,每个列名下的value1;value2表示每条时序数据的功率和风速,如第一个列名下的value1;value2为1800;11.24。
为了方便为属性列簇的每列的列名命名,在本实施例中,属性列簇的每列的列名命名为对应的时序数据的数据产生时间除以预设时间间隔所得的余数。举例而言,假设某条时序数据的数据产生时间为2019-01-01 00:00:10Z,换算为秒数为1546272010,那么1546272010除以3600所得的余数为10,那么该条时序数据的监控指标在存储时对应的列名为10,即Δt1=10。通过对属性列簇的列进行扩展存储,可以充分利用Hbase的列动态扩充的特点。
在上述表6中,rowkey包含了wind、7AD45EC和1546272000,导致rowkey比较长,在其他一些应用中,rowkey可能会更长,对存储空间会带来一些影响,为了节省存储空间,在本实施例中,在将数据名称、识别标签和数据产生时间所对应的时间戳组成行键的步骤之前,还包括:
将数据名称和多个数据标签转换为预定字节长度的映射值,并记录映射关系;
将多值模型存储结构、排序关系存储至HBase数据库中的步骤还包括:
将映射关系存储至HBase数据库中。
其中,数据名称和多个数据标签转换为映射值后,行键的组成和标签列簇的列的组成由映射值代替,预定字节长度例如为3字节,那么映射关系可用表7表示。
表7映射关系
映射值 | 原始值 |
001 | wind |
002 | 7AD45EC |
003 | Vestas |
004 | 托里 |
005 | V110_20 |
对应的,数据名称和多个数据标签转换为映射值后,表6可转换为表8所示。
表8包含多条时序数据的多值模型存储结构
映射关系可以实时进行更新,每当接收到一条时序数据时,可以先在映射关系中查找每个数据标签是否存在对应的映射值,如果存在,则采用该映射值,如果不存在,则在映射关系中新增加一个映射值。
经过本发明实施例的时序数据存储方法存储时序数据后,在检索时,可以直接指定measurement、identifier和时间范围,则根据measurement、identifier和时间范围可得出rowkey的范围,然后直接根据rowkey从Hbase数据库中检索满足条件的rowkey列表,进而得到检索结果,可以大大缩小检索范围,提升检索效率。
但是,结合measurement和identifier进行检索只能实现单维度检索,不能实现多维度检索,为了实现多维度检索,本实施例中,在将多值模型存储结构、排序关系存储至HBase数据库中的步骤之前,还包括:
记录每一个数据标签所对应的行键,得到标签索引关系;
将多值模型存储结构、排序关系存储至HBase数据库中的步骤还包括:
将标签索引关系存储至HBase数据库中。
其中,在进行多维度检索时,可以指定任意组合的多个数据标签,各个数据标签所对应的rowkey作为值,这样根据任意组合的多个数据标签进行条件查询时,可精确定位到具体rowkey,大大提升了检索效率。沿用上述举例,标签索引关系如表9所示。
表9标签索引关系
tags | rowkey |
Vestas | 0010021546272000 |
托里 | 0010021546272000,0010021546304400,0010021546329600 |
假设查询风场为托里、型号为Vestas的一天内的功率,可根据Vestas从标签索引关系中查找到对应的rowkey,即0010021546272000,再根据托里从标签索引关系中查找到对应的rowkey,即0010021546272000,0010021546304400,0010021546329600,两者取交集,获取满足条件的rowkey,即0010021546272000,然后直接根据0010021546272000从Hbase数据库中检索满足条件的rowkey列表,进而得到风场为托里、型号为Vestas的一天内的功率。
此外,还可指定某个数据标签进行精确查询,假设查询风场为托里的一天的平均功率,就可根据托里从标签索引关系中查找到对应的rowkey,即0010021546272000,0010021546304400,0010021546329600,根据rowkey检索到相应的fields中的功率值,再求取平均值得到平均功率。相比传统的时序关系数据库将数据标签全部放到rowkey中,根据rowkey进行检索的效率有显著提升。
为了进一步丰富检索功能,在本实施例中,在记录每一个数据标签所对应的行键,得到标签索引关系的步骤之后,还包括:
在标签索引关系中增加记录每一个监控指标所对应的行键。
通过在标签索引关系中增加记录每一个监控指标所对应的行键,在进行检索时,如果需要对某个或某些监控指标进行频繁过滤查询,则可直接将该监控指标对应的rowkey作为值,这样可精确定位到具体的rowkey,大大提升了检索效率。仍然沿用上述举例,标签索引关系转换为表10所示。
表10标签索引关系
tags | rowkey |
Vestas | 0010021546272000 |
托里 | 0010021546272000,0010021546304400,0010021546329600 |
1800 | 0010021546272000 |
请参阅图2,本发明实施例的基于Hbase的时序数据存储装置包括获取模块11、排序模块12、记时模块13、构建模块14和存储模块15。
获取模块11用于获取数据源所产生的一条时序数据,时序数据包括数据产生时间、数据名称、多个数据标签和至少一个监控指标,多个数据标签中包含至少一个唯一标识数据源的识别标签。其中,数据源是指产生时序数据的装置,获取模块11所获取的时序数据可以直接从数据源获取,也可以从其他来源间接获取。
排序模块12用于按照预设排序方式对多个数据标签进行排序得到标签排序结果以及对至少一个监控指标进行排序得到指标排序结果,并将标签排序结果、指标排序结果与数据名称相关联得到排序关系。其中,预设排序方式可以是时序数据中的排序方式,也可以为其它排序方式,例如预先设置的固定排序方式,排序关系可以以数据表的形式表示。
记时模块13用于每隔预设时间间隔生成时间戳,并记录数据产生时间所对应的时间戳。其中,时间戳可以为Uinx时间戳,Uinx时间戳为从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。时间戳的划分按照实际需要设置,例如预设时间间隔为1小时,即3600秒,那么数据产生时间所在1小时的时间范围的起始时间整点对应的时间戳即为数据产生时间所对应的时间戳。
构建模块14用于将数据名称、识别标签和数据产生时间所对应的时间戳组成行键,将多个数据标签中除识别标签以外的数据标签按照标签排序结果组成标签列簇的列,将至少一个监控指标按照指标排序结果组成属性列簇的列,得到多值模型存储结构。其中,数据名称、识别标签和数据产生时间所对应的时间戳可以以任意顺序组成行键,本发明的优选顺序为数据名称、识别标签、数据产生时间所对应的时间戳。
存储模块15用于将多值模型存储结构、排序关系存储至HBase数据库中。其中,将数据记录、排序结果存储至HBase数据库中后,由于多值模型存储结构中的数据名称对数据源做了区分,在检索时序数据时,通过指定数据名称,就可以大大缩小检索范围,提升检索效率。而且行键只由数据名称、识别标签、数生时间所对应的时间戳组成,与传统的时序数据库需要把所有数据标签都放到行键中相比,本发明实施例大大缩短了行键的长度,并且对于多值模型存储结构中的每一行数据,多个数据标签只需要存储一次,无需像传统的时序数据库那样需要存储多次,从而既能够让数据标签与行键解耦,又能够避免冗余存储。
由于数据源每时每刻都在产生时序数据,这些时序数据的数据产生时间如果都在预设时间间隔内,可以对应同一个行键进行存储。在本实施例中,获取模块11还用于继续获取相同数据源所产生的下一条时序数据;
构建模块14还用于下一条时序数据的数据产生时间所对应的时间戳与当前条时序数据的数据产生时间所对应的时间戳相同,则将下一条时序数据的至少一个监控指标按照指标排序结果组成属性列簇的新的列。
其中,下一条时序数据除至少一个监控指标以外的数据产生时间、数据名称、多个数据标签都无需再次存储,只需要在前一条时序数据所在行的属性列簇中增加新的列来存储下一条时序数据的至少一个监控指标。这样,将相同数据源一段时间内的时序数据聚在同一行存储,便于压缩、节约存储空间。
为了方便为属性列簇的每列的列名命名,在本实施例中,属性列簇的每列的列名为对应的时序数据的数据产生时间除以所述预设时间间隔所得的余数。举例而言,假设某条时序数据的数据产生时间为2019-01-01 00:00:10Z,换算为秒数为1546272010,那么1546272010除以3600所得的余数为10,那么该条时序数据的监控指标在存储时对应的列名为10。通过对属性列簇的列进行扩展存储,可以充分利用Hbase的列动态扩充的特点。
如果数据名称、识别标签的字符比较长,导致rowkey比较长,对存储空间会带来一些影响,为了节省存储空间,在本实施例中,构建模块14在将数据名称、识别标签和数据产生时间所对应的时间戳组成行键之前,还用于将数据名称和多个数据标签转换为预定字节长度的映射值,并记录映射关系;
存储模块15还用于将映射关系存储至HBase数据库中。
其中,数据名称和多个数据标签转换为映射值后,行键的组成和标签列簇的列的组成由映射值代替,预定字节长度例如为3字节。映射关系可以实时进行更新,每当接收到一条时序数据时,可以先在映射关系中查找每个数据标签是否存在对应的映射值,如果存在,则采用该映射值,如果不存在,则在映射关系中新增加一个映射值。
经过本发明实施例的时序数据存储装置存储时序数据后,在检索时,可以直接指定数据名称、识别标签和时间范围,根据数据名称、识别标签和时间范围可得出行键的范围,然后直接根据行键从Hbase数据库中检索满足条件的行键列表,进而得到检索结果,可以大大缩小检索范围,提升检索效率。
但是,结合数据名称和识别标签进行检索只能实现单维度检索,不能实现多维度检索,为了实现多维度检索,本实施例中,构建模块14在将数据名称、识别标签和数据产生时间所对应的时间戳组成行键之后,还用于记录每一个数据标签所对应的行键,得到标签索引关系;
存储模块15还用于将标签索引关系存储至HBase数据库中。
其中,在进行多维度检索时,可以指定任意组合的多个数据标签,各个数据标签所对应的rowkey作为值,这样根据任意组合的多个数据标签进行条件查询时,可精确定位到具体rowkey,大大提升了检索效率。
为了进一步丰富检索功能,在本实施例中,构建模块14还用于在标签索引关系中增加记录每一个监控指标所对应的行键。通过在标签索引关系中增加记录每一个监控指标所对应的行键,在进行检索时,如果需要对某个或某些监控指标进行频繁过滤查询,则可直接将该监控指标对应的行键作为值,这样可精确定位到具体的行键,大大提升了检索效率。
本发明实施例还保护一种时序数据存储设备,如图3所示,时序数据存储设备包括存储器21、处理器22及存储在存储器21中的计算机程序,处理器22用于执行计算机程序,以实现根据前述实施例的时序数据存储方法。存储器21和处理器22之间可以通过通信总线23进行通信。
处理器22可以是CPU(Central Processing Unit,中央处理单元)。也可以是一种集成电路芯片,具有计算(包括判断)和控制能力,处理器22还可以是通用处理器、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或其他可编程逻辑器件、分立门或晶体管逻辑器件,或者分立硬件组件等,在此不作具体限定。通用处理器可以是微处理器或者任何常规的处理器等。
存储器21可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如存储器21可以包括RAM(Random Access Memory,随机存取存储器),易失存储器、NVM(Non-Volatile Memory,非易失性存储器),闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (13)
1.一种基于Hbase的时序数据存储方法,其特征在于,包括:
获取数据源所产生的一条时序数据,所述时序数据包括数据产生时间、数据名称、多个数据标签和至少一个监控指标,所述多个数据标签中包含至少一个唯一标识所述数据源的识别标签;
按照预设排序方式对多个数据标签进行排序得到标签排序结果以及对至少一个监控指标进行排序得到指标排序结果,并将所述标签排序结果、指标排序结果与数据名称相关联得到排序关系;
每隔预设时间间隔生成时间戳,并记录所述数据产生时间所对应的时间戳;
将数据名称、识别标签和所述数据产生时间所对应的时间戳组成行键,将所述多个数据标签中除识别标签以外的数据标签按照标签排序结果组成标签列簇的列,将所述至少一个监控指标按照指标排序结果组成属性列簇的列,得到多值模型存储结构;
将所述多值模型存储结构、排序关系存储至HBase数据库中。
2.根据权利要求1所述的时序数据存储方法,其特征在于,在所述将所述多值模型存储结构、排序关系存储至HBase数据库中的步骤之后,所述时序数据存储方法还包括:
继续获取相同数据源所产生的下一条时序数据,如果下一条时序数据的数据产生时间所对应的时间戳与当前条时序数据的数据产生时间所对应的时间戳相同,则将下一条时序数据的至少一个监控指标按照指标排序结果组成属性列簇的新的列。
3.根据权利要求2所述的时序数据存储方法,其特征在于,所述属性列簇的每列的列名为对应的时序数据的数据产生时间除以所述预设时间间隔所得的余数。
4.根据权利要求1或2所述的时序数据存储方法,其特征在于,在所述将数据名称、识别标签和所述数据产生时间所对应的时间戳组成行键的步骤之前,还包括:
将所述数据名称和多个数据标签转换为预定字节长度的映射值,并记录映射关系;
所述将所述多值模型存储结构、排序关系存储至HBase数据库中的步骤还包括:
将所述映射关系存储至HBase数据库中。
5.根据权利要求1或2所述的时序数据存储方法,其特征在于,在所述将所述多值模型存储结构、排序关系存储至HBase数据库中的步骤之前,还包括:
记录每一个数据标签所对应的行键,得到标签索引关系;
所述将所述多值模型存储结构、排序关系存储至HBase数据库中的步骤还包括:
将所述标签索引关系存储至HBase数据库中。
6.根据权利要求5所述的时序数据存储方法,其特征在于,在所述记录每一个数据标签所对应的行键,得到标签索引关系的步骤之后,还包括:
在所述标签索引关系中增加记录每一个监控指标所对应的行键。
7.一种基于Hbase的时序数据存储装置,其特征在于,包括获取模块、排序模块、记时模块、构建模块和存储模块;
所述获取模块用于获取数据源所产生的一条时序数据,所述时序数据包括数据产生时间、数据名称、多个数据标签和至少一个监控指标,所述多个数据标签中包含至少一个唯一标识所述数据源的识别标签;
所述排序模块用于按照预设排序方式对多个数据标签进行排序得到标签排序结果以及对至少一个监控指标进行排序得到指标排序结果,并将所述标签排序结果、指标排序结果与数据名称相关联得到排序关系;
所述记时模块用于每隔预设时间间隔生成时间戳,并记录所述数据产生时间所对应的时间戳;
所述构建模块用于将数据名称、识别标签和所述数据产生时间所对应的时间戳组成行键,将所述多个数据标签中除识别标签以外的数据标签按照标签排序结果组成标签列簇的列,将所述至少一个监控指标按照指标排序结果组成属性列簇的列,得到多值模型存储结构;
所述存储模块用于将所述多值模型存储结构、排序关系存储至HBase数据库中。
8.根据权利要求7所述的时序数据存储装置,其特征在于,所述获取模块还用于继续获取相同数据源所产生的下一条时序数据;
所述构建模块还用于下一条时序数据的数据产生时间所对应的时间戳与当前条时序数据的数据产生时间所对应的时间戳相同,则将下一条时序数据的至少一个监控指标按照指标排序结果组成属性列簇的新的列。
9.根据权利要求8所述的时序数据存储装置,其特征在于,所述属性列簇的每列的列名为对应的时序数据的数据产生时间除以所述预设时间间隔所得的余数。
10.根据权利要求7或8所述的时序数据存储装置,其特征在于,所述构建模块在将数据名称、识别标签和所述数据产生时间所对应的时间戳组成行键之前,还用于将所述数据名称和多个数据标签转换为预定字节长度的映射值,并记录映射关系;
所述存储模块还用于将所述映射关系存储至HBase数据库中。
11.根据权利要求7或8所述的时序数据存储装置,其特征在于,所述构建模块在将数据名称、识别标签和所述数据产生时间所对应的时间戳组成行键之后,还用于记录每一个数据标签所对应的行键,得到标签索引关系;
所述存储模块还用于将所述标签索引关系存储至HBase数据库中。
12.根据权利要求11所述的时序数据存储装置,其特征在于,所述构建模块还用于在所述标签索引关系中增加记录每一个监控指标所对应的行键。
13.一种时序数据存储设备,其特征在于,所述时序数据存储设备包括存储器、处理器及存储在所述存储器中的计算机程序,所述处理器用于执行所述计算机程序,以实现根据权利要求1-6任一项所述的时序数据存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011619878.5A CN112732714B (zh) | 2020-12-30 | 2020-12-30 | 一种基于Hbase的时序数据存储方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011619878.5A CN112732714B (zh) | 2020-12-30 | 2020-12-30 | 一种基于Hbase的时序数据存储方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112732714A CN112732714A (zh) | 2021-04-30 |
CN112732714B true CN112732714B (zh) | 2023-05-09 |
Family
ID=75608478
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011619878.5A Active CN112732714B (zh) | 2020-12-30 | 2020-12-30 | 一种基于Hbase的时序数据存储方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112732714B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114064754B (zh) * | 2021-11-11 | 2024-07-12 | 浙江大学 | 一种工业时序数据特征学习方法 |
CN116049153B (zh) * | 2022-12-12 | 2023-08-25 | 本原数据(北京)信息技术有限公司 | 数据库的数据处理方法、装置、电子设备及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10437848B2 (en) * | 2016-12-19 | 2019-10-08 | American Express Travel Related Services Company, Inc. | Systems and methods for parsing and ingesting data in big data environments |
CN108052551B (zh) * | 2017-11-28 | 2021-04-30 | 北京航天云路有限公司 | 一种在redis上实现的存储大量时序数据的方法 |
CN108197181B (zh) * | 2017-12-25 | 2023-04-18 | 广州亦云信息技术股份有限公司 | 一种时序数据的压缩存储方法、电子设备及存储介质 |
CN111813782B (zh) * | 2020-07-14 | 2024-07-26 | 杭州海康威视数字技术股份有限公司 | 一种时序数据的存储方法、装置 |
-
2020
- 2020-12-30 CN CN202011619878.5A patent/CN112732714B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112732714A (zh) | 2021-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106648446B (zh) | 一种用于时序数据的存储方法、装置及电子设备 | |
CN112732714B (zh) | 一种基于Hbase的时序数据存储方法、装置及设备 | |
US11636083B2 (en) | Data processing method and apparatus, storage medium and electronic device | |
US7124146B2 (en) | Incremental cardinality estimation for a set of data values | |
US8745014B2 (en) | Time series data mapping into a key-value database | |
US8533193B2 (en) | Managing log entries | |
CN108932257B (zh) | 多维度数据的查询方法及装置 | |
CN109561326B (zh) | 一种数据查询方法及装置 | |
CN111813782B (zh) | 一种时序数据的存储方法、装置 | |
CN109117440B (zh) | 一种元数据信息获取方法、系统和计算机可读存储介质 | |
US7155450B2 (en) | Plant information management system | |
CN107943831B (zh) | 一种基于HBase的电网历史数据集中存储方法 | |
CN115878684A (zh) | 时序数据分布式查询方法、装置、电子设备及存储介质 | |
CN111061758A (zh) | 数据存储方法、装置及存储介质 | |
CN113656397A (zh) | 一种针对时序数据的索引构建及查询的方法、装置 | |
CN110929120B (zh) | 管理技术元数据的方法和装置 | |
CN110879799B (zh) | 标注技术元数据的方法和装置 | |
CN110580253B (zh) | 时序数据组的加载方法、装置、存储介质及电子设备 | |
CN116166849A (zh) | 一种数据管理方法、装置、设备及存储介质 | |
CN115729893A (zh) | 数据存取方法、装置、非易失性存储介质及电子装置 | |
US20080027966A1 (en) | Dynamic creation of star-schema database structures and cubes | |
CN111680072A (zh) | 基于社交信息数据的划分系统及方法 | |
CN110928868B (zh) | 车辆数据检索方法、装置及计算机可读存储介质 | |
JP2004192657A (ja) | 情報検索システム、情報検索方法および情報検索用プログラムを記録した記録媒体 | |
Chao et al. | A performance study on large-scale data analytics using disk-based and in-memory database systems |
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 |