CN112835966A - 数据查询方法、装置以及电子设备 - Google Patents
数据查询方法、装置以及电子设备 Download PDFInfo
- Publication number
- CN112835966A CN112835966A CN201911164216.0A CN201911164216A CN112835966A CN 112835966 A CN112835966 A CN 112835966A CN 201911164216 A CN201911164216 A CN 201911164216A CN 112835966 A CN112835966 A CN 112835966A
- Authority
- CN
- China
- Prior art keywords
- data
- query
- result
- fact
- dimension
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 74
- 238000012545 processing Methods 0.000 claims abstract description 46
- 238000004364 calculation method Methods 0.000 claims abstract description 34
- 230000002776 aggregation Effects 0.000 claims abstract description 16
- 238000004220 aggregation Methods 0.000 claims abstract description 16
- 238000004458 analytical method Methods 0.000 claims description 35
- 230000008569 process Effects 0.000 claims description 22
- 230000006870 function Effects 0.000 claims description 18
- 230000000007 visual effect Effects 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 8
- 238000003672 processing method Methods 0.000 claims description 7
- 238000013450 outlier detection Methods 0.000 claims description 4
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 230000004044 response Effects 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 7
- 238000005553 drilling Methods 0.000 description 4
- 230000004927 fusion Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000013468 resource allocation Methods 0.000 description 3
- 238000013079 data visualisation Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000007499 fusion processing Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
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/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据查询方法、装置以及电子设备,涉及数据处理技术领域,解决了数据查询的响应速度较慢的技术问题。该方法包括:加载来自多种数据源的原始数据,对所述原始数据进行ETL处理,并生成事实表、维度表和事实明细表;基于Kubernetes集群对所述事实表和所述维度表进行聚合计算,生成结果表,并基于所述事实明细表将所述结果表保存至关系型数据库;基于关系型数据库和热点数据键值缓存,对所述结果表进行查询,并返回查询结果。
Description
技术领域
本申请涉及数据处理技术领域,尤其是涉及一种数据查询方法、装置以及电子设备。
背景技术
随着信息化的不断发展,数据生成速度也在提高,使数据量规模增大。需要处理的数据量急速增长,导致数据处理的时间增长,影响数据处理的效率。目前,在面对海量数据时,可以先从海量数据中进行数据查询,然后再进行数据处理,以提高数据处理的效率。
但是,随着互联网的快速发展,各行业的用户流量数据量也快速的增长,数据的来源和格式也趋于多样化发展,因此会影响数据查询的过程,使目前的数据查询方法的查询响应速度较慢。
发明内容
本发明的目的在于提供一种数据查询方法、装置以及电子设备,以解决数据查询的响应速度较慢的技术问题。
第一方面,本申请实施例提供了一种数据查询方法,包括:
加载来自多种数据源的原始数据,对所述原始数据进行抽取-转换-加载(Extract-Transform-Load,简称ETL)处理,并生成事实表、维度表和事实明细表;
基于Kubernetes集群对所述事实表和所述维度表进行聚合计算,生成结果表,并基于所述事实明细表将所述结果表保存至关系型数据库;
基于关系型数据库和热点数据键值缓存,对所述结果表进行查询,并返回查询结果。
在一个可能的实现中,加载来自多种数据源的原始数据,对所述原始数据进行ETL处理,并生成事实表、维度表和事实明细表的步骤,包括:
加载来自多种数据源的原始数据,并将所述原始数据保存至蜂巢数据仓库;
对所述原始数据进行ETL处理和格式化处理,获得整理后数据;
基于所述整理后数据提取事实表、维度表和事实明细表,进行维度建模,并以星型模型组织数据,保存至所述蜂巢数据仓库。
在一个可能的实现中,所述格式化处理包括:字段统一、异常点检测、空值处理中的至少一种。
在一个可能的实现中,基于Kubernetes集群对所述事实表和所述维度表进行聚合计算,生成结果表,并基于所述事实明细表将所述结果表保存至关系型数据库的步骤,包括:
基于Kubernetes集群,根据所述事实明细表中事实表的数量和规模,动态生成Spark任务的参数值;
执行所述Spark任务,对所述事实表和所述维度表进行聚合计算,生成结果表;
通过Spark应用程序接口(Application Programming Interface,简称API)将所述结果表传输到关系型数据库。
在一个可能的实现中,基于关系型数据库和热点数据键值缓存,对所述结果表进行查询,并返回查询结果的步骤,包括:
接收来自前端页面的查询条件,并将所述查询条件排序,取哈希值作为查询键值;
利用所述查询键值在所述热点数据键值缓存中查询;
如果检索到,则生成检索结果;
如果未检索到,则将所述查询键值转换成结构化查询语言语句,基于所述结构化查询语言语句在所述关系型数据库中进行查询,生成检索结果;
将所述检索结果返回到前端页面。
在一个可能的实现中,将所述检索结果返回到前端页面的步骤之后,还包括:
根据所述查询键值和所述检索结果,采用最近最少使用策略更新所述键值缓存。
第二方面,提供了一种数据处理方法,包括上述第一方面所述的数据查重方法中的步骤以及如下步骤:
通过托拉拽的方式,选择维度和计算函数;
利用所选择的维度和计算函数,对所述数据查询方法中的查询结果进行联机分析处理(Online Analytical Processing,简称OLAP)分析,生成分析结果;
将所述分析结果以可视化报表的形式展现。
第三方面,提供了一种数据查询装置,包括:
加载模块,用于加载来自多种数据源的原始数据;
处理模块,用于对所述原始数据进行ETL处理,并生成事实表、维度表和事实明细表;
计算模块,用于基于Kubernetes集群对所述事实表和所述维度表进行聚合计算,生成结果表;
保存模块,用于并基于所述事实明细表将所述结果表保存至关系型数据库;
查询模块,用于基于关系型数据库和热点数据键值缓存,对所述结果表进行查询,并返回查询结果。
第四方面,提供了一种数据处理装置,包括上述第三方面所述的数据查询装置中的模块以及如下模块:
选择模块,用于通过托拉拽的方式,选择维度和计算函数;
分析模块,用于利用所选择的维度和计算函数,对所述数据查询方法中的查询结果进行OLAP分析,生成分析结果;
展现模块,用于将所述分析结果以可视化报表的形式展现。
第五方面,本申请实施例又提供了一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的第一方面或第二方面所述方法。
第六方面,本申请实施例又提供了一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行上述的第一方面或第二方面所述方法。
本申请实施例带来了以下有益效果:
本申请实施例提供的一种数据查询方法、装置以及电子设备,能够加载来自多种数据源的原始数据,并对这些原始数据进行ETL处理,生成事实表、维度表和事实明细表,再基于Kubernetes集群对该事实表和该维度表进行聚合计算从而生成结果表,并基于事实明细表将该结果表保存至关系型数据库,之后再基于该关系型数据库和热点数据键值缓存,对结果表进行查询以返回查询结果,通过基于Kubernetes集群进行处理数据,将来自多种数据源的原始数据进行融合和计算,同时引入基于热点数据键值的分布式缓存,提升了查询性能,以快速的得到查询结果,从而解决了数据查询的响应速度较慢的技术问题。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种数据查询方法的流程示意图;
图2为本申请实施例中各个模块的示意图;
图3为本申请实施例提供的多源数据融合过程的流程示意图;
图4为本申请实施例提供的分布式计算过程的流程示意图;
图5为本申请实施例提供的数据查询过程的流程示意图;
图6为本申请实施例提供的一种数据处理方法的流程示意图;
图7为本申请实施例提供的一种数据查询装置的结构示意图;
图8为示出了本申请实施例所提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,OLAP是一种软件技术,它使分析人员能够迅速、一致、交互的从各个方面观察信息,以达到深入理解数据的目的,OLAP具有共享多维信息的快速分析(FastAnalysis of Shared Multidimensional Information,简称FASMI)的特征。
目前,传统的OLAP分析技术主要依托于存储在数据库中事实表和维度表构建的数据立方体,进行上卷、下钻、切片、切块等操作。在海量数据的场景下,产生出了依托于海杜普(Hadoop Distributed File System,简称Hadoop)分布式***基础架构的解决方案,基于数据仓库基础构架(Hive)构建OLAP分析平台,将ETL和查询任务转换为编程模型(MapReduce)批处理任务,整体的资源调度则由另一种资源协调者(Yarn)实现,然后将计算结果传输到关系型数据库中,供用户使用。
需要说明的是,Apache Kylin是一个基于Hadoop的OLAP引擎,采用基于维度进行“预计算”的方式,通过空间换时间的思想,将存在的所有维度进行计算生成中间结果传输到分布式的、面向列的开源数据库(HBase)中,以满足用户查询分析历史与实时数据的需求。
但是,目前的OLAP技术方案存在较多的问题,基于关系型数据库的传统OLAP分析方法***在功能需求、存储能力和计算性能方面已无法满足用户的需求。例如,随着数据的规模的增长、大数据量计算和存储性能存在着资源消耗成本高、ETL、聚合计算过程较慢。而且,OLAP查询的响应速度也较慢。再者,开源分布式分析引擎(Kylin)预计算的方式会导致很多临时中间表和数据规模随着维度的增加而呈指数增长,导致预计算的时间和空间消耗较大,但部分冷点数据却使用较少,造成计算和存储资源的浪费。
再者,随着互联网的快速发展,各行业的用户流量数据量也快速的增长,数据的来源和格式也趋于多样化发展,因此会影响OLAP的数据查询的过程,使目前的OLAP数据查询方法的查询响应速度较慢。
基于此,本申请实施例提供了一种数据查询方法、装置以及电子设备,通过该方法可以解决查询的响应速度较慢的技术问题。
下面结合附图对本发明实施例进行进一步地介绍。
图1为本申请实施例提供的一种数据查询方法的流程示意图。如图1所示,该方法包括:
S110,加载来自多种数据源的原始数据,对原始数据进行ETL处理,并生成事实表、维度表和事实明细表。
本步骤中,可以将来自多种数据源的不同规格的数据进行ETL处理,以整合成统一格式的规格化数据,并计算生成事实表、维度表和事实明细表。
其中,事实表存储于数据库中,事实表通常包含大量的行,用于记录真实发生事件的数字性的信息。每个事实表中可以包含一个由多个部分组成的索引,该索引包含作为外键的相关性维度表的主键,而维度表包含事实记录的特性。事实表中一般不包含描述性的信息,也不包含除数字度量字段及使事实与维度表中对应项的相关索引字段之外的任何数据。
维度表可以作为用户分析数据的窗口,维度表中包含事实数据表中事实记录的特性,有些特性提供描述性信息,有些特性指定如何汇总事实数据表数据,以便为分析者提供有用的信息,维度表包含帮助汇总数据的特性的层次结构。
需要说明的是,事实明细表用于记录上述事实表的数量大小和上述事实表的存储规模。
S120,基于Kubernetes集群对事实表和维度表进行聚合计算,生成结果表,并基于事实明细表将结果表保存至关系型数据库。
其中,Kubernetes是一个开源的、用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效,Kubernetes提供了应用部署,规划,更新,维护的一种机制。
需要说明的是,Spark是一种开源集群计算环境,Spark启用了内存分布数据集,能够提供交互式查询以及优化迭代工作负载。
本步骤中,可以使用Kubernetes调度Spark分布式任务,对步骤S110中生成的事实表进行聚合计算,生成结果表,基于事实明细表将结果表存放到关系型数据库。
S130,基于关系型数据库和热点数据键值缓存,对结果表进行查询,并返回查询结果。
通过基于Kubernetes集群进行处理数据,将来自多种数据源的原始数据进行融合和计算,同时引入基于热点数据键值的分布式缓存,提升了查询性能,以快速的得到查询结果,从而解决了数据查询的响应速度较慢的技术问题,实现了快速的响应用户的查询需求。
下面对上述步骤进行详细介绍。
在一些实施例中,如图3所示,上述步骤S110可以包括如下步骤:
步骤S1101,加载来自多种数据源的原始数据,并将原始数据保存至蜂巢数据仓库。
步骤S1102,对原始数据进行ETL处理和格式化处理,获得整理后数据。
步骤S1103,基于整理后数据提取事实表、维度表和事实明细表,进行维度建模,并以星型模型组织数据,保存至蜂巢数据仓库。
在实际应用中,本步骤可以由多源数据融合模块来实现,如图3所示,多源数据融合模块将多源数据进行处理,生成事实表、维度表和事实明细表。
对于上述步骤S1101,示例性的,加载外部数据,其中包括线下收集数据、线上实时的半结构化日志数据、业务***的结构化数据等,将原始数据存放在Hive数据仓库***中。
对于上述步骤S1102,示例性的,对上述步骤S1101产生的结果,进行ETL预处理,选择与特定主题相关的数据列,将无用的数据进行剔除,同时,多源数据进行格式化处理。同时,采用分区加分桶的方式组织数据,以减少数据查询的扫描范围和避免过多小文件的产生,提升查询效率。其中,上述的格式化处理的过程可以包括:字段统一、异常点检测、空值处理中的至少一种。
对于上述步骤S1103,示例性的,基于上述步骤S1102产生的结果,提取事实表、维度表和事实明细表,进行维度建模,并以星型模型组织数据,即以星型模型架构存储于Hive数据仓库中。同时,进行分布式作业调度,生成表示事实表数量大小和存储规模的事实明细表,以方便后续步骤进行动态资源分配。
通过多源异构数据融合的过程,能够对外部数据进行预处理,将规格化后的数据写入Hive数据仓库中,***对外提供统一的接口,屏蔽了底层复杂的结构化、半结构化和非结构化等多源数据格式,使得原始数据的格式和结构能够对用户透明。
在一些实施例中,如图4所示,上述步骤S120可以包括如下步骤:
步骤S1201,基于Kubernetes集群,根据事实明细表中事实表的数量和规模,动态生成Spark任务的参数值。
步骤S1202,执行Spark任务,对事实表和维度表进行聚合计算,生成结果表。
步骤S1203,通过Spark API将结果表传输到关系型数据库。
在实际应用中,本步骤可以由分布式计算模块来实现,如图2所示,分布式计算模块使用Kubernetes调度Spark分布式任务,对步骤S110生成的事实表进行聚合计算,并基于数据的规模和Spark作业的任务个数,实现Kubernetes Pod资源的动态分配,完成Spark作业的执行,得到中间结果表。具体的,分布式计算模块能够对事实表和维度表的聚合和统计等分布式计算操作,并基于事实明细表进行动态资源分配,最后将计算结果存放到关系型数据库,以满足用户的日常分析和运营需求。
对于上述步骤S1201,示例性的,从数据仓库加载事实明细表,根据事实明细表中事实表的数量和规模,动态生成Spark任务的spark.executor.instances、spark.executor.cors和spark.executor.memory的参数值,以提高Kubeneters集群的资源利用率。
对于上述步骤S1202,示例性的,加载事实表和明细表,执行上述步骤S1201提交的Spark工作的分布式任务,聚合和计算待分析的指标,生成结果表,支撑联机分析处理(Online Analytical Processing,简称OLAP)查询引擎模块完成上卷、下钻、切片、切块、透视等操作。同时根据Spark工作的任务个数和任务的负载情况,实现Spark Executor Pod数量的动态伸缩,增加或减少计算任务的并行度,避免资源浪费,阻塞集群内的其他计算任务。
对于上述步骤S1203,示例性的,将上述步骤S1202产生的多个结果表,通过SparkAPI,传输到关系型数据库,并选取适当字段建立索引,以支撑上层用户分析查询需求。
通过Kubeneters的Spark分布式计算的资源动态分配策略,能够基于事实明细表中描述事实表大小和规模的信息,实现Kubeneters对Spark运行申请的资源进行动态分配,同时在计算过程中,根据任务的负载,动态调整Kubeneters的Spark Executor Pod的数量,增加或者降低的计算的并行度。
本申请实施例提供的基于Kubeneters的Spark分布式作业调度的过程,相对于目前大多是基于Yarn的调度方案,实现了和Hadoop的解耦,使得方案更轻量,并且更细粒度的资源分配使得资源的利用率更高。
在一些实施例中,如图5所示,上述步骤S130可以包括如下步骤:
步骤S1301,接收来自前端页面的查询条件,并将查询条件排序,取哈希值作为查询键值。
步骤S1302,利用查询键值在热点数据键值缓存中查询,判断是否检索到。如果检索到,则进行步骤S1303;如果未检索到,则进行步骤S1304。
步骤S1303,生成检索结果。
步骤S1304,将查询键值转换成结构化查询语言语句,基于结构化查询语言语句在关系型数据库中进行查询,生成检索结果。
步骤S1305,将检索结果返回到前端页面。
在实际应用中,本步骤可以由OLAP查询模块来实现,如图2所示,OLAP查询模块基于关系型数据库和热点数据查询键值(key-value)高速缓冲存储器(Cache)融合输入的查询条件,相对于Kylin预计算所有维度组合临时表的方式,能够更好的平衡存储空间和计算效率,在有限的存储空间提升OLAP查询效率。
对于上述步骤S1301,示例性的,在前端的用户界面(User Interface,简称UI)界面选择相应的筛选维度条件,将查询条件排序取哈希值(hash值)作为查询key。
对于上述步骤S1302,示例性的,取步骤S1301生成的查询key至Key-Value Cache中去检索。如果检索到Cache,则进行步骤S1303;如果检索不到Cache,则进行步骤S1304。
对于上述步骤S1303,示例性的,可以根据检索到的Cache生成检索结果。
对于上述步骤S1304,示例性的,将上述步骤S1301中的查询条件转换成结构化查询语言(Structured Query Language,简称SQL)语句,并将其发到服务端重新进行检索。
本申请实施例中,通过对关系数据库的结果表进行查询,基于关系型数据库和热点数据key-value Cache融合查询的实现方式,实现了对查询性能和存储效率的兼顾。
在上述步骤S1305之后,该方法还可以包括如下步骤:
步骤S1306,根据查询键值和检索结果,采用最近最少使用策略更新键值缓存。
本步骤中,根据查询key和返回的结果,使用最近最少使用(Least Recent Used,简称LRU)置换策略更新Key-Value Cache的存储内容,将查询的结果以Key-Value的方式进行缓存,当Cache容量达到阈值时,采用LRU策略置换新的数据集,实现了通过LRU置换策略,能够防止内存溢出的问题,以对key-value cahce的存储内容进行更有效的维护。
图6提供了一种数据处理方的流程示意图。如图6所示,数据处理方法包括上述数据查重方法中的步骤以及如下步骤:
步骤S140,通过托拉拽的方式,选择维度和计算函数;
步骤S150,利用所选择的维度和计算函数,对查询结果进行OLAP分析,生成分析结果;
步骤S160,将所述分析结果以可视化报表的形式展现。
需要说明的是,OLAP是一种面向主题的多维分析技术,能够从多个维度透视数据。通过对查询结果进行OLAP分析,能够以可视化报表的形式向用户展现分析结果,实现了基于大数据平台的OLAP多维分析过程,从而提升OLAP的查询性能。
在实际应用中,上述的可视化过程可以由数据可视化模块来实现,如图2所示,数据可视化模块能够基于上述步骤S130返回的数据,向用户提供UI组件,通过托拉拽的方式,选择函数和响应的维度计算,完成切片、切块、上卷、下钻和维度透视的操作,以完成OLAP分析,得到并输出可视化的报表结果。
对于上述步骤S140,示例性的,在UI组件通过托拉拽的方式,选择相应的维度和计算函数。
对于上述步骤S150,示例性的,请求UI组件,将OLAP查询引擎模块返回在前端页面的数据进行重组和筛选,完成上卷、下钻、切片、切块和透视等操作。
对于上述步骤S160,示例性的,将结果以可视化报表的形式展现。
本申请实施例中,通过可视化报表形式展现的分析结果,提升分析结果的可读性,使用户能够更加直观、有效的获取到OLAP分析结果。再者,还能够支持决策者全面高效的对数据进行分析,发现蕴藏在数据中的价值,将商业智能运行于大数据平台之上,实现智能化运营。
图7提供了一种数据查询装置的结构示意图。如图7所示,数据查询装置700包括:
加载模块701,用于加载来自多种数据源的原始数据;
处理模块702,用于对原始数据进行ETL处理,并生成事实表、维度表和事实明细表;
计算模块703,用于基于Kubernetes集群对事实表和维度表进行聚合计算,生成结果表;
保存模块704,用于并基于事实明细表将结果表保存至关系型数据库;
查询模块705,用于基于关系型数据库和热点数据键值缓存,对结果表进行查询,并返回查询结果。
在一些实施例中,加载模块701和处理模块702具体用于:
加载来自多种数据源的原始数据,并将原始数据保存至蜂巢数据仓库;
对原始数据进行ETL处理和格式化处理,获得整理后数据;
基于整理后数据提取事实表、维度表和事实明细表,进行维度建模,并以星型模型组织数据,保存至蜂巢数据仓库。
在一些实施例中,格式化处理包括:字段统一、异常点检测、空值处理中的至少一种。
在一些实施例中,计算模块703和保存模块704具体用于:
基于Kubernetes集群,根据事实明细表中事实表的数量和规模,动态生成Spark任务的参数值;
执行Spark任务,对事实表和维度表进行聚合计算,生成结果表;
通过Spark API将结果表传输到关系型数据库。
在一些实施例中,查询模块705具体用于:
接收来自前端页面的查询条件,并将查询条件排序,取哈希值作为查询键值;
利用查询键值在热点数据键值缓存中查询;
如果检索到,则生成检索结果;
如果未检索到,则将查询键值转换成结构化查询语言语句,基于结构化查询语言语句在关系型数据库中进行查询,生成检索结果;
将检索结果返回到前端页面。
在一些实施例中,还包括:
更新模块,用于根据查询键值和检索结果,采用最近最少使用策略更新键值缓存。
本申请实施例提供的数据查询装置,与上述实施例提供的数据查询方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
本申请实施例还提供了一种数据处理装置,该数据处理装置包括上述数据查询装置中的模块以及如下模块:
选择模块,用于通过托拉拽的方式,选择维度和计算函数;
分析模块,用于利用所选择的维度和计算函数,对所述数据查询方法中的查询结果进行OLAP分析,生成分析结果;
展现模块,用于将所述分析结果以可视化报表的形式展现。
本申请实施例提供的数据处理装置,与上述实施例提供的数据处理方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
本申请实施例提供的一种电子设备,如图8所示,电子设备800包括存储器801、处理器802,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实施例提供的方法的步骤。
参见图8,电子设备还包括:总线803和通信接口804,处理器802、通信接口804和存储器801通过总线803连接;处理器802用于执行存储器801中存储的可执行模块,例如计算机程序。
其中,存储器801可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口804(可以是有线或者无线)实现该***网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线803可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器801用于存储程序,所述处理器802在接收到执行指令后,执行所述程序,前述本申请任一实施例揭示的过程定义的装置所执行的方法可以应用于处理器802中,或者由处理器802实现。
处理器802可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器802中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器802可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processing,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器801,处理器802读取存储器801中的信息,结合其硬件完成上述方法的步骤。
对应于上述数据查询方法和数据处理方法,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行上述数据查询方法和数据处理方法的步骤。
本申请实施例所提供的数据查询装置和数据处理装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本申请实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的***、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述移动控制方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本申请所提供的几个实施例中,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (11)
1.一种数据查询方法,其特征在于,包括:
加载来自多种数据源的原始数据,对所述原始数据进行ETL处理,并生成事实表、维度表和事实明细表;
基于Kubernetes集群对所述事实表和所述维度表进行聚合计算,生成结果表,并基于所述事实明细表将所述结果表保存至关系型数据库;
基于关系型数据库和热点数据键值缓存,对所述结果表进行查询,并返回查询结果。
2.根据权利要求1所述的方法,其特征在于,加载来自多种数据源的原始数据,对所述原始数据进行ETL处理,并生成事实表、维度表和事实明细表的步骤,包括:
加载来自多种数据源的原始数据,并将所述原始数据保存至蜂巢数据仓库;
对所述原始数据进行ETL处理和格式化处理,获得整理后数据;
基于所述整理后数据提取事实表、维度表和事实明细表,进行维度建模,并以星型模型组织数据,保存至所述蜂巢数据仓库。
3.根据权利要求2所述的方法,其特征在于,所述格式化处理包括:字段统一、异常点检测、空值处理中的至少一种。
4.根据权利要求1所述的方法,其特征在于,基于Kubernetes集群对所述事实表和所述维度表进行聚合计算,生成结果表,并基于所述事实明细表将所述结果表保存至关系型数据库的步骤,包括:
基于Kubernetes集群,根据所述事实明细表中事实表的数量和规模,动态生成Spark任务的参数值;
执行所述Spark任务,对所述事实表和所述维度表进行聚合计算,生成结果表;
通过Spark API将所述结果表传输到关系型数据库。
5.根据权利要求1所述的方法,其特征在于,基于关系型数据库和热点数据键值缓存,对所述结果表进行查询,并返回查询结果的步骤,包括:
接收来自前端页面的查询条件,并将所述查询条件排序,取哈希值作为查询键值;
利用所述查询键值在所述热点数据键值缓存中查询;
如果检索到,则生成检索结果;
如果未检索到,则将所述查询键值转换成结构化查询语言语句,基于所述结构化查询语言语句在所述关系型数据库中进行查询,生成检索结果;
将所述检索结果返回到前端页面。
6.根据权利要求5所述的方法,其特征在于,将所述检索结果返回到前端页面的步骤之后,还包括:
根据所述查询键值和所述检索结果,采用最近最少使用策略更新所述键值缓存。
7.一种数据处理方法,其特征在于,包括如权利要求1-6任一项所述的数据查重方法中的步骤以及如下步骤:
通过托拉拽的方式,选择维度和计算函数;
利用所选择的维度和计算函数,对所述数据查询方法中的查询结果进行OLAP分析,生成分析结果;
将所述分析结果以可视化报表的形式展现。
8.一种数据查询装置,其特征在于,包括:
加载模块,用于加载来自多种数据源的原始数据;
处理模块,用于对所述原始数据进行ETL处理,并生成事实表、维度表和事实明细表;
计算模块,用于基于Kubernetes集群对所述事实表和所述维度表进行聚合计算,生成结果表;
保存模块,用于并基于所述事实明细表将所述结果表保存至关系型数据库;
查询模块,用于基于关系型数据库和热点数据键值缓存,对所述结果表进行查询,并返回查询结果。
9.一种数据处理装置,其特征在于,包括:如权利要求8所述的数据查询装置中的模块以及如下模块:
选择模块,用于通过托拉拽的方式,选择维度和计算函数;
分析模块,用于利用所选择的维度和计算函数,对所述数据查询装置的查询结果进行OLAP分析,生成分析结果;
展现模块,用于将所述分析结果以可视化报表的形式展现。
10.一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至7任一项所述的方法的步骤。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行所述权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911164216.0A CN112835966A (zh) | 2019-11-22 | 2019-11-22 | 数据查询方法、装置以及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911164216.0A CN112835966A (zh) | 2019-11-22 | 2019-11-22 | 数据查询方法、装置以及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112835966A true CN112835966A (zh) | 2021-05-25 |
Family
ID=75922054
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911164216.0A Pending CN112835966A (zh) | 2019-11-22 | 2019-11-22 | 数据查询方法、装置以及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112835966A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113407587A (zh) * | 2021-07-19 | 2021-09-17 | 北京百度网讯科技有限公司 | 用于联机分析处理引擎的数据处理方法、装置、设备 |
CN113405134A (zh) * | 2021-05-31 | 2021-09-17 | 青岛海尔科技有限公司 | 用于自动控制烟机的方法、装置、存储介质及服务器 |
CN114548062A (zh) * | 2022-04-27 | 2022-05-27 | 成都瑞华康源科技有限公司 | 一种报表编排方法 |
CN115114361A (zh) * | 2022-06-25 | 2022-09-27 | 上海道客网络科技有限公司 | 一种基于容器云平台统一接口的资源检索方法和*** |
WO2023035355A1 (zh) * | 2021-09-08 | 2023-03-16 | 上海跬智信息技术有限公司 | 批流融合的信息处理方法和装置、存储介质 |
CN118093637A (zh) * | 2024-04-25 | 2024-05-28 | 北京凌云雀科技有限公司 | 基于关系型数据库的Kubernetes集群资源查询方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095859A (zh) * | 2016-06-02 | 2016-11-09 | 成都淞幸科技有限责任公司 | 基于olam的多维度中医针灸关联规则挖掘方法 |
CN106126604A (zh) * | 2016-06-20 | 2016-11-16 | 华南理工大学 | 一种基于分布式数据仓库的社保数据联机分析处理*** |
CN106484875A (zh) * | 2016-10-13 | 2017-03-08 | 广州视源电子科技股份有限公司 | 基于molap的数据处理方法及装置 |
CN107301206A (zh) * | 2017-06-01 | 2017-10-27 | 华南理工大学 | 一种基于预运算的分布式olap分析方法及*** |
US20190324964A1 (en) * | 2018-04-24 | 2019-10-24 | Dremio Corporation | Optimized data structures of a relational cache with a learning capability for accelerating query execution by a data system |
-
2019
- 2019-11-22 CN CN201911164216.0A patent/CN112835966A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095859A (zh) * | 2016-06-02 | 2016-11-09 | 成都淞幸科技有限责任公司 | 基于olam的多维度中医针灸关联规则挖掘方法 |
CN106126604A (zh) * | 2016-06-20 | 2016-11-16 | 华南理工大学 | 一种基于分布式数据仓库的社保数据联机分析处理*** |
CN106484875A (zh) * | 2016-10-13 | 2017-03-08 | 广州视源电子科技股份有限公司 | 基于molap的数据处理方法及装置 |
CN107301206A (zh) * | 2017-06-01 | 2017-10-27 | 华南理工大学 | 一种基于预运算的分布式olap分析方法及*** |
US20190324964A1 (en) * | 2018-04-24 | 2019-10-24 | Dremio Corporation | Optimized data structures of a relational cache with a learning capability for accelerating query execution by a data system |
Non-Patent Citations (2)
Title |
---|
杜威科: "基于Kubemetes的大数据流式计算Spark平台设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》, no. 02, pages 139 - 280 * |
胡沛等: "大数据技术及应用探究", 31 August 2018, 《成都:电子科技大学出版社》, pages: 232 - 236 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113405134A (zh) * | 2021-05-31 | 2021-09-17 | 青岛海尔科技有限公司 | 用于自动控制烟机的方法、装置、存储介质及服务器 |
CN113407587A (zh) * | 2021-07-19 | 2021-09-17 | 北京百度网讯科技有限公司 | 用于联机分析处理引擎的数据处理方法、装置、设备 |
CN113407587B (zh) * | 2021-07-19 | 2023-10-27 | 北京百度网讯科技有限公司 | 用于联机分析处理引擎的数据处理方法、装置、设备 |
WO2023035355A1 (zh) * | 2021-09-08 | 2023-03-16 | 上海跬智信息技术有限公司 | 批流融合的信息处理方法和装置、存储介质 |
CN114548062A (zh) * | 2022-04-27 | 2022-05-27 | 成都瑞华康源科技有限公司 | 一种报表编排方法 |
CN115114361A (zh) * | 2022-06-25 | 2022-09-27 | 上海道客网络科技有限公司 | 一种基于容器云平台统一接口的资源检索方法和*** |
CN115114361B (zh) * | 2022-06-25 | 2023-07-07 | 上海道客网络科技有限公司 | 一种基于容器云平台统一接口的资源检索方法和*** |
CN118093637A (zh) * | 2024-04-25 | 2024-05-28 | 北京凌云雀科技有限公司 | 基于关系型数据库的Kubernetes集群资源查询方法及装置 |
CN118093637B (zh) * | 2024-04-25 | 2024-06-25 | 北京凌云雀科技有限公司 | 基于关系型数据库的Kubernetes集群资源查询方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112835966A (zh) | 数据查询方法、装置以及电子设备 | |
US11582123B2 (en) | Distribution of data packets with non-linear delay | |
CN106484875B (zh) | 基于molap的数据处理方法及装置 | |
US10372723B2 (en) | Efficient query processing using histograms in a columnar database | |
US9740706B2 (en) | Management of intermediate data spills during the shuffle phase of a map-reduce job | |
US9740738B1 (en) | Data retrieval from datastores with different data storage formats | |
Gautam et al. | A survey on job scheduling algorithms in big data processing | |
US20180260438A1 (en) | Processing records in dynamic ranges | |
US20200272636A1 (en) | Tiered storage for data processing | |
US11449509B2 (en) | Workflow driven database partitioning | |
US11074267B2 (en) | Staged approach to automatic data discovery and performance | |
CN112181704A (zh) | 一种大数据任务处理方法、装置、电子设备及存储介质 | |
Kang et al. | Reducing i/o cost in olap query processing with mapreduce | |
Packiaraj et al. | Hypar-fca: a distributed framework based on hybrid partitioning for fca | |
Bharti et al. | A Review on Big Data Analytics Tools in Context with Scalability | |
Chereja et al. | Operationalizing analytics with NewSQL | |
CN117271578A (zh) | 数据查询方法、可视化数据处理方法及其装置、电子设备及存储介质 | |
Dabbèchi et al. | Towards cloud-based data warehouse as a service for big data analytics | |
EP3380906A1 (en) | Optimization for real-time, parallel execution of models for extracting high-value information from data streams | |
Jadhav et al. | A Practical approach for integrating Big data Analytics into E-governance using hadoop | |
Dai et al. | The Hadoop stack: new paradigm for big data storage and processing | |
Sanaboyina | Performance evaluation of time series databases based on energy consumption | |
Singh | NoSQL: A new horizon in big data | |
Singhal et al. | Comparative analysis of big data technologies | |
Li et al. | Spark’s operation time predictive in cloud computing environment based on SRC-WSVR |
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 |