CN111090705B - 一种多维数据处理方法、装置及设备、存储介质 - Google Patents
一种多维数据处理方法、装置及设备、存储介质 Download PDFInfo
- Publication number
- CN111090705B CN111090705B CN201811236196.9A CN201811236196A CN111090705B CN 111090705 B CN111090705 B CN 111090705B CN 201811236196 A CN201811236196 A CN 201811236196A CN 111090705 B CN111090705 B CN 111090705B
- Authority
- CN
- China
- Prior art keywords
- data
- cube
- time
- level
- multidimensional
- 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
-
- 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
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种多维数据处理方法、装置及设备、存储介质,该方法包括:确定读取的多维数据所属的数据层级,并依据所述数据层级对所述多维数据进行聚合得到属于对应数据层级的cube数据;将所述cube数据存入本地的目标层级缓存区中,所述目标层级缓存区是本地的与cube数据所属的数据层级对应的层级缓存区;判断所述目标层级缓存区中所述缓存的数据量是否达到指定阈值,若是,则将所述目标层级缓存区中缓存的数据转存至目标数据库的与所述数据层级对应的层级数据库表中。避免因多维数据的无差别聚合及存储而导致的查询cube数据时数据量大的问题,有利于提升查询效率。
Description
技术领域
本发明涉及大数据处理技术领域,尤其涉及的是一种多维数据处理方法、装置及设备、存储介质。
背景技术
大数据处理包括多维数据处理。数据立方(Data Cube)是针对大数据例如多维数据的处理利器,可以实现cube数据的任意多关键字实时索引。将多维数据聚合统计为数据立方数据(简称cube数据)后,可以从多个角度探索和分析cube数据集,由于已经针对多个维度数据聚合得到cube数据,可以直接从cube数据集中查询得到所需结果,而不用再对多维数据实时地计算,可以大大加快数据的查询和检索效率。
相关多维数据处理方式中,对从数据源获取的各个多维数据以统一的聚合处理方式聚合处理后,聚合得到cube数据都存储至数据库的同一个数据库表中。
上述多维数据处理方式中,由于聚合及存储方式的一致性,当需要查询感兴趣的cube数据时,需要遍历所有已存储的cube数据,导致查询数据量大,查询效率低。
发明内容
有鉴于此,本发明提供一种多维数据处理方法、装置及设备、存储介质,避免因聚合及存储方式的一致性而导致查询数据量大的问题,有利于提升查询效率。
本发明第一方面提供一种多维数据处理方法,包括:
确定读取的多维数据所属的数据层级,并依据所述数据层级对所述多维数据进行聚合得到属于对应数据层级的cube数据;
将所述cube数据存入本地的目标层级缓存区中,所述目标层级缓存区是本地的与cube数据所属的数据层级对应的层级缓存区;
判断所述目标层级缓存区中所述缓存的数据量是否达到指定阈值,若是,则将所述目标层级缓存区中缓存的数据转存至目标数据库的与所述数据层级对应的层级数据库表中。
根据本发明的一个实施例,将所述cube数据存入本地的目标层级缓存区中,包括:
依据cube数据所属的数据层级及对应多维数据的时间维度数据中指定时间层级上的时间值,确定所述cube数据的数据标识;
依据所述cube数据的数据标识确定目标层级缓存区,并查询所述目标层级缓存区中是否存在与所述数据标识对应的第一cube数据;
若存在,获取所述第一cube数据,将所述cube数据与获取的第一cube数据进行合并,并将所述目标层级缓存区中的所述第一cube数据修改为合并后的cube数据。
根据本发明的一个实施例,将所述cube数据存入本地的目标层级缓存区中,还进一步包括:
若所述目标层级缓存区中不存在第一cube数据,在已建立的数据标识表中查找所述数据标识;所述数据标识表中记录有已存入至所述目标数据库的cube数据的数据标识;
若查找到,从所述目标数据库中获取与所述数据标识对应的第二cube数据,将所述cube数据与获取的第二cube数据进行合并,将合并后的cube数据与所述数据标识存入至目标层级缓存区,并删除所述数据标识表中的所述数据标识;
若未查找到,将所述cube数据与所述数据标识存入至目标层级缓存区。
根据本发明的一个实施例,所述确定读取的多维数据所属的数据层级,包括:
判断多维数据中的时间维度数据是否处于指定时间区间内;
若是,将所述多维数据所属的数据层级确定为第一层级;
若否,判断所述多维数据中的时间维度数据是否小于所述指定时间区间的较小端点时间,若小于,将所述多维数据所属的数据层级确定为第二层级。
根据本发明的一个实施例,判断所述多维数据中的时间维度数据是否小于所述指定时间区间的较小端点时间之后,该方法进一步包括:
若不小于,依据所述时间维度数据调整所述指定时间区间、以使所述时间维度数据处于调整后的指定时间区间内,将所述多维数据所属的数据层级确定为第一层级,并删除已存储的属于第一层级的且对应多维数据中的时间维度数据未处于调整后的指定时间区间内的cube数据、及与该cube数据相关的数据。
根据本发明的一个实施例,依据所述数据层级对所述多维数据进行聚合得到属于对应数据层级的cube数据,包括:
若所述多维数据属于第一层级,对该多维数据中的时间维度数据的全部时间层级上的时间值与该多维数据中剩余的指定维度数据进行聚合处理,得到属于第一层级的cube数据;
若所述多维数据属于第二层级,对该多维数据中的时间维度数据的目标时间层级上的时间值与该多维数据中剩余的指定维度数据进行聚合处理,得到属于第二层级的cube数据;
其中,所述目标时间层级少于该多维数据中的时间维度数据的全部时间层级。
本发明第二方面提供一种多维数据处理装置,包括:
聚合处理模块,用于确定读取的多维数据所属的数据层级,并依据所述数据层级对所述多维数据进行聚合得到属于对应数据层级的cube数据;
本地缓存模块,用于将所述cube数据存入本地的目标层级缓存区中,所述目标层级缓存区是本地的与cube数据所属的数据层级对应的层级缓存区;
数据转存模块,用于判断所述目标层级缓存区中所述缓存的数据量是否达到指定阈值,若是,则将所述目标层级缓存区中缓存的数据转存至目标数据库的与所述数据层级对应的层级数据库表中。
根据本发明的一个实施例,所述本地缓存模块包括:
标识确定单元,用于依据cube数据所属的数据层级及对应多维数据的时间维度数据中指定时间层级上的时间值,确定所述cube数据的数据标识;
本地查询单元,用于依据所述cube数据的数据标识确定目标层级缓存区,并查询所述目标层级缓存区中是否存在与所述数据标识对应的第一cube数据;
第一合并单元,用于若存在,获取所述第一cube数据,将所述cube数据与获取的第一cube数据进行合并,并将所述目标层级缓存区中的所述第一cube数据修改为合并后的cube数据。
根据本发明的一个实施例,所述本地缓存模块还进一步包括:
标识查找单元,用于若所述目标层级缓存区中不存在第一cube数据,在已建立的数据标识表中查找所述数据标识;所述数据标识表中记录有已存入至所述目标数据库的cube数据的数据标识;
第二合并单元,用于若查找到,从所述目标数据库中获取与所述数据标识对应的第二cube数据,将所述cube数据与获取的第二cube数据进行合并,将合并后的cube数据与所述数据标识存入至目标层级缓存区,并删除所述数据标识表中的所述数据标识;
缓存单元,用于若未查找到,将所述cube数据与所述数据标识存入至目标层级缓存区。
根据本发明的一个实施例,所述聚合处理模块包括:
时间判断单元,用于判断多维数据中的时间维度数据是否处于指定时间区间内;
层级确定第一单元,用于若是,将所述多维数据所属的数据层级确定为第一层级;
层级确定第二单元,用于若否,判断所述多维数据中的时间维度数据是否小于所述指定时间区间的较小端点时间,若小于,将所述多维数据所属的数据层级确定为第二层级。
根据本发明的一个实施例,所述层级确定第二单元进一步包括:
层级确定子单元,用于若不小于,依据所述时间维度数据调整所述指定时间区间、以使所述时间维度数据处于调整后的指定时间区间内,将所述多维数据所属的数据层级确定为第一层级,并删除已存储的属于第一层级的且对应多维数据中的时间维度数据未处于调整后的指定时间区间内的cube数据、及与该cube数据相关的数据。
根据本发明的一个实施例,所述聚合处理模块还包括:
第一聚合处理单元,用于若所述多维数据属于第一层级,对该多维数据中的时间维度数据的全部时间层级上的时间值与该多维数据中剩余的指定维度数据进行聚合处理,得到属于第一层级的cube数据;
第二聚合处理单元,用于若所述多维数据属于第二层级,对该多维数据中的时间维度数据的目标时间层级上的时间值与该多维数据中剩余的指定维度数据进行聚合处理,得到属于第二层级的cube数据;
其中,所述目标时间层级少于该多维数据中的时间维度数据的全部时间层级。
本发明第三方面提供一种电子设备,包括处理器及存储器;所述存储器存储有可被处理器调用的程序;其中,所述处理器执行所述程序时,实现如前述实施例所述的多维数据处理方法。
本发明第四方面提供一种机器可读存储介质,其上存储有程序,该程序被处理器执行时,实现如前述实施例所述的多维数据处理方法。
本发明实施例具有以下有益效果:
本发明实施例中,对多维数据进行了数据分级,在对多维数据聚合时是依据多维数据所属的数据层级进行的,得到的cube数据也相应实现了数据分级,在此基础上,对不同数据层级的cube数据进行了分层级存储,从而查询感兴趣的cube数据时,可在属于同一个数据层级的cube数据的存储空间中查询,可减少所需查询的数据量,有利于提升查询效率。
并且,在对多维数据进行聚合计算得到cube数据后,cube数据不直接存入目标数据库中,而是先缓存在本地目标层级缓存区中,只有当目标层级缓存区中的数据量达到指定阈值时,目标层级缓存区中缓存的数据才会转存到目标数据库中,可以减少对目标数据库的访问频次,使得目标数据库可及时应付数据访问,有利于提升系统吞吐量。
附图说明
图1是本发明一示例性实施例示出的多维数据处理方法的流程示意图;
图2是本发明一示例性实施例示出的多维数据处理装置的结构框图;
图3是本发明一更具体实施例示出的多维数据处理方法的流程示意图;
图4是本发明一示例性实施例示出的确定多维数据所属数据层级的流程示意图;
图5是本发明一示例性实施例示出的电子设备的结构框图。
实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种器件,但这些信息不应限于这些术语。这些术语仅用来将同一类型的器件彼此区分开。例如,在不脱离本发明范围的情况下,第一器件也可以被称为第二器件,类似地,第二器件也可以被称为第一器件。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了使得本发明的描述更清楚简洁,下面对本发明中的一些技术术语进行解释:
KafKa:一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。
Spark Streaming:是基于spark(一种开源的通用并行框架)的流式批处理引擎,其基本原理是把输入的数据以某一时间间隔批量进行处理,当批处理间隔缩短到秒级时,便可以用于处理实时数据流。Spark Streaming支持从多种数据源获取数据,包括KafKa、Flume、Twitter、ZeroMQ、Kinesis、TCP sockets等数据源,从数据源获取数据之后,可以使用诸如映射map、归约reduce、连接join等高级函数进行复杂算法的处理。
下面对本发明实施例的多维数据处理方法进行更具体的描述,但不应以此为限。在一个实施例中,参看图1,一种多维数据处理方法,可以包括以下步骤:
S100:确定读取的多维数据所属的数据层级,并依据所述数据层级对所述多维数据进行聚合得到属于对应数据层级的cube数据;
S200:将所述cube数据存入本地的目标层级缓存区中,所述目标层级缓存区是本地的与cube数据所属的数据层级对应的层级缓存区;
S300:判断所述目标层级缓存区中所述缓存的数据量是否达到指定阈值,若是,则将所述目标层级缓存区中缓存的数据转存至目标数据库的与所述数据层级对应的层级数据库表中。
本发明实施例中,多维数据包含多个信息数据,每个信息数据是多维数据中的一个维度数据。比如,一条多维数据包括时间、姓名、年龄、商品、所购商品价格等多个信息数据,这些信息数据是多维数据中的不同维度数据。
本发明实施例的多维数据处理方法的执行主体可以为电子设备,进一步地可以为电子设备的处理器,其中,所述处理器可以为一个或多个,所述处理器可以为通用处理器或者专用处理器。电子设备例如是计算机设备,具体不限。
在步骤S100中,确定读取的多维数据所属的数据层级,并依据所述数据层级对所述多维数据进行聚合得到属于对应数据层级的cube数据。
多维数据可以是批量地从数据源中获取的,一批多维数据中包括多条多维数据。获取到多维数据后,确定当前批次中的各条多维数据所属的数据层级,并依据各个多维数据所属的数据层级对多维数据进行聚合得到对应的cube数据,每条多维数据聚合后可得到对应的一条cube数据或多条cube数据,若得到多条cube数据,后续该多条cube数据的数据标识可不同。
批量获取多维数据的方式,具体可以是,利用Spark Streaming从KafKa数据源中获取多维数据。当然也可以是采用其他方式获取多维数据,也可从其他数据源中获取多维数据,具体不限。Spark Streaming每次可以获取一批多维数据,并且每批之间的时间间隔较小,有利于多维数据被处理的实时性。
Spark Streaming从KafKa中读取到多维数据后,会管理当前已被读取数据在KafKa中的消息分区及数据在消息分区中的偏移量。优选的,本地可将Spark Streaming管理的消息分区及数据在消息分区中的偏移量进行持久化操作,即存储到本地的非易失性存储器中,以在本地掉电重启之后,可依据消息分区及数据在消息分区中的偏移量准确定位KafKa中的当前已被读取数据,以此来保证多维数据都可以正确的被消费,且不会被重复的消费。
可以理解,本发明并不限于批量方式获取多维数据,也可以是单条获取的方式获取多维数据。在此情况下,每获取到一条多维数据,便确定该多维数据所属的数据层级,并依据数据层级对该多维数据进行聚合得到对应的cube数据。
多维数据分层级方式具体可以是,将30天内的多维数据与30天之前的多维数据分为两个数据层级。例如,第一条多维数据的时间维度数据2018-08-22-10-10-10,第二条多维数据的时间维度数据2018-07-22-10-10-10,则该两个多维数据分属两个数据层级。例如,第一条多维数据属于第一层级,第二条多维数据属于第二层级。
属于不同数据层级的多维数据具有对应的多维数据聚合方式,可按照多维数据所属的数据层级对应的多维数据聚合方式对多维数据进行聚合,得到的cube数据相应地属于与多维数据对应的数据层级。不同的多维数据聚合方式可以指聚合所用的数据不同、和/或对数据的组合方式不同,等等。
多维数据与对应的cube数据可被归类到同一数据层级下,例如,多维数据属于第一层级时,聚合得到的cube数据也相应属于第一层级。
本地为存储cube数据而分配了相应的内存缓存,作为缓存cube数据的层级缓存区,当然也不限于内存缓存。本地可以配置两块以上的层级缓存区,具体可根据有多少数据层级而定。例如,当数据层级包括第一层级和第二层级时,本地可具有第一层级缓存区和第二层级缓存区。若cube数据属于第一层级,则存入到第一层级缓存区中;若cube数据属于第二层级,则存入到第二层级缓存区中。
可以理解,各个层级缓存区中还可以缓存与对应cube数据关联的关联数据,关联数据例如是cube数据的数据标识等不限。cube数据与对应的关联数据可以存储在层级缓存区的同一个表项中。
在步骤S200中,确定与cube数据所属的数据层级对应的目标层级缓存区,将该cube数据存入到目标层级缓存区中。
本实施例中,将聚合得到的cube数据进行本地缓存时,可在对本批次的全部多维数据均聚合得到的cube数据后,将一批的cube数据一次性进行缓存,只要确定好cube数据对应的层级缓存区即可。可以理解,当然也可以每聚合得到一个cube数据,便将该cube数据进行本地缓存,再聚合处理下一条多维数据。
利用Spark Streaming批量获取多维数据时,每批的时间间隔较小,在此情况下,若每次都将聚合得到的一批cube数据直接存入到数据库中,则对于数据库的访问是非常频繁的,尤其对于分布式数据库比如Hbase来说,来不及应对如此频繁的访问。
本发明实施例中,在对多维数据进行聚合计算之后,并不会直接存入到数据库中,而是先存入到本地的层级缓存区中。即使Spark Streaming批处理的时间间隔减小到秒级或毫秒级,也不会造成对分布式数据库比如Hbase的访问负担。
步骤S300中,判断所述目标层级缓存区中所述缓存的数据量是否达到指定阈值,若是,则将所述目标层级缓存区中缓存的数据转存至目标数据库的与所述数据层级对应的层级数据库表中。
本地为每个层级缓存区设置了指定阈值,每个层级缓存区可以缓存一定量的cube数据,当缓存的cube数据达到一定量时,需要将cube数据转存到目标数据库中。每次将cube数据存入到对应的目标层级缓存区中后,计算目标层级缓存区中缓存的数据量,并将数据量与指定阈值进行比较,在数据量达到指定阈值时,将目标层级缓存区中缓存的数据转存至目标数据库的与所述数据层级对应的层级数据库表中。
指定阈值的具体取值不限,可以根据需要而定。优选的,所设置的指定阈值使得目标层级缓存区中可以存储大于一批cube数据的数据量。
该指定阈值可以是指定数据大小、或者cube数据的指定条数,相应的,目标层级缓存区中缓存的数据量也可以用缓存的数据大小、或者所缓存的cube数据的条数衡量,具体不限。以指定阈值为指定条数为例,当cube数据存入目标层级缓存区中时,计算累积的cube数据条数,当cube数据条数达到指定条数,说明目标层级缓存区中缓存的数据量达到指定阈值。
若目标层级缓存区中缓存的数据量达到指定阈值,则将目标层级缓存区中缓存的数据转存至目标数据库中。当然,若目标层级缓存区中缓存的数据量未达到指定阈值,则继续针对下一批多维数据进行处理,或者针对下一条多维数据进行处理。
所谓转存,即在目标层级缓存区中缓存的数据存入至目标数据库中后,需清空该目标层级缓存区。当然,清空的时机不限,可以存入至目标数据库中后立即清空该目标层级缓存区,也可以在下一次cube数据需要存入目标层级缓存区时再清空该目标层级缓存区。
目标数据库可以依托于外部服务器。目标数据库例如可以是Hbase等分布式数据库,当然具体不限。
无论是本地缓存中,还是目标数据库中,cube数据存储时都是按照cube数据所属的数据层级存储的,换言之,cube数据被归类地存储,属于同一数据层级的cube数据可被存储到同数据层级的存储空间中,而属于不同一数据层级的cube数据便可被存储到不同数据层级的存储空间中。
本发明实施例中,对多维数据进行了数据分级,在对多维数据聚合时是依据多维数据所属的数据层级进行的,得到的cube数据也相应实现了数据分级,在此基础上,对不同数据层级的cube数据进行了分层级存储,从而查询感兴趣的cube数据时,可在属于同一个数据层级的cube数据的存储空间中查询,可减少所需查询的数据量,有利于提升查询效率。
并且,在对多维数据进行聚合计算得到cube数据后,cube数据不直接存入目标数据库中,而是先缓存在本地目标层级缓存区中,只有当目标层级缓存区中的数据量达到指定阈值时,目标层级缓存区中缓存的数据才会转存到目标数据库中,可以减少对目标数据库的访问频次,使得目标数据库可及时应付数据访问,有利于提升系统吞吐量。
此外,由于本发明实施例的数据立方存储结构事实上包括本地的层级缓存区和目标数据库,并且整体被分为第一层级的数据立方存储结构和第二层级的数据立方存储结构。在查询cube数据时,可以先根据用户输入的查询条件来区分是需要查询第一层级的数据立方存储结构,还是需要查询第二层级的数据立方存储结构,可以先在本地的层级缓存区中查找,查找到直接返回结果,查询不到则到目标数据库的层级数据库表中查询,这样可以更快地查询到所需的cube数据,提高了对cube数据的查询速度。
为了保证数据的一致性,将目标层级缓存区中缓存的数据转存至目标数据库中之前,先将目标层级缓存区中缓存的数据持久化到本地的非易失性存储器比如hdfs中。在持久化完成后,说明从数据源接收到数据被成功消费,可以在此时,持久化前述实施例中所提及的消息分区及数据在消息分区中的偏移量,以便重启的时候可以从正确的位置开始消费数据源的数据,然后同时从hdfs中恢复缓存的数据至目标层级缓存区中,再重新转存到目标数据库中。
在一个实施例中,上述方法流程可由多维数据处理装置10执行,如图2所示,多维数据处理装置10主要包含3个模块:聚合处理模块100,本地缓存模块200和数据转存模块300。聚合处理模块100用于执行上述步骤S100,本地缓存模块200用于执行上述步骤S200,数据转存模块300用于执行上述步骤S300。
在一个实施例中,步骤S200中,将所述cube数据存入本地的目标层级缓存区中,可以包括以下步骤:
S201:依据cube数据所属的数据层级及对应多维数据的时间维度数据中指定时间层级上的时间值,确定所述cube数据的数据标识;
S202:依据所述cube数据的数据标识确定目标层级缓存区,并查询所述目标层级缓存区中是否存在与所述数据标识对应的第一cube数据;
S203:若存在,获取所述第一cube数据,将所述cube数据与获取的第一cube数据进行合并,并将所述目标层级缓存区中的所述第一cube数据修改为合并后的cube数据。
多维数据中包括时间维度数据,可以从多维数据的时间戳字段中获取该时间维度数据。时间维度数据分为多个时间层级,各个时间层级上具有对应的时间值。指定时间层级可包括一个时间层级或两个以上的时间层级,具体视需要而定。示例性的,时间维度数据例如是2018-08-22-10-10-10,表示2018年8月22日10时10分10秒,时间层级包括年、月、日、时、分、秒,指定时间层级例如可以包括年、月、日、时,该多维数据的时间维度数据中指定时间层级上的时间值即为2018-08-22-10。
步骤S201中,若两条cube数据所属的数据层级及对应多维数据的时间维度数据中指定时间层级上的时间值(例如都是2018-08-22-10)相同,则两条cube数据具有相同的数据标识。
步骤S202中,依据所确定的数据标识来确定目标层级缓存区中是否存在与该cube数据的数据标识对应的第一cube数据,若存在,说明该cube数据需要与第一cube数据进行合并。如此,实现了通过匹配数据标识来确定需合并的cube数据。
通常来说,本地缓存一定量cube数据后,数据标识匹配成功的可能性增大,因而在本地的目标层级缓存区中查找到需要合并的cube数据的几率变大且查询速度相对于在数据库中查找更快,缩短整体处理时间。
可以理解,存入到本地层级缓存区中的cube数据都可以有对应的数据标识。该数据标识可以与cube数据对应地存入在本地层级缓存区中,例如数据标识与对应的cube数据处于同一个表项中。或者是可以另外开辟一块标识缓存,用来存储数据标识及在地层级缓存区中寻址对应cube数据所需的地址,先在标识缓存中查找数据标识,在查找到时读取对应的地址,依据地址来寻址并获取目标层级缓存区中的第一cube数据,具体不限。
步骤S203中,当目标层级缓存区中存在第一cube数据时,将cube数据与该第一cube数据进行合并,并将目标层级缓存区中的第一cube数据修改为合并后的cube数据。
数据合并的方式不限,可以是两个cube数据各项中的一项或几项进行合并。示例性的,cube数据包括:时间、姓名、年龄、商品、所购商品价格;合并之后可以是但不限于:时间、姓名、年龄、商品、两个所购商品价格之和。即,将cube数据中的所购商品价格进行叠加,而cube数据中的其他项不变。
将cube数据与第一cube数据合并之后,只需将目标层级缓存区中的该第一cube数据替换为合并后的cube数据,无需变动与第一cube数据对应的关联数据,例如数据标识等这些关联数据。
cube数据的合并在本地执行,那么在将目标层级缓存区中的数据转存到目标数据库时,不需要在入库时再进行cube数据的合并操作,可以缩短cube数据存入数据库的时间。
在一个实施例中,步骤S200中,将所述cube数据存入本地的目标层级缓存区中,还进一步包括:
S204:若所述目标层级缓存区中不存在第一cube数据,在已建立的数据标识表中查找所述数据标识;所述数据标识表中记录有已存入至所述目标数据库的cube数据的数据标识;
S205:若查找到,从所述目标数据库中获取与所述数据标识对应的第二cube数据,将所述cube数据与获取的第二cube数据进行合并,将合并后的cube数据与所述数据标识存入至目标层级缓存区,并删除所述数据标识表中的所述数据标识;
S206:若未查找到,将所述cube数据与所述数据标识存入至目标层级缓存区。
步骤S204中,目标层级缓存区中不存在第一cube数据时,再判断目标数据库中是否存在与数据标识对应的第二cube数据。
通过在已建立的数据标识表中查找该数据标识,来确定目标数据库中是否存在第二cube数据。由于数据标识表中记录有已转存至目标数据库的cube数据的数据标识,因而若数据标识表中存在该数据标识,则说明目标数据库中存在第二cube数据,否则,说明目标数据库中不存在第二cube数据。
步骤S205中,在已建立的数据标识表中查找到所述数据标识中时,可先依据所述数据标识确定目标数据库中与cube数据所属的数据层级对应的目标层级数据库表,再在该目标层级数据库表中查找与该数据标识对应的第二cube数据(无异常情况下,由于在数据标识表中已找到数据标识,因而必然能够在目标层级数据库表中找到第二cube数据),而后获取该第二cube数据。
将cube数据与获取的第二cube数据进行合并,将合并后的cube数据与所述数据标识存入至目标层级缓存区。当然,若cube数据与数据标识是分表存储的,可将合并后的cube数据与所述数据标识分别存储到对应的表项中,只要两个表项是相关联的即可。
在从目标数据库中获取与所述数据标识对应的第二cube数据后,还删除所述数据标识表中的所述数据标识,在后续转存到目标数据库中时,再将所述数据标识记录至数据标识表中,其中,合并的cube数据转存时可覆盖目标数据库中对应数据标识所在表项中的cube数据。
数据标识表存储在本地,每次将层级缓存区中的数据转存到目标数据库时,更新数据标识表,将转存到目标数据库的cube数据对应的数据标识存入到该数据标识表中。
步骤S206中,确定cube数据不需要进行合并时,将cube数据直接存入目标层级缓存区。
本实施例中,cube数据的合并操作在本地执行,这样在将目标层级缓存区中的数据转存到目标数据库时,无需进行入库时的合并操作,加快存储时间;合并的数据上传至数据库时,数据量也少,防止产生网络拥塞问题;合并所需的目标cube数据大部分可以直接从本地中获取,减少从目标数据库读取数据,避免对目标数据库的频繁访问。
在一个更具体的实施例中,参看图3,多维数据处理方法具体流程可以如下步骤:
11)从KafKa数据源中获取多维数据,例如利用Spark Streaming批量地获取多维数据,并确定获取到的多维数据所属的数据层级,接着执行步骤12);
数据层级可包括第一层级和第二层级,因而多维数据所属的数据层级是第一层级、或是第二层级;
12)判断多维数据是否属于第一层级,若是,则按照第一层级的聚合方式聚合多维数据,得到属于第一层级的cube数据,若否,则按照第二层级的聚合方式聚合多维数据,得到属于第二层级的cube数据;可以每得到一个cube数据便执行后续步骤13),也可以得到该批次的所有cube数据再执行步骤13);
13)判断与cube数据所属的数据层级对应的目标层级缓存区中是否存在需合并的第一cube数据,若存在则执行步骤14),否则执行步骤15);
每个cube数据在存储之前都可以确定对应的一个数据标识,这样就可以通过匹配数据标识来确定需合并的cube数据;本步骤中,可通过确定该cube数据的数据标识,并在目标层级缓存区中查找该数据标识来确定是否存在需合并的第一cube数据,当目标层级缓存区中存在与该cube数据的数据标识时,说明目标层级缓存区中存在需合并的第一cube数据(与该数据标识对应);
14)从目标层级缓存区中获取该第一cube数据,将步骤12)中聚合得到的cube数据与该第一cube数据进行合并,并将目标层级缓存区中的第一cube数据修改为合并后的cube数据,接着执行步骤18);
15)判断目标数据库中是否存在需合并的第二cube数据,若存在则执行步骤16),否则执行步骤17);
当目标数据库中存在与该cube数据的数据标识对应的第二cube数据时,说明目标数据库中存在需合并的第二cube数据;
16)从目标数据库中获取第二cube数据,将步骤12)中聚合得到的cube数据与该第二cube数据进行合并,并将合并后的cube数据缓存到目标层级缓存区中,接着执行步骤18);
17)将步骤12)中聚合得到的cube数据缓存在目标层级缓存区中,接着执行步骤18);
18)判断目标层级缓存区中缓存的数据是否达到指定阈值,若是,则将目标层级缓存区中缓存的数据转存至目标数据库的对应层级数据库表中;返回步骤11)。
在一个实施例中,步骤S100中,确定读取的多维数据所属的数据层级,可以包括以下步骤:
S101:判断多维数据中的时间维度数据是否处于指定时间区间内;
S102:若是,将所述多维数据所属的数据层级确定为第一层级;
S103:若否,判断所述多维数据中的时间维度数据是否小于所述指定时间区间的较小端点时间,若小于,将所述多维数据所属的数据层级确定为第二层级。
指定时间区间可以是自定义的时间区间,具体不限,可以视需要而定,例如是最近30天内,假设当前时间为2018(年)-08(月)-21(日)-10(时)-10(分)-10(秒),则指定时间区间可为2018-07-22-10-10-10~2018-08-21-10-10-10,当然,指定时间区间的较大端点时间并非一定是当前时间。
若多维数据中的时间维度数据为2018-07-25-10-10-10,则该时间维度数据处于指定时间区间内,将该多维数据所属的数据层级确定为第一层级。
若多维数据中的时间维度数据为2018-07-21-10-10-10,则时间维度数据未处于指定时间区间内,继续判断时间维度数据是否小于所述指定时间区间的较小端点时间,由于该2018-07-21-10-10-10小于2018-07-22-10-10-10,则该多维数据所属的数据层级确定为第二层级。
本发明实施例中,较小端点时间即指定时间区间的左端点值,较大端点时间即指定时间区间的右端点值。
在一个实施例中,步骤S103中,判断所述多维数据中的时间维度数据是否小于所述指定时间区间的较小端点时间之后,该方法进一步包括:
S1031:若不小于,依据所述时间维度数据调整所述指定时间区间、以使所述时间维度数据处于调整后的指定时间区间内,将所述多维数据所属的数据层级确定为第一层级,并删除已存储的属于第一层级的且对应多维数据中的时间维度数据未处于调整后的指定时间区间内的cube数据、及与该cube数据相关的数据。
若多维数据中的时间维度数据不小于指定时间区间的较小端点时间,则说明时间维度数据大于所述指定时间区间的较大端点时间,指定时间区间需要进行调整,以使时间维度数据处于调整后的指定时间区间内。调整指定时间区间的方式例如可以是,维持指定时间区间的长度不变,将指定时间区间的较小端点和较大端点增大相同值。
具体的,若多维数据中的时间维度数据为2018-08-23-10-10-10,大于指定时间区间的较大端点时间2018-08-21-10-10-10,可将指定时间区间从2018-07-22-10-10-10~2018-08-21-10-10-10调整为2018-07-24-10-10-10~2018-08-23-10-10-10,再将该多维数据所属的数据层级确定为第一层级,以进行后续的聚合计算。
调整指定时间区间之后,还将已存入本地层级缓存区、目标数据库中的属于第一层级的且对应多维数据中的时间维度数据未处于调整后的指定时间区间内的cube数据、及与该cube数据相关的数据删除。即,将与第一层级的且时间维度数据在2018-07-24-10-10-10~2018-08-23-10-10-10内的多维数据对应的cube数据从本地层级缓存区、目标数据库中删除,使得本地层级缓存区和目标数据库中存储的属于第一层级的cube数据都处于调整后的指定时间区间2018-07-24-10-10-10~2018-08-23-10-10-10内。
指定时间区间被调整后,当前不处于指定时间区间内的cube数据会被删除,因而本地层级缓存区和目标数据库中所存储的属于第一层级的cube数据,都是当前处于指定时间区间内的cube数据,这样可以减少cube数据所需的存储空间,也有利于快速查找。
在一个实施例中,步骤S100中,依据所述数据层级对所述多维数据进行聚合得到属于对应数据层级的cube数据,可以包括以下步骤:
S104:若所述多维数据属于第一层级,对该多维数据中的时间维度数据的全部时间层级上的时间值与该多维数据中剩余的指定维度数据进行聚合处理,得到属于第一层级的cube数据;
S105:若所述多维数据属于第二层级,对该多维数据中的时间维度数据的目标时间层级上的时间值与该多维数据中剩余的指定维度数据进行聚合处理,得到属于第二层级的cube数据;
其中,所述目标时间层级少于该多维数据中的时间维度数据的全部时间层级。
对属于第一层级的多维数据进行聚合时,时间维度数据的全部时间层级上的时间值都参与聚合,例如聚合2018-07-24-10-10-10~2018-08-23-10-10-10内的多维数据时,年、月、日、时、分、秒这些全部时间层级上的时间值均参与聚合,可保证后续查询时可得到更精确的结果。
而对属于第二层级的多维数据进行聚合时,不是全部时间层级上的时间值都参与聚合,例如可以仅年、月、日这些目标时间层级上的时间值参与聚合,这样可以将年、月、日相同的cube数据合并为一条cube数据,由于用户对于早于2018-07-24-10-10-10的时间维度数据的时、分、秒这些时间层级的聚合统计值不大感兴趣,因而不需要精确地统计,如此操作可以大大减小cube数据所需的存储空间,也可提升查询速度。
在一个更具体的实施例中,参看图4,从数据源中获取到一批多维数据时,确定多维数据所属数据层级的流程具体可以包括如下步骤:
21)判断是否存在指定时间区间,若是则执行步骤23),否则执行步骤22);
指定时间区间可以在每次装置启动之后的首次收到一批多维数据时设置;
22)获取该批次的第一条多维数据的时间维度数据;根据获取的时间维度数据和预置的时间维度数据长度生成指定时间区间,例如将获取的时间维度数据作为指定时间区间的较大端点时间,将预置的时间维度数据长度作为指定时间区间的区间长度;获取该批次剩余多维数据,接着执行步骤23);
23)判断多维数据的时间维度数据是否处于指定时间区间内,若处于则执行27),否则执行步骤24);
24)判断多维数据的时间维度数据是否小于指定时间区间的较小端点时间,若是则执行步骤25),否则执行步骤26);
25)将该多维数据所属的数据层级确定为第二层级;若当前批次的多维数据均被处理完,则结束,并等待下一批数据到来再执行步骤21);否则返回步骤23);
26)依据该多维数据的时间维度数据调整指定时间区间,例如将指定时间区间的较大端点时间设置为该多维数据的时间维度数据而区间长度不变,接着执行步骤27);
27)将该多维数据所属的数据层级确定为第一层级,若当前批次的多维数据均被处理完,则结束,并等待下一批数据到来再返回执行步骤21),否则返回步骤23)。
本发明还提供一种多维数据处理装置,继续参看图2,该多维数据处理装置10可包括:
聚合处理模块100,用于确定读取的多维数据所属的数据层级,并依据所述数据层级对所述多维数据进行聚合得到属于对应数据层级的cube数据;
本地缓存模块200,用于将所述cube数据存入本地的目标层级缓存区中,所述目标层级缓存区是本地的与cube数据所属的数据层级对应的层级缓存区;
数据转存模块300,用于判断所述目标层级缓存区中所述缓存的数据量是否达到指定阈值,若是,则将所述目标层级缓存区中缓存的数据转存至目标数据库的与所述数据层级对应的层级数据库表中。
在一个实施例中,所述本地缓存模块包括:
标识确定单元,用于依据cube数据所属的数据层级及对应多维数据的时间维度数据中指定时间层级上的时间值,确定所述cube数据的数据标识;
本地查询单元,用于依据所述cube数据的数据标识确定目标层级缓存区,并查询所述目标层级缓存区中是否存在与所述数据标识对应的第一cube数据;
第一合并单元,用于若存在,获取所述第一cube数据,将所述cube数据与获取的第一cube数据进行合并,并将所述目标层级缓存区中的所述第一cube数据修改为合并后的cube数据。
在一个实施例中,所述本地缓存模块还进一步包括:
标识查找单元,用于若所述目标层级缓存区中不存在第一cube数据,在已建立的数据标识表中查找所述数据标识;所述数据标识表中记录有已存入至所述目标数据库的cube数据的数据标识;
第二合并单元,用于若查找到,从所述目标数据库中获取与所述数据标识对应的第二cube数据,将所述cube数据与获取的第二cube数据进行合并,将合并后的cube数据与所述数据标识存入至目标层级缓存区,并删除所述数据标识表中的所述数据标识;
缓存单元,用于若未查找到,将所述cube数据与所述数据标识存入至目标层级缓存区。
在一个实施例中,所述聚合处理模块包括:
时间判断单元,用于判断多维数据中的时间维度数据是否处于指定时间区间内;
层级确定第一单元,用于若是,将所述多维数据所属的数据层级确定为第一层级;
层级确定第二单元,用于若否,判断所述多维数据中的时间维度数据是否小于所述指定时间区间的较小端点时间,若小于,将所述多维数据所属的数据层级确定为第二层级。
在一个实施例中,所述层级确定第二单元进一步包括:
层级确定子单元,用于若不小于,依据所述时间维度数据调整所述指定时间区间、以使所述时间维度数据处于调整后的指定时间区间内,将所述多维数据所属的数据层级确定为第一层级,并删除已存储的属于第一层级的且对应多维数据中的时间维度数据未处于调整后的指定时间区间内的cube数据、及与该cube数据相关的数据。
在一个实施例中,所述聚合处理模块还包括:
第一聚合处理单元,用于若所述多维数据属于第一层级,对该多维数据中的时间维度数据的全部时间层级上的时间值与该多维数据中剩余的指定维度数据进行聚合处理,得到属于第一层级的cube数据;
第二聚合处理单元,用于若所述多维数据属于第二层级,对该多维数据中的时间维度数据的目标时间层级上的时间值与该多维数据中剩余的指定维度数据进行聚合处理,得到属于第二层级的cube数据;
其中,所述目标时间层级少于该多维数据中的时间维度数据的全部时间层级。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元。
本发明还提供一种电子设备,包括处理器及存储器;所述存储器存储有可被处理器调用的程序;其中,所述处理器执行所述程序时,实现如前述实施例中所述的多维数据处理方法。
本发明多维数据处理装置的实施例可以应用在电子设备上。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,图5是本发明根据一示例性实施例示出的多维数据处理装置10所在电子设备的一种硬件结构图,除了图5所示的处理器510、内存530、接口520、以及非易失性存储器540之外,实施例中装置10所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
本发明还提供一种机器可读存储介质,其上存储有程序,该程序被处理器执行时,使得电子设备实现如前述实施例中所述的多维数据处理方法。
本发明可采用在一个或多个其中包含有程序代码的存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。机器可读存储介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。机器可读存储介质的例子包括但不限于:相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (12)
1.一种多维数据处理方法,其特征在于,包括:
确定读取的多维数据所属的数据层级,包括:判断多维数据中的时间维度数据是否处于指定时间区间内;若是,将所述多维数据所属的数据层级确定为第一层级;若否,判断所述多维数据中的时间维度数据是否小于所述指定时间区间的较小端点时间,若小于,将所述多维数据所属的数据层级确定为第二层级,若不小于,依据所述时间维度数据调整所述指定时间区间、以使所述时间维度数据处于调整后的指定时间区间内,将所述多维数据所属的数据层级确定为第一层级;
所述指定时间区间具有较小端点时间和较大端点时间,所述较小端点时间是所述指定时间区间的左端点值,所述较大端点时间是所述指定时间区间的右端点值;
并依据所述数据层级对所述多维数据进行聚合得到属于对应数据层级的cube数据;
将所述cube数据存入本地的目标层级缓存区中,所述目标层级缓存区是本地的与cube数据所属的数据层级对应的层级缓存区;
判断所述目标层级缓存区中所述缓存的数据量是否达到指定阈值,若是,则将所述目标层级缓存区中缓存的数据转存至目标数据库的与所述数据层级对应的层级数据库表中。
2.如权利要求1所述的多维数据处理方法,其特征在于,将所述cube数据存入本地的目标层级缓存区中,包括:
依据cube数据所属的数据层级及对应多维数据的时间维度数据中指定时间层级上的时间值,确定所述cube数据的数据标识;
依据所述cube数据的数据标识确定目标层级缓存区,并查询所述目标层级缓存区中是否存在与所述数据标识对应的第一cube数据;
若存在,获取所述第一cube数据,将所述cube数据与获取的第一cube数据进行合并,并将所述目标层级缓存区中的所述第一cube数据修改为合并后的cube数据。
3.如权利要求2所述的多维数据处理方法,其特征在于,将所述cube数据存入本地的目标层级缓存区中,还进一步包括:
若所述目标层级缓存区中不存在第一cube数据,在已建立的数据标识表中查找所述数据标识;所述数据标识表中记录有已存入至所述目标数据库的cube数据的数据标识;
若查找到,从所述目标数据库中获取与所述数据标识对应的第二cube数据,将所述cube数据与获取的第二cube数据进行合并,将合并后的cube数据与所述数据标识存入至目标层级缓存区,并删除所述数据标识表中的所述数据标识;
若未查找到,将所述cube数据与所述数据标识存入至目标层级缓存区。
4.如权利要求1所述的多维数据处理方法,其特征在于,在依据所述时间维度数据调整所述指定时间区间之后,该方法进一步包括:
删除已存储的属于第一层级的且对应多维数据中的时间维度数据未处于调整后的指定时间区间内的cube数据、及与该cube数据相关的数据。
5.如权利要求1所述的多维数据处理方法,其特征在于,依据所述数据层级对所述多维数据进行聚合得到属于对应数据层级的cube数据,包括:
若所述多维数据属于第一层级,对该多维数据中的时间维度数据的全部时间层级上的时间值与该多维数据中剩余的指定维度数据进行聚合处理,得到属于第一层级的cube数据;
若所述多维数据属于第二层级,对该多维数据中的时间维度数据的目标时间层级上的时间值与该多维数据中剩余的指定维度数据进行聚合处理,得到属于第二层级的cube数据;
其中,所述目标时间层级少于该多维数据中的时间维度数据的全部时间层级。
6.一种多维数据处理装置,其特征在于,包括:
聚合处理模块,用于确定读取的多维数据所属的数据层级,并依据所述数据层级对所述多维数据进行聚合得到属于对应数据层级的cube数据;
所述聚合处理模块包括:
时间判断单元,用于判断多维数据中的时间维度数据是否处于指定时间区间内;
层级确定第一单元,用于若是,将所述多维数据所属的数据层级确定为第一层级;
层级确定第二单元,用于若否,判断所述多维数据中的时间维度数据是否小于所述指定时间区间的较小端点时间,若小于,将所述多维数据所属的数据层级确定为第二层级,若不小于,依据所述时间维度数据调整所述指定时间区间、以使所述时间维度数据处于调整后的指定时间区间内,将所述多维数据所属的数据层级确定为第一层级;
所述指定时间区间具有较小端点时间和较大端点时间,所述较小端点时间是所述指定时间区间的左端点值,所述较大端点时间是所述指定时间区间的右端点值;
本地缓存模块,用于将所述cube数据存入本地的目标层级缓存区中,所述目标层级缓存区是本地的与cube数据所属的数据层级对应的层级缓存区;
数据转存模块,用于判断所述目标层级缓存区中所述缓存的数据量是否达到指定阈值,若是,则将所述目标层级缓存区中缓存的数据转存至目标数据库的与所述数据层级对应的层级数据库表中。
7.如权利要求6所述的多维数据处理装置,其特征在于,所述本地缓存模块包括:
标识确定单元,用于依据cube数据所属的数据层级及对应多维数据的时间维度数据中指定时间层级上的时间值,确定所述cube数据的数据标识;
本地查询单元,用于依据所述cube数据的数据标识确定目标层级缓存区,并查询所述目标层级缓存区中是否存在与所述数据标识对应的第一cube数据;
第一合并单元,用于若存在,获取所述第一cube数据,将所述cube数据与获取的第一cube数据进行合并,并将所述目标层级缓存区中的所述第一cube数据修改为合并后的cube数据。
8.如权利要求7所述的多维数据处理装置,其特征在于,所述本地缓存模块还进一步包括:
标识查找单元,用于若所述目标层级缓存区中不存在第一cube数据,在已建立的数据标识表中查找所述数据标识;所述数据标识表中记录有已存入至所述目标数据库的cube数据的数据标识;
第二合并单元,用于若查找到,从所述目标数据库中获取与所述数据标识对应的第二cube数据,将所述cube数据与获取的第二cube数据进行合并,将合并后的cube数据与所述数据标识存入至目标层级缓存区,并删除所述数据标识表中的所述数据标识;
缓存单元,用于若未查找到,将所述cube数据与所述数据标识存入至目标层级缓存区。
9.如权利要求6所述的多维数据处理装置,其特征在于,所述层级确定第二单元进一步包括:
层级确定子单元,用于在依据所述时间维度数据调整所述指定时间区间之后,删除已存储的属于第一层级的且对应多维数据中的时间维度数据未处于调整后的指定时间区间内的cube数据、及与该cube数据相关的数据。
10.如权利要求6所述的多维数据处理装置,其特征在于,所述聚合处理模块还包括:
第一聚合处理单元,用于若所述多维数据属于第一层级,对该多维数据中的时间维度数据的全部时间层级上的时间值与该多维数据中剩余的指定维度数据进行聚合处理,得到属于第一层级的cube数据;
第二聚合处理单元,用于若所述多维数据属于第二层级,对该多维数据中的时间维度数据的目标时间层级上的时间值与该多维数据中剩余的指定维度数据进行聚合处理,得到属于第二层级的cube数据;
其中,所述目标时间层级少于该多维数据中的时间维度数据的全部时间层级。
11.一种电子设备,其特征在于,包括处理器及存储器;所述存储器存储有可被处理器调用的程序;其中,所述处理器执行所述程序时,实现如权利要求1-5中任意一项所述的多维数据处理方法。
12.一种机器可读存储介质,其特征在于,其上存储有程序,该程序被处理器执行时,实现如权利要求1-5中任意一项所述的多维数据处理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811236196.9A CN111090705B (zh) | 2018-10-23 | 2018-10-23 | 一种多维数据处理方法、装置及设备、存储介质 |
PCT/CN2019/111510 WO2020078395A1 (zh) | 2018-10-16 | 2019-10-16 | 数据存储方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811236196.9A CN111090705B (zh) | 2018-10-23 | 2018-10-23 | 一种多维数据处理方法、装置及设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111090705A CN111090705A (zh) | 2020-05-01 |
CN111090705B true CN111090705B (zh) | 2023-08-25 |
Family
ID=70391807
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811236196.9A Active CN111090705B (zh) | 2018-10-16 | 2018-10-23 | 一种多维数据处理方法、装置及设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111090705B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111966677B (zh) * | 2020-06-28 | 2024-04-19 | 北京百度网讯科技有限公司 | 数据报表的处理方法、装置、电子设备及存储介质 |
CN111858676B (zh) * | 2020-07-24 | 2024-08-13 | 政采云有限公司 | 一种数据处理的方法及装置 |
CN113297232B (zh) * | 2020-07-31 | 2024-03-01 | 阿里巴巴集团控股有限公司 | 一种基于数据库分区的数据更新方法、装置及系统 |
CN112015737B (zh) * | 2020-08-24 | 2021-03-30 | 华智众创(北京)投资管理有限责任公司 | 专利数据处理的方法及装置,计算设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101604334A (zh) * | 2008-11-18 | 2009-12-16 | 北京美智医疗科技有限公司 | 一种基于缓存技术的医疗影像数据库检索方法及检索系统 |
CN102004768A (zh) * | 2009-08-31 | 2011-04-06 | 埃森哲环球服务有限公司 | 自适应分析多维处理系统 |
CN104657435A (zh) * | 2015-01-30 | 2015-05-27 | 杭州华三通信技术有限公司 | 一种应用数据的存储管理方法和网络管理系统 |
CN104965874A (zh) * | 2015-06-11 | 2015-10-07 | 腾讯科技(北京)有限公司 | 信息处理方法及装置 |
CN105446893A (zh) * | 2014-07-14 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 数据存储方法及设备 |
CN107273522A (zh) * | 2015-06-01 | 2017-10-20 | 明算科技(北京)股份有限公司 | 面向多应用的数据存储系统和数据调用方法 |
CN108241647A (zh) * | 2016-12-23 | 2018-07-03 | 北京奇虎科技有限公司 | 数据处理及查询的方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10268745B2 (en) * | 2015-05-29 | 2019-04-23 | Oracle International Corporation | Inherited dimensions |
-
2018
- 2018-10-23 CN CN201811236196.9A patent/CN111090705B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101604334A (zh) * | 2008-11-18 | 2009-12-16 | 北京美智医疗科技有限公司 | 一种基于缓存技术的医疗影像数据库检索方法及检索系统 |
CN102004768A (zh) * | 2009-08-31 | 2011-04-06 | 埃森哲环球服务有限公司 | 自适应分析多维处理系统 |
CN105446893A (zh) * | 2014-07-14 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 数据存储方法及设备 |
CN104657435A (zh) * | 2015-01-30 | 2015-05-27 | 杭州华三通信技术有限公司 | 一种应用数据的存储管理方法和网络管理系统 |
CN107273522A (zh) * | 2015-06-01 | 2017-10-20 | 明算科技(北京)股份有限公司 | 面向多应用的数据存储系统和数据调用方法 |
CN104965874A (zh) * | 2015-06-11 | 2015-10-07 | 腾讯科技(北京)有限公司 | 信息处理方法及装置 |
CN108241647A (zh) * | 2016-12-23 | 2018-07-03 | 北京奇虎科技有限公司 | 数据处理及查询的方法和装置 |
Non-Patent Citations (1)
Title |
---|
周志光 ; 孙畅 ; 乐丹丹 ; 石晨 ; 刘玉华 ; .多维时空数据协同可视分析方法.计算机辅助设计与图形学学报.2017,(12),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111090705A (zh) | 2020-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111090705B (zh) | 一种多维数据处理方法、装置及设备、存储介质 | |
CN106528787B (zh) | 一种基于海量数据多维分析的查询方法及装置 | |
EP2858025B1 (en) | An order book management device in a hardware platform | |
CN113297278B (zh) | 时序数据库、数据处理方法、存储设备及计算机程序产品 | |
CN109144791A (zh) | 数据转存方法、装置和数据管理服务器 | |
CN109344316B (zh) | 新闻热度计算方法及装置 | |
US20240078234A1 (en) | Apparatus, method and storage medium for database pagination | |
CN117633105A (zh) | 基于时间分区索引的时序数据存储管理方法及系统 | |
US9026523B2 (en) | Efficient selection of queries matching a record using a cache | |
CN111061758A (zh) | 数据存储方法、装置及存储介质 | |
US8539492B1 (en) | Managing data dependencies among multiple jobs using separate tables that store job results and dependency satisfaction | |
CN110858210B (zh) | 数据查询方法及装置 | |
US10719497B2 (en) | Utilization of optimized ordered metadata structure for container-based large-scale distributed storage | |
CN111125499A (zh) | 数据查询方法及装置 | |
US20160210237A1 (en) | Storage device, data access method, and program recording medium | |
CN113849523A (zh) | 一种数据查询方法、设备及介质 | |
CN107430633B (zh) | 用于数据存储的系统及方法和计算机可读介质 | |
CN112597151A (zh) | 数据处理方法、装置、设备和存储介质 | |
US20230153286A1 (en) | Method and system for hybrid query based on cloud analysis scene, and storage medium | |
CN111177077A (zh) | 数据存储及数据查询方法、装置、设备、介质 | |
CN111190949B (zh) | 数据存储及处理方法、装置、设备、介质 | |
CN114238258A (zh) | 数据库数据处理方法、装置、计算机设备、存储介质 | |
US10558647B1 (en) | High performance data aggregations | |
CN113742378A (zh) | 数据查询及存储方法、相关设备及存储介质 | |
US10810662B1 (en) | Utilizing time-series tables for tracking accumulating values |
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 |