CN111367966B - 对数据进行多维度统计的方法、装置和集群系统 - Google Patents

对数据进行多维度统计的方法、装置和集群系统 Download PDF

Info

Publication number
CN111367966B
CN111367966B CN202010146522.8A CN202010146522A CN111367966B CN 111367966 B CN111367966 B CN 111367966B CN 202010146522 A CN202010146522 A CN 202010146522A CN 111367966 B CN111367966 B CN 111367966B
Authority
CN
China
Prior art keywords
dimension
data
combination
target
query
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
Application number
CN202010146522.8A
Other languages
English (en)
Other versions
CN111367966A (zh
Inventor
邓琛
余加腾
丁家文
梁鹰
王刚
赵子颖
黄毓铭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianyi Digital Life Technology Co Ltd
Original Assignee
Tianyi Digital Life Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tianyi Digital Life Technology Co Ltd filed Critical Tianyi Digital Life Technology Co Ltd
Priority to CN202010146522.8A priority Critical patent/CN111367966B/zh
Publication of CN111367966A publication Critical patent/CN111367966A/zh
Application granted granted Critical
Publication of CN111367966B publication Critical patent/CN111367966B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2462Approximate or statistical queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Fuzzy Systems (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种对数据进行多维度统计的方法、装置、集群系统和存储介质。所述方法包括:对待统计数据的多个维度进行排列组合,得到多个维度组合;根据维度中的字段数量,确定目标维度;根据第一维度组合,生成第一统计指令;所述第一维度组合为包含所述目标维度的维度组合,所述第一统计指令用于指示第一分布式引擎根据所述第一维度组合,对待统计数据进行单维计算后合并统计;根据第二维度组合,生成第二统计指令;所述第二维度组合为未包含所述目标维度的维度组合,所述第二统计指令用于指示第二分布式引擎根据所述第二维度组合,对所述待统计数据进行多维数据立方统计。采用本方法能够合理利用集群资源,提高统计效率。

Description

对数据进行多维度统计的方法、装置和集群系统
技术领域
本申请涉及计算机技术领域,特别是涉及一种对数据进行多维度统计的方法、装置、集群系统和存储介质。
背景技术
在大数据时代下,数据分析在互联网产品(云盘、微信、微博)的数据运营方面的重要性日渐突出。在采集到和这些互联产品相关的数据后,对这些数据进行统计分析可以基于分布式引擎进行的,在数据统计分析中,从不同维度交叉展现数据;但是在进行多维度分析时,如果数据量巨大,会导致分布式引擎可用的资源明显减少,导致统计效率降低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够合理利用集群资源,提高统计效率的对数据进行多维度统计的方法、装置、集群系统和存储介质。
第一方面,提供一种对数据进行多维度统计的方法,所述方法包括:
对待统计数据的多个维度进行排列组合,得到多个维度组合;
根据维度中的字段数量,确定目标维度;
根据第一维度组合,生成第一统计指令;所述第一维度组合为包含所述目标维度的维度组合,所述第一统计指令用于指示第一分布式引擎根据所述第一维度组合,对待统计数据进行单维计算后合并统计;
根据第二维度组合,生成第二统计指令;所述第二维度组合为未包含所述目标维度的维度组合,所述第二统计指令用于指示第二分布式引擎根据所述第二维度组合,对所述待统计数据进行多维数据立方统计。
在一个实施例中,所述根据维度中的字段数量,确定目标维度的步骤,包括:
在所述多个维度中,将字段数量最少的维度确定为所述目标维度。
在一个实施例中,还包括:
将各个维度组合的统计结果作为查询值;
将所述各个维度组合中的字段转换为字符串;
根据所述字符串,生成查询键;
根据所述查询键和所述查询值,生成查询键值对;
若接收到查询指令,在确定与所述查询指令对应的目标查询键后,确定对应的目标查询键值对;
输出所述目标查询键值对中的查询值。
在一个实施例中,所述将所述各个维度组合中的字段转换为字符串的步骤,包括:
根据预设的转换规则,确定待转换的字段;
利用消息摘要算法,将所述各个维度组合中的待转换的字段转换为散列值,将所述散列值作为所述字符串。
在一个实施例中,所述将所述各个维度组合中的字段转换为字符串,根据所述字符串,生成查询键的步骤,包括:
在所述各个维度组合中添加预留字段,将所述预留字段转换为对应的字符串,生成查询键;
确定与查询指令对应的目标查询键的步骤,包括:
当接收到的查询指令包括新增维度时,将所述新增维度中的字段与所述预留字段对应,将根据所述预留字段生成的查询键,作为目标查询键。
在一个实施例中,还包括:
根据源数据的完整性和异常性,对所述源数据进行处理,得到待统计数据;
从与所述源数据对应的维度中,确定多个维度;
将所确定的多个维度和对应的待统计数据存放至中间表中;所述中间表用于向所述第一分布式引擎和所述第二分布式引擎提供所述待统计数据。
第二方面,提供一种对数据进行多维度统计的装置,所述装置包括:
排列组合模块,用于对待统计数据的多个维度进行排列组合,得到多个维度组合;
目标维度确定模块,用于根据维度中的字段数量,确定目标维度;
第一指令生成模块,用于根据第一维度组合,生成第一统计指令;所述第一维度组合为包含所述目标维度的维度组合,所述第一统计指令用于指示第一分布式引擎根据所述第一维度组合,对待统计数据进行单维计算后合并统计;
第二指令生成模块,用于根据第二维度组合,生成第二统计指令;所述第二维度组合为未包含所述目标维度的维度组合作为第二维度组合,所述第二统计指令用于指示第二分布式引擎根据所述第二维度组合,对所述待统计数据进行多维数据立方统计。
第三方面,一种对数据进行多维度统计的集群系统,包括调配中心,第一分布式引擎和第二分布式引擎;
所述调配中心,用于对多个维度进行排列组合,得到多个维度组合,根据维度中的字段数量,确定目标维度,将包含所述目标维度的维度组合作为第一维度组合,将未包含所述目标维度的维度组合作为第二维度组合,根据所述第一维度组合和所述第二维度组合,生成对应的第一统计指令和第二统计指令;
所述第一分布式引擎,用于在接收到所述调配中心发送的第一统计指令后,根据所述第一维度组合,对待统计数据进行单维计算后合并统计;
所述第二分布式引擎,用于在接收到所述调配中心发送的第二统计指令后,根据所述第二维度组合,对所述待统计数据进行多维数据立方统计。
在一个实施例中,调度中心包括存储设备;
所述存储设备,用于接收所述第一分布式引擎和所述第二分布式引擎将得到的统计结果,将各个维度组合的统计结果作为查询值,将所述各个维度组合中的字段转换为字符串,并根据所述字符串,生成查询键,根据所述查询键和所述查询值,生成查询键值对;
所述存储设备,还用于在接收到查询指令,并确定与所述查询指令对应的目标查询键后,确定对应的目标查询键值对,输出所述目标查询键值对中的查询值
第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
对待统计数据的多个维度进行排列组合,得到多个维度组合;
根据维度中的字段数量,确定目标维度;
根据第一维度组合,生成第一统计指令;所述第一维度组合为包含所述目标维度的维度组合,所述第一统计指令用于指示第一分布式引擎根据所述第一维度组合,对待统计数据进行单维计算后合并统计;
根据第二维度组合,生成第二统计指令;所述第二维度组合为未包含所述目标维度的维度组合,所述第二统计指令用于指示第二分布式引擎根据所述第二维度组合,对所述待统计数据进行多维数据立方统计。
上述对数据进行多维度统计的方法、装置、集群系统和存储介质,调度中心根据字段数量确定目标维度,并根据包括目标维度的第一维度组合生成第一统计指令,根据未包括目标维度组合生成第二统计指令,合理拆分统计维度,使得第一分布式引擎和第二分布式引擎可以分别根据第一统计指令和第二统计指令进行数据统计,合理利用集群资源,提高统计效率。
附图说明
图1为一个实施例中对数据进行多维度统计的网络架构图;
图2a为一个实施例中用户在云盘注册的示意图;
图2b为一个实施例中注册信息的示意图;
图3为一个实施例中对数据进行多维度统计的方法的流程示意图;
图4为另一个实施例中对数据进行多维度统计的网络架构图;
图5为另一个实施例中对数据进行多维度统计的方法的流程示意图;
图6为一个实施例中对数据进行多维度统计的装置的结构框图;
图7为一个实施例中集群系统中各个设备的内部结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本申请所描述的实施例可以与其它实施例相结合。
图1示出本申请一个实施例中的网络架构图。如图1所示,该网络架构包括调度中心102、数据统计集群,其中,调度中心102可以是电脑(如图1所示)、手机等设备,数据统计集群可以包括分布式引擎,分布式引擎可以是Hive、Impala、Spark SQL、Presto、Flink Sql等中的任一种或多种,在一种实现方式中,分布式引擎包括第一分布式引擎104和第二分布式引擎106,第一分布式引擎104和第二分布式引擎106可以是相同的分布式引擎,例如都是Hive,第一分布式引擎104和第二分布式引擎106也可以是不同的分布式引擎,例如第一分布式引擎104为Impala、第二分布式引擎106为Hive。
在本申请提供的对数据进行多维度统计的方法中,调度中心可以根据维度中的字段数量,确定目标维度,从多个维度组合中选取包含目标维度的第一维度组合,从多个维度组合中选取未包含目标维度的第二维度组合,并分别根据第一维度组合和第二维度组合生成第一统计指令和第二统计指令,然后将第一统计指令发送至第一分布式引擎,将第二统计指令发送至第二分布式引擎;响应于第一统计指令,第一分布式引擎对待统计数据进行单维计算后合并统计;响应于第二统计指令,第二分布式引擎对待统计数据进行多维数据立方统计。
需要说明的是,本申请提供的对数据进行多维度统计的方法可以用于对应用软件(application,APP)中的用户数据进行统计。
以应用软件为云盘作为例子,介绍用户数据。在该应用场景中,用户使用的终端是安卓端,如华为、小米等手机,如果用户Andy第一次使用云盘,需要先进行用户注册,图2a示出用户点击“注册”控件进行注册;Andy在点击注册控件后,响应于用户触发的注册指令,手机可以跳转至注册信息填写的页面,图2b示出注册信息填写页面需要填写的用户数据,如用户名、手机号码、省份和城市等,手机在采集到Andy输入的注册信息后,将注册信息发送至云端服务器,此时云端服务器可以先对用户的注册信息进行分析,确定Andy的终端是安卓端,并根据接收到的注册信息生成唯一的用户ID,将该用户ID返回至安卓端,并将生成用户ID的时间(如图1所示的2020年3月2号)作为创建时间,云端服务器根据注册信息、用户ID、创建时间和安卓端,生成针对于Andy的日志文件,日志文件中包含的字段内容如表1所示。
表1
维度 字段 维度 字段
用户ID 143259 客户端 安卓端
用户名 Andy 省份 广东省
手机号 149****3489 地市 广州市
创建时间 2020.3.2 …… ……
可以理解的是,针对用户Lily来说,日志文件中的字段内容是不同的,例如省份是海南省,但是“广东省”和“海南省”这两个字段都是和从省份这个维度对应的,也就是说,每个维度包括的字段有多个。
在传统技术中,进行数据分析的时候,一般是基于分布式引擎进行的,例如只使用Impala,在数据量少的情况下,分布式引擎的运算资源足够支撑数据统计,但是如果数据量增多,分布式引擎的运算资源不足,出现内存溢出,导致统计效率较低。进一步地,在另一种情况中,就算使用两个Impala分布式引擎,但还是无法避免内存溢出,统计效率低的情况。基于此,本申请提出的对数据进行多维统计的方法,包括先进行维度组合的区分,将区分后的维度组合分别交由两种不同的分布式引擎进行对应的统计计算,可以合理利用集群资源,提高统计效率。
图3示出本申请一个实施例中的对数据进行多维度统计的方法。现结合图1的网络架构具体介绍该方法。
步骤S302,对待统计数据的多个维度进行排列组合,得到多个维度组合。
待统计数据可以是调度中心从应用软件服务器上获取到的日志文件,日志文件可以是针对于多个用户的文件,日志文件中的字段内容都有对应的维度,例如“省份”“地市”“客户端”等。
调度中心102在获取到日志文件后,对日志文件中的多个维度进行排列组合,得到多个维度组合。以维度包括省份、地市和客户端为例介绍,调度中心对这几个维度进行排列组合,可以得到7种维度组合,如表2所示。需要说明的是,调度中心也可以从7种维度组合中剔除3种维度组合,得到4种维度组合。
表2
维度组合1 省份
维度组合2 地市
维度组合3 客户端
维度组合4 省份+地市
维度组合5 省份+客户端
维度组合6 地市+客户端
维度组合7 省份+地市+客户端
在一种实施方式中,调度中心在获取到待统计数据之前,可以先对源数据进行数据预处理,得到待统计数据,对源数据进行数据预处理可以是根据源数据的完整性和异常性进行处理的;然后调度中心从与源数据对应的维度中,选择多个维度,将选择的多个维度和对应的待统计数据存放至中间表中。在这种情况下,第一分布式引擎和第二分布式引擎可以根据中间表,获取待统计数据。
在上述实施方式中,先对源数据进行预处理,可以确保统计的准确性,避免出现统计误差;并且从与源数据对应的维度中选择多个维度,将选择的多个维度和待统计数据存入中间表中,选取所需内容,节省运算资源的同时,可以进一步提高统计效率,也提升了维护的简便性。
步骤S304,根据维度中的字段数量,确定目标维度。
调度中心在对多个维度进行排列组合得到多个维度组合之后,获取各个维度包括的字段,确定各个维度的字段数量,根据字段数量确定目标维度。其中,调度中心根据字段数量确定目标维度的方式可以是:将字段数量最少的维度作为目标维度,可以减少统计数量,提高统计效率,或者,选取字段数量处于预设范围内的维度,从选取的维度中随机挑选出一个或多个维度作为目标维度。
例如,表3示出省份、地市和客户端包括的字段,从表3中可以看出,省份、地市和客户端的字段数量分别为3、7和2,因此,字段数量最少的维度是客户端,在一种情况中,调度中心可以将客户端作为目标维度;在另一种情况中,如果预设范围是0~4,那么调度中心可以从中选取符合预设范围的省份和客户端这两个字段,然后随机挑选一个维度作为目标维度,或者将这两个维度都作为目标维度。
表3
省份 广东省、海南省、福建省
地市 广州、深圳、珠海、茂名、海口、福州、漳州
客户端 安卓端、苹果端
步骤S306,根据第一维度组合,生成第一统计指令。
调度中心在确定目标维度后,从多个维度组合中选取包含目标维度的维度组合,即第一维度组合,然后根据第一维度组合生成第一统计指令。以目标维度为客户端为例,从表2中可以看出,维度组合3、5、6和7包括客户端这个目标维度,因此,调度中心根据维度组合3、5、6和7,生成第一统计指令。
调度中心在生成第一统计指令之后,将第一统计指令发送至第一分布式引擎,第一分布式引擎接收到第一统计指令后,响应于第一统计指令,对日志文件中的数据进行单维计算后合并统计,得到统计数据。其中,第一分布式引擎对日志文件中的数据进行单维计算后合并统计可以理解为:第一分布式引擎分别根据省份、地市和客户端进行统计,然后根据维度组合3、5、6和7进行合并,得到统计结果,例如,维度组合7中包括省份、地市和客户端,那么第一分布式引擎将与省份、地市和客户端对应的数据进行合并,得到维度组合7的统计结果。
步骤S308,根据第二维度组合,生成第二统计指令。
调度中心在确定目标维度后,从多个维度组合中选取未包含目标维度的维度组合,即第二维度组合,然后根据第二维度组合生成第二统计指令。以目标维度为客户端为例,从表2中可以看出,维度组合1、2和4没有包括客户端这个目标维度,因此,调度中心根据维度组合1、2和4,生成第二统计指令。
调度中心在生成第二统计指令之后,将第二统计指令发送至第二分布式引擎,第二分布式引擎接收到第二统计指令后,响应于第二统计指令,对日志文件中的数据进行多维数据立方统计,得到统计结果。其中,第二分布式引擎进行多维数据立方统计可以理解:直接根据维度组合进行统计的过程,例如,维度组合7包括省份、地市和客户端,第二分布式引擎直接根据这三个维度进行统计,得到统计结果。
上述对数据进行多维度统计的方法中,调度中心根据字段数量确定目标维度,并根据包括目标维度的第一维度组合生成第一统计指令,根据未包括目标维度组合生成第二统计指令,合理拆分统计维度,使得第一分布式引擎和第二分布式引擎可以分别根据第一统计指令和第二统计指令进行数据统计,合理利用集群资源,提高统计效率。
图4示出本申请另一个实施例中的网络架构图。如图4所示,在该网络架构中,调度中心102可以包括调度设备1022和存储设备1024;其中,调度设备1022用于确定目标维度,生成第一统计指令和第二统计指令,并向第一分布式引擎和第二分布式引擎分别发送第一统计指令和第二统计指令;其中,调度设备和第一分布式引擎、第二分布式引擎之间的交互可以参照上述实施例的描述,这里不赘述;存储设备1024用于存储第一分布式引擎和第二分布式引擎统计得到的统计结果;调度设备和存储设备之间的交互可以是:调度设备向存储设备发送查询指令,存储设备响应于该查询指令,向调度设备发送对应的查询值。其中,调度设备1022可以是电脑(如图4所示)、手机等设备,存储设备可以是数据库(如图4所示),数据库可以是MySQL、HBase等。
图5示出本申请另一个实施例中的对数据进行多维度统计的方法,现结合图4的网络架构图并以HBase为存储设备介绍该方法。
步骤S502,调度设备获取源数据。
步骤S504,调度设备获取到源数据后,对源数据进行数据预处理,得到待统计数据。
在本步骤中,为了提高数据统计分析的准确性,可以先对数据进行预处理技术,避免源数据在传输过程中出现错误导致统计出错的情况。
在对数据进行预处理时,可以从源数据的完整性和异常性两个角度进行,具体地:
(1)完整性角度:如果源数据比较大,按照存储大小拆分成两个子文件进行传输,存在同一行数据被切割在两个文件的情况。如果直接将源数据作为待统计数据,则会造成计算错误,导致误差。
在一些实施方式中,调度设备可以先把每个子文件的第一行和最后一行提取出来,然后按顺序进行追加合并。比如每个子文件的按顺序命名为001,002等等,取出每个子文件首行和尾行后,把002号文件的第一行提取出来追加合并到001号文件最后一行的末尾;对于两行都是完整的数据来说,每行末尾都存在分隔符,因此加载的时候会被识别为两行完整的数据,以此类推。通过对文件的拆分和合并以确保数据的完整性。
(2)异常性角度:可以剔除不符合预设维度规则的异常数据,例如,根据手机号这个维度,其预设规则是首位为1且为11位的数字,如果手机号这个维度对应的字段是“广东省”,则判定该数据为异常数据,剔除该异常数据。另外,对字段缺失的数据进行替换处理,例如某个维度对应的字段为NULL或者为空,则直接‘-’来替换,以便将该字段默认为无法获取的字段,方便后续统计。
步骤S506,调度设备从源数据对应的维度中选取多个维度,创建中间表。
如果源数据涵盖了较多内容,但是在不同的业务统计分析中,需要的维度有所不同,如果对源数据的全部维度都进行统计分析,则会降低统计效率。本步骤可以从源数据包括的全部维度中选取需要的维度,通过垂直拆表的技术,将选择的维度存放在中间表中。
垂直拆表是对数据表进行垂直拆分的一种方式,常见是把一个多字段的大表根据不同的数据需求按常用字段和非常用字段进行拆分,每个表里面的数据记录数一般情况下是相同的,只是字段不一样,使用主键关联。
通过垂直拆表的技术将需要的维度抽取出来,存放到中间表中可以节省统计时间,节省了运算资源,并且维度较少的中间表在后期维护也比较简单,提升了维护的简便性。
在一种应用场景中,虽然选取维度创建中间表,可以减少需要统计的数据,但是也不排除数据仍然很大的情况,此时,调度设备可以对维度进行细分,进一步减少需要统计的数据。其中在进行维度细分时,可以基于以下原则进行考虑:
(1)如果每天都需进行统计,则进行统计分析的时间维度可以忽略。
(2)业务层面上的层级关系字段:从业务上来看省份和地市是层级关系,单独计算城市是没有意义的,所以在维度中地市必须和省份同时出现;
(3)从数据内容来分析字段:结合前面2点后对剩余的字段进行分组去重(groupby和distinct),查看各个字段与其他字段的内容的交叉度和去重组合。对数据摸查和观察一段时间的数据后,对比发现行为大类和行为小类有部分重合,比如通过外部邮箱登录可能只出现能力开放中,从这份数据中可以得出行为,产品和行为类型有部分依赖关系,比如某行为类型只对应某单个产品;
通过以上3点原则,可以剔除很多不必要的维度,减少需要统计的数据,提高统计效率。
步骤S508,调度设备根据确定的目标维度,区分维度组合,得到第一维度组合和第二维度组合,并生成对应第一统计指令和第二统计指令。
步骤S510,调度设备分别向第一分布式引擎和第二分布式引擎发送第一统计指令和第二统计指令。
其中,对步骤S508-S510的具体描述,可以参见步骤S302-S308的介绍,这里不赘述。
步骤S512,第一分布式引擎和第二分布式引擎响应于对应的统计指令,进行统计后,将得到的统计结果发送至存储设备。
步骤S514,存储设备在接收到统计结果后,将统计结果作为查询值,将维度组合中的字段转换为字符串,根据字符串生成查询键,进而根据查询键和查询值生成查询键值对。
存储设备是根据键值对的方式对数据进行存储,如果直接以维度中的字段作为键,由于各个字段的形式不一致,有的是文字,有的是字母,导致后期不易维护。基于此,本步骤中,存储设备可以随机选取将维度组合中的任一或多个字段,并将选取的字段转换为字符串,例如维度组合7中的字段是“广东,广州,安卓端”,存储设备可以随机选取“广东,广州”这两个字段,将这两个字段转换为字符串“1sf45698d”;存储设备还可以选取全部的字段,即将“广东,广州,安卓端”转换为字符串“2sf45698d”,根据字符串得到查询键。在一种可能方式中,存储设备可以直接将该字符串作为查询键,提高查询键的生成效率,在另一种可能的方式中,存储设备可以根据预定的格式,对字符串进行处理,得到查询键,例如,预定的格式是“时间-字符串”,此时,存储设备将时间和字符串进行组合,得到的查询键为“20200302-2sf45698d”。存储设备在得到查询键后,将查询键和查询值进行关联,得到查询键值对。在另一种可能方式中,还可以对时间进行分类,如:日、周、月,对应的类码是:1,2,3,此时预定的格式可以为“时间-类码-字符串”。
在另一种实施方式中,存储设备在接收到统计结果后,可以利用预设的转换规则,确定待转换的字段,例如预设的转换规则是:省份、地市和客户端的字段,此时,存储设备根据该转换规则,确定维度组合7中“广东,广州,安卓端”为待转换字段;存储设备在确定待转换字段后,利用消息摘要算法,将维度组合中的待转换的字段转换为散列值,将散列值作为字符串,其中消息摘要算法可以是MD5消息摘要算法。
在上述实施方式中,存储设备根据预设的转换规则确定待转换的字段,使得用户可以按照实际情况设置,提高统计的灵活性;并且利用消息摘要算法进行转换,进一步保证得到的字符串具有唯一性。
步骤S516,存储设备在接收到调度设备发送的查询指令后,响应于该查询指令,存储设备确定与查询指令对应的目标查询键,确定对应的目标查询键值对。
调度设备在接收到用户的输入信息(如“广东,广州,安卓端”)后,根据TCP/IP等传输协议的格式,将输入信息加载到数据包中,得到查询指令,然后向存储设备发送该查询指令;存储设备接收到查询指令后,提取其中的输入信息“广东,广州,安卓端”,将该输入信息转换为对应的字符串“20200302-2sf45698d”,确定和输入信息对应的查询键,进而确定对应的查询键值对。
步骤S518,存储设备在确定对应的目标查询键值对后,得到对应的查询值,并向调度设备发送目标查询键值对中的查询值。
存储设备在确定对应的查询键值对后,可以根据查询键和查询值之间的关联关系,得到查询值,并向调度设备发送该查询值。
在上述实施例中,存储设备将维度中的字段转换为字符串,并根据字符串得到查询键,构建查询键值对,简便了后期的维护。
在一些应用场景中,如果用户要新增维度,针对新增维度中的全部字段进行统计,如“广东,广州,安卓端,不区分运营商”,可见用户新增了运营商这个维度并且不区分运营商的字段(如移动,电信,联通等字段)。在这种情况下,“广东,广州,安卓端”和“广东,广州,安卓端,不区分运营商”的统计结果其实都是一样的,但是由于将字段转换为字符串,二者的字符串不同,如“广东,广州,安卓端”的字符串是“20200302-2sf45698d”,“广东,广州,安卓端,不区分运营商”的字符串是“20200302-09hj5698d”,此时用户如果输入“广东,广州,安卓端,不区分运营商”,则无法得到对应的统计结果。基于此,存储设备还可以根据预设的预留机制,以应对后续的新增维度的统计;具体地,存储设备在维度组合中添加预留字段,如“ALL”字段,对应得到“广东,广州,安卓端,ALL”,然后将预留字段和维度组合中的其他字段一起转换为字符串,得到查询键;如果查询设备接收到到的查询指令中包括新增维度时,将新增维度的字段与预留字段对应,进而确定对应的查询键,如存储设备从查询指令中提取的输入信息是“广东,广州,安卓端,不区分运营商”,此时,可以将“不区分运营商”这个字段与预留字段“ALL”对应,然后对“广东,广州,安卓端,ALL”进行转换,确定对应的字符串,得到对应的查询键,确定目标查询键值对,得到查询值。
在上述实施例中,存储设备在维度组合中添加预留字段,使得后续接收到针对新增维度的全部字段的查询指令时,可以得到对应的查询值,提高查询统计的灵活性。
应该理解的是,虽然图3-5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图3-5中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种对数据进行多维度统计的装置600,包括:排列组合模块602、目标维度确定模块604、第一指令生成模块606和第二指令生成模块608,其中:
排列组合模块602,用于对待统计数据的多个维度进行排列组合,得到多个维度组合;
目标维度确定模块604,用于根据维度中的字段数量,确定目标维度;
第一指令生成模块606,用于根据第一维度组合,生成第一统计指令;第一维度组合为包含目标维度的维度组合,第一统计指令用于指示第一分布式引擎根据第一维度组合,对待统计数据进行单维计算后合并统计;
第二指令生成模块608,用于根据第二维度组合,生成第二统计指令;第二维度组合为未包含目标维度的维度组合作为第二维度组合,第二统计指令用于指示第二分布式引擎根据第二维度组合,对待统计数据进行多维数据立方统计。
在一个实施例中,目标维度确定模块604,还用于在多个维度中,将字段数量最少的维度确定为目标维度。
在一个实施例中,对数据进行多维度统计的装置600,还包括:查询值确定模块,用于将各个维度组合的统计结果作为查询值;字段转换模块,用于将各个维度组合中的字段转换为字符串;查询键生成模块,用于根据字符串,生成查询键;键值对生成模块,用于根据查询键和查询值,生成查询键值对;键值对确定模块,用于若接收到查询指令,在确定与查询指令对应的目标查询键后,确定对应的目标查询键值对;查询值输出模块,用于输出目标查询键值对中的查询值。
在一个实施例中,字段转换模块,还用于根据预设的转换规则,确定待转换的字段;利用消息摘要算法,将各个维度组合中的待转换的字段转换为散列值,将散列值作为字符串。
在一个实施例中,字段转换模块和查询键生成模块,还用于在各个维度组合中添加预留字段,将预留字段转换为对应的字符串,生成查询键;键值对确定模块,还用于当接收到的查询指令包括新增维度时,将新增维度中的字段与预留字段对应,将根据预留字段生成的查询键,作为目标查询键。
在一个实施例中,对数据进行多维度统计的装置600,还用于根据源数据的完整性和异常性,对源数据进行处理,得到待统计数据;从与源数据对应的维度中,确定多个维度;将所确定的多个维度和对应的待统计数据存放至中间表中;中间表用于向第一分布式引擎和第二分布式引擎提供待统计数据。
关于对数据进行多维度统计的装置的具体限定和有益效果,可以参见上文中对于对数据进行多维度统计的方法的限定,在此不再赘述。上述对数据进行多维度统计的装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
本申请对数据进行多维度统计的方法可以由集群系统执行,该集群系统包括调度中心、第一分布式引擎和第二分布式引擎,集群系统中各个设备的内部结构图可以如图7所示。该包括通过系统总线连接的处理器、存储器、通信接口。其中,该计算机设备的处理器用于提供计算和控制能力。存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种对数据进行多维度统计的方法。在另一种实现方式中,调度中心还包括显示屏和输入装置,显示屏可以是液晶显示屏或者电子墨水显示屏,输入装置可以是显示屏上覆盖的触摸层,也可以是设置的物理按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
在一个实施例中,提供了一种对数据进行多维度统计的集群系统,包括调配中心,第一分布式引擎和第二分布式引擎;
调配中心,用于对多个维度进行排列组合,得到多个维度组合,根据维度中的字段数量,确定目标维度,将包含目标维度的维度组合作为第一维度组合,将未包含目标维度的维度组合作为第二维度组合,根据第一维度组合和第二维度组合,生成对应的第一统计指令和第二统计指令;
第一分布式引擎,用于在接收到调配中心发送的第一统计指令后,根据第一维度组合,对待统计数据进行单维计算后合并统计;
第二分布式引擎,用于在接收到调配中心发送的第二统计指令后,根据第二维度组合,对待统计数据进行多维数据立方统计。
在一个实施例中,调度中心包括存储设备;存储设备,用于接收第一分布式引擎和第二分布式引擎将得到的统计结果,将各个维度组合的统计结果作为查询值,将各个维度组合中的字段转换为字符串,并根据字符串,生成查询键,根据查询键和查询值,生成查询键值对;存储设备,还用于在接收到查询指令,并确定与查询指令对应的目标查询键后,确定对应的目标查询键值对,输出目标查询键值对中的查询值。
需要说明的是,上述集群系统中各设备执行的步骤与本申请对数据进行多维度统计的方法对应,上述对数据进行多维度统计的方法实施例中阐述的内容及其对应的技术效果均适用于上述的实施例中,在此不再赘述。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
对待统计数据的多个维度进行排列组合,得到多个维度组合;
根据维度中的字段数量,确定目标维度;
根据第一维度组合,生成第一统计指令;第一维度组合为包含目标维度的维度组合,第一统计指令用于指示第一分布式引擎根据第一维度组合,对待统计数据进行单维计算后合并统计;
根据第二维度组合,生成第二统计指令;第二维度组合为未包含目标维度的维度组合,第二统计指令用于指示第二分布式引擎根据第二维度组合,对待统计数据进行多维数据立方统计。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
根据维度中的字段数量,确定目标维度的步骤,包括:
在多个维度中,将字段数量最少的维度确定为目标维度。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:将各个维度组合的统计结果作为查询值;将各个维度组合中的字段转换为字符串;根据字符串,生成查询键;根据查询键和查询值,生成查询键值对;若接收到查询指令,在确定与查询指令对应的目标查询键后,确定对应的目标查询键值对;输出目标查询键值对中的查询值。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:将各个维度组合中的字段转换为字符串的步骤,包括:根据预设的转换规则,确定待转换的字段;利用消息摘要算法,将各个维度组合中的待转换的字段转换为散列值,将散列值作为字符串。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:将各个维度组合中的字段转换为字符串,根据字符串,生成查询键的步骤,包括:在各个维度组合中添加预留字段,将预留字段转换为对应的字符串,生成查询键;确定与查询指令对应的目标查询键的步骤,包括:当接收到的查询指令包括新增维度时,将新增维度中的字段与预留字段对应,将根据预留字段生成的查询键,作为目标查询键。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据源数据的完整性和异常性,对源数据进行处理,得到待统计数据;从与源数据对应的维度中,确定多个维度;将所确定的多个维度和对应的待统计数据存放至中间表中;中间表用于向第一分布式引擎和第二分布式引擎提供待统计数据。
需要说明的是,上述计算机可读存储介质中存储的计算机程序被处理器执行时,与本申请对数据进行多维度统计的方法一一对应,上述对数据进行多维度统计的方法实施例中阐述的内容及其对应的技术效果均适用于计算机可读存储介质的实施例中,在此不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种对数据进行多维度统计的方法,包括:
对待统计数据的多个维度进行排列组合,得到多个维度组合;所述待统计数据包含的字段内容对应所述多个维度;
根据维度中的字段数量,确定目标维度;所述目标维度用于将所述多个维度组合划分为第一维度组合和第二维度组合;所述目标维度为所述多个维度中字段数量最少的维度;
根据第一维度组合,生成第一统计指令;所述第一维度组合为包含所述目标维度的维度组合,所述第一统计指令用于指示第一分布式引擎根据所述第一维度组合,对待统计数据进行单维计算后合并统计;
根据第二维度组合,生成第二统计指令;所述第二维度组合为未包含所述目标维度的维度组合,所述第二统计指令用于指示第二分布式引擎根据所述第二维度组合,对所述待统计数据进行多维数据立方统计。
2.根据权利要求1所述的方法,其特征在于,所述根据维度中的字段数量,确定目标维度的步骤,包括:
在所述多个维度中,将字段数量最少的维度确定为所述目标维度。
3.根据权利要求1所述的方法,其特征在于,还包括:
将各个维度组合的统计结果作为查询值;
将所述各个维度组合中的字段转换为字符串;
根据所述字符串,生成查询键;
根据所述查询键和所述查询值,生成查询键值对;
若接收到查询指令,在确定与所述查询指令对应的目标查询键后,确定对应的目标查询键值对;
输出所述目标查询键值对中的查询值。
4.根据权利要求3所述的方法,其特征在于,所述将所述各个维度组合中的字段转换为字符串的步骤,包括:
根据预设的转换规则,确定待转换的字段;
利用消息摘要算法,将所述各个维度组合中的待转换的字段转换为散列值,将所述散列值作为所述字符串。
5.根据权利要求3所述的方法,其特征在于,所述将所述各个维度组合中的字段转换为字符串,根据所述字符串,生成查询键的步骤,包括:
在所述各个维度组合中添加预留字段,将所述预留字段转换为对应的字符串,生成查询键;
确定与查询指令对应的目标查询键的步骤,包括:
当接收到的查询指令包括新增维度时,将所述新增维度中的字段与所述预留字段对应,将根据所述预留字段生成的查询键,作为目标查询键。
6.根据权利要求1所述的方法,其特征在于,还包括:
根据源数据的完整性和异常性,对所述源数据进行处理,得到待统计数据;
从与所述源数据对应的维度中,确定多个维度;
将所确定的多个维度和对应的待统计数据存放至中间表中;所述中间表用于向所述第一分布式引擎和所述第二分布式引擎提供所述待统计数据。
7.一种对数据进行多维度统计的装置,包括:
排列组合模块,用于对待统计数据的多个维度进行排列组合,得到多个维度组合;所述待统计数据包含的字段内容对应所述多个维度;
目标维度确定模块,用于根据维度中的字段数量,确定目标维度;所述目标维度用于将所述多个维度组合划分为第一维度组合和第二维度组合;所述目标维度为所述多个维度中字段数量最少的维度;
第一指令生成模块,用于根据第一维度组合,生成第一统计指令;所述第一维度组合为包含所述目标维度的维度组合,所述第一统计指令用于指示第一分布式引擎根据所述第一维度组合,对待统计数据进行单维计算后合并统计;
第二指令生成模块,用于根据第二维度组合,生成第二统计指令;所述第二维度组合为未包含所述目标维度的维度组合作为第二维度组合,所述第二统计指令用于指示第二分布式引擎根据所述第二维度组合,对所述待统计数据进行多维数据立方统计。
8.一种对数据进行多维度统计的集群系统,包括调配中心,第一分布式引擎和第二分布式引擎;
所述调配中心,用于对多个维度进行排列组合,得到多个维度组合,根据维度中的字段数量,确定目标维度,将包含所述目标维度的维度组合作为第一维度组合,将未包含所述目标维度的维度组合作为第二维度组合,根据所述第一维度组合和所述第二维度组合,生成对应的第一统计指令和第二统计指令;
所述第一分布式引擎,用于在接收到所述调配中心发送的第一统计指令后,根据所述第一维度组合,对待统计数据进行单维计算后合并统计;
所述第二分布式引擎,用于在接收到所述调配中心发送的第二统计指令后,根据所述第二维度组合,对所述待统计数据进行多维数据立方统计。
9.根据权利要求8所述的集群系统,其特征在于,调度中心包括存储设备;
所述存储设备,用于接收所述第一分布式引擎和所述第二分布式引擎将得到的统计结果,将各个维度组合的统计结果作为查询值,将所述各个维度组合中的字段转换为字符串,并根据所述字符串,生成查询键,根据所述查询键和所述查询值,生成查询键值对;
所述存储设备,还用于在接收到查询指令,并确定与所述查询指令对应的目标查询键后,确定对应的目标查询键值对,输出所述目标查询键值对中的查询值。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
CN202010146522.8A 2020-03-05 2020-03-05 对数据进行多维度统计的方法、装置和集群系统 Active CN111367966B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010146522.8A CN111367966B (zh) 2020-03-05 2020-03-05 对数据进行多维度统计的方法、装置和集群系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010146522.8A CN111367966B (zh) 2020-03-05 2020-03-05 对数据进行多维度统计的方法、装置和集群系统

Publications (2)

Publication Number Publication Date
CN111367966A CN111367966A (zh) 2020-07-03
CN111367966B true CN111367966B (zh) 2024-04-12

Family

ID=71210278

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010146522.8A Active CN111367966B (zh) 2020-03-05 2020-03-05 对数据进行多维度统计的方法、装置和集群系统

Country Status (1)

Country Link
CN (1) CN111367966B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080172354A1 (en) * 2007-01-12 2008-07-17 International Business Machines Apparatus, system, and method for performing fast approximate computation of statistics on query expressions
CN105550270A (zh) * 2015-12-09 2016-05-04 百度在线网络技术(北京)有限公司 数据库查询方法和装置
CN109086339A (zh) * 2018-07-06 2018-12-25 深圳市彬讯科技有限公司 一种用于生成指标复合率的数据处理方法及装置
CN110704751A (zh) * 2019-10-22 2020-01-17 北京字节跳动网络技术有限公司 数据处理方法、装置、电子设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080172354A1 (en) * 2007-01-12 2008-07-17 International Business Machines Apparatus, system, and method for performing fast approximate computation of statistics on query expressions
CN105550270A (zh) * 2015-12-09 2016-05-04 百度在线网络技术(北京)有限公司 数据库查询方法和装置
CN109086339A (zh) * 2018-07-06 2018-12-25 深圳市彬讯科技有限公司 一种用于生成指标复合率的数据处理方法及装置
CN110704751A (zh) * 2019-10-22 2020-01-17 北京字节跳动网络技术有限公司 数据处理方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN111367966A (zh) 2020-07-03

Similar Documents

Publication Publication Date Title
Bruns et al. Tools and methods for capturing Twitter data during natural disasters
CN106959965B (zh) 一种信息处理方法及服务器
US9135647B2 (en) Methods and systems for flexible and scalable databases
US20210058239A1 (en) Secure aggregate sum system, secure computation apparatus, secure aggregate sum method, and program
WO2022095699A1 (zh) 底层数据管理方法、系统及计算机可读存储介质
CN110781183A (zh) Hive数据库中增量数据的处理方法、装置以及计算机设备
CN108829899B (zh) 数据表储存、修改、查询和统计方法
CN112084179B (zh) 一种数据处理的方法、装置、设备及存储介质
CN107145547A (zh) 一种异常数据的获取方法、设备及计算机可读存储介质
CN113010542B (zh) 业务数据处理方法、装置、计算机设备及存储介质
CN111367966B (zh) 对数据进行多维度统计的方法、装置和集群系统
CN111459943A (zh) 一种数据处理方法、装置、系统、设备及存储介质
CN116360769A (zh) 代码生成方法、装置、设备及存储介质
CN114840634B (zh) 信息存储方法、装置、电子设备和计算机可读介质
CN111582967A (zh) 内容搜索方法、装置、设备及存储介质
CN110781232A (zh) 数据处理方法、装置、计算机设备和存储介质
JP6915457B2 (ja) サイバー攻撃情報処理プログラム、サイバー攻撃情報処理方法および情報処理装置
CN114371884A (zh) Flink计算任务的处理方法、装置、设备和存储介质
CN109063201B (zh) 一种基于混合存储方案的impala在线交互式查询方法
CN113051231A (zh) 文件解析方法、装置、计算机设备和存储介质
CN111737759B (zh) 一种基于Hadoop平台MapReduce环境下的隐私保护方法
CN115858322A (zh) 日志数据处理方法、装置和计算机设备
CN112035471B (zh) 一种事务处理方法及计算机设备
CN113676840B (zh) 数据处理方法、装置、电子设备、存储介质和程序产品
CN113495982B (zh) 交易节点管理方法、装置、计算机设备及存储介质

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
TA01 Transfer of patent application right

Effective date of registration: 20220121

Address after: Room 1423, No. 1256 and 1258, Wanrong Road, Jing'an District, Shanghai 200040

Applicant after: Tianyi Digital Life Technology Co.,Ltd.

Address before: 1 / F and 2 / F, East Garden, Huatian International Plaza, 211 Longkou Middle Road, Tianhe District, Guangzhou, Guangdong 510630

Applicant before: Century Dragon Information Network Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant