CN114238390A - 数据仓库优化方法、装置、设备及存储介质 - Google Patents
数据仓库优化方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114238390A CN114238390A CN202111527335.5A CN202111527335A CN114238390A CN 114238390 A CN114238390 A CN 114238390A CN 202111527335 A CN202111527335 A CN 202111527335A CN 114238390 A CN114238390 A CN 114238390A
- Authority
- CN
- China
- Prior art keywords
- data warehouse
- optimized
- tables
- determining
- data
- 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
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/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- 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
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)
- Computational Linguistics (AREA)
- Medical Treatment And Welfare Office Work (AREA)
Abstract
本申请提供了一种数据仓库优化方法、装置、设备及存储介质。其中数据仓库优化方法包括:根据数据仓库表血缘关系图,确定所述数据仓库中的待优化表;确定待优化表的数量是否为预设值;若是,则结束所述数据仓库优化步骤;若否,则删除所述待优化表,并重复执行所述数据仓库优化步骤,直至所述待优化表的数量为预设值为止。本申请实现对数据仓库的清理和瘦身,从而节省数据仓库的存储资源和计算资源。
Description
技术领域
本申请实施例涉及数据处理技术,特别涉及一种数据仓库优化方法、装置、设备及存储介质。
背景技术
随着大数据时代的到来,数据呈现爆发性增长,海量的、各种类型的数据在快速产生。数据仓库(Data Warehouse,可简写为DW或DWH)作为数据分析加工的核心单元,变得越来越庞大。但实际使用过程中,数据仓库中的每个数据并非都有用,所以对数据仓库进行清理和瘦身成为数据仓库使用过程中必不可少的过程。为此,如何对数据仓库进行清理和瘦身,成为目前亟需解决的问题。
发明内容
本申请实施例提供一种数据仓库优化方法、装置、设备及存储介质,实现对数据仓库的清理和瘦身,从而节省数据仓库的存储资源和计算资源。
第一方面,本申请实施例提供了一种数据仓库优化方法,该方法包括:
根据数据仓库表血缘关系图,确定所述数据仓库中的待优化表;
确定待优化表的数量是否为预设值;
若是,则结束所述数据仓库优化步骤;
若否,则删除所述待优化表,并重复执行所述数据仓库优化步骤,直至所述待优化表的数量为预设值为止。
第二方面,本申请实施例提供了一种数据仓库优化装置,该装置包括:
第一确定模块,用于根据数据仓库表血缘关系图,确定所述数据仓库中的待优化表;
第二确定模块,用于确定待优化表的数量是否为预设值;
控制模块,用于若是,则结束所述数据仓库优化步骤;若否,则删除所述待优化表,并重复执行所述数据仓库优化步骤,直至所述待优化表的数量为预设值。
第三方面,本申请实施例提供了一种数据仓库优化设备,包括:
处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行第一方面实施例所述的数据仓库优化方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,用于存储计算机程序,所述计算机程序使得计算机执行第一方面实施例所述的数据仓库优化方法。
第五方面,本申请实施例提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现第一方面实施例所述的数据仓库优化方法。
本申请实施例公开的技术方案,具有如下有益效果:
通过根据数据仓库表血缘关系图,确定数据仓库中的待优化表,并确定待优化表的数量是否为预设值,若是则结束数据仓库优化步骤,若否则删除待优化表,并重复执行数据仓库优化步骤,直至待优化表的数量为预设值为止。由此,通过将数据仓库中无用的表或临时中间表进行删除,实现对数据仓库的清理和瘦身,从而节省数据仓库的存储资源和计算资源。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的构建数据仓库表血缘关系图的流程示意图;
图2是本申请实施例提供的一种数据仓库优化方法的流程示意图;
图3是本申请实施例提供的另一种数据仓库优化方法的流程示意图;
图4是本申请实施例提供的一种数据仓库表血缘关系图;
图5是本申请实施例提供的一种数据仓库表血缘关系图中DM层的表被业务系统使用的示意图;
图6是本申请实施例提供的另一种数据仓库表血缘关系图中DM层的表被业务系统使用的示意图;
图7是本申请实施例提供的一种数据仓库优化装置的示意性框图;
图8是本申请实施例提供的一种数据仓库优化设备的示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例主要针对现有技术中,如何对数据仓库进行清理和瘦身的问题,提出了一种数据仓库优化方法、装置、设备及存储介质。
在描述本申请实施例提供的数据仓库优化方法、装置、设备及存储设备之前,首先对本申请实施例中使用到的术语进行定义,以使含义清楚。
数据仓库(Data Warehouse,可简写为DW或DWH)是一个面向主题的(SubjectOriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(TimeVariant)的数据集合,用于支持管理决策(Decision Making Support)。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。
一般企业的数据仓库,常见的数据分层一般分为三大层,四小层。具体为,数据准备层(Operational Data Store,简写为ODS层)→数据仓库层(Data Warehouse,简写为DW层)→数据集市层(Data Mart),简写为DM层)。其中,DW层细分为数据明细层(DataWarehouse Detail,简写为DWD层)和数据服务层(Data Warehouse Service,简写为DWS层)。
其中,ODS层:将源系统数据采集、导入到数据仓库中进行数据准备,该层的数据表结构通常与源系统的数据完全一致。
DWD层:在数据明细层,数据要完成清洗、转换、加载的步骤(Extraction-Transformation-Loading,缩写ETL),形成覆盖全系统、完整、干净,具有一致性、高质量可信的数据层。
DWS层:数据服务层,也叫“轻度汇总层”,基于DWD层上的基础数据,整合汇总成分析某一主题域的服务数据,一般为宽表。
DM层:面向特定主题,针对某一业务领域建立模型。在DM层完成报表和指标的统计,DM层已经不包括明细数据,是粗粒度的数据汇总。
通过上述三大层完成数据流向规范,其中后面的层级依赖前面的层级,且为不可逆向依赖。
HIVE是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。
SPARK是一个用来实现快速而通用的集群计算的平台。
MapReduce是一种分布式计算框架,以一种可靠的、具有容错能力的方式并行地处理上TB级别的海量数据集。
SQL是结构化查询语言(Structured Query Language)的简称,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
为了清楚说明本申请实施例提供的数据仓库优化方法中,根据数据仓库表血缘关系图,确定数据仓库中的待优化表过程。下面首先对本申请实施例中构建数据仓库表血缘关系图进行说明。
图1是本申请实施例提供的构建数据仓库表血缘关系图的流程示意图。本申请实施例提供的构建数据仓库表血缘关系图,可由数据仓库优化装置来执行,且该装置可由硬件和/或软件组成,并可集成于数据仓库优化设备中。
如图1所示,该方法包括如下步骤:
S101,对所述数据仓库的数据处理脚本进行识别,以获取所述数据处理脚本中用于操作所述数据仓库的语句。
本实施例中,用于操作所述数据仓库的语句为SQL语句。
示例性的,可通过使用编程语言,例如JAVA语言,对数据仓库ETL脚本进行采集识别,以获取数据处理脚本中用于操作数据仓库的SQL语句。其中,SQL语句可以为HIVE SQL语句,或SPARK SQL语句等。
S102,根据用于操作所述数据仓库的语句中所引用到的表,确定所述表之间的依赖和被依赖的关系,以构建初始表血缘关系图。
示例性的,可通过如下几种方式,确定表之间的依赖和被依赖的关系;
第一种方式,
根据HIVE组件的SQL解析工具,确定SQL语句中所引用的源表和目标表,并确定所述源表和所述目标表之间的依赖和被依赖关系。
具体的,通过使用HIVE组件自带的SQL解析工具中的org.apache.hadoop.hive.ql.tools.LineageInfo类,确定ETL脚本中HIVE SQL所引用到的源表和目标表,以得到表与表之间的依赖和被依赖关系。
第二种方式,
根据SPARK组件的SQL解析工具,确定所述SQL语句中所引用的源表和目标表,并确定所述源表和所述目标表之间的依赖和被依赖关系。
具体的,通过使用SPARK组件自带的SQL解析工具中自定义的org.apache.spark.scheduler.SparkListener,提取ETL脚本中SPARK SQL所引用到的源表和目标表,以得到表与表之间的依赖和被依赖关系。
第三种方式,
根据MapReduce组件,确定所述SQL语句中所引用的源表和目标表,并确定所述源表和所述目标表之间的依赖和被依赖关系。
具体的,由于输入输出均是由各种输入格式或输出格式执行,因此本实施例可在作业提交时,通过MapReduce组件直接提取表与表之间的依赖和被依赖关系。
需要说明的是,本申请实施例上述三种方式可单独实施,也可相互结合到一起实施,此处对其不做具体限制。
S103,对所述初始表血缘关系图进行处理,得到数据仓库表血缘关系图。
由于步骤S102中构建的初始表血缘关系图中可能无法覆盖到数据仓库中的所有表,即存在遗漏表。为此,本实施例在构建初级血缘关系图之后,通过遍历初级血缘关系图,以确定初级血缘关系图中是否覆盖了数据仓库中的所有表。如果初级血缘关系图没有覆盖数据仓库中的所有表,此时通过人工方式,基于未覆盖的表对初级血缘关系图进行补全处理,以使数据仓库中的表均被覆盖,从而得到具备数据仓库所有表的表血缘关系图。
本申请实施例通过对数据仓库的数据处理脚本进行识别,获取数据处理脚本中用于操作数据仓库的语句,根据用于操作数据仓库的语句中所引用的表,确定表之间的依赖和被依赖关系,构建初始表血缘关系图,并对初始表血缘关系图进行处理,得到数据仓库表血缘关系图,从而基于数据仓库表血缘关系图为后续对数据仓库进行优化提供了条件。
通过上述描述可知,本申请实施例通过基于获取到的用于操作数据仓库的语句中所引用的表,构建初始表血缘关系图,并基于初始表血缘关系图,得到数据仓库表血缘关系图。下面基于上述实施例构建的数据仓库表血缘关系图,对本申请实施例提供的数据仓库优化方法进行描述。
图2是本申请实施例提供的一种数据仓库优化方法的流程示意图。如图2所示,本实施例提供的数据仓库优化方法包括如下:
S201,根据数据仓库表血缘关系图,确定所述数据仓库中的待优化表。
本实施例中,待优化表是指数据仓库中临时中间表或者没有被业务系统调用的表。其中,没有被业务系统调用的表可理解为无用的表。
由于数据仓库可包括四小层,具体为ODS层、DWD层、DWS层和DM层,且每层中均包括多个表。为此,本实施例可根据数据仓库表血缘关系图,确定数据仓库中每个层级的待优化表。即,根据数据仓库表血缘关系图,确定ODS层、DWD层、DWS层和DM层中各层的待优化表。
具体实现时,可通过遍历数据仓库中每个层级中的表,确定数据仓库中每个层级的待优化表。
S202,确定待优化表的数量是否为预设值,若是,则执行S203,否则,执行S204。
S203,若是,则结束所述数据仓库优化步骤。
S204,若否,则删除所述待优化表,并重复执行所述数据仓库优化步骤,直至所述待优化表的数量为预设值为止。
其中,预设值可根据数据仓库的优化程度进行设置。本实施例可选的将预设值设置为零。
可选的,确定出数据仓库中每个层级的待优化表之后,本实施例可计算所有层级的待优化表的总数量是否为预设值。如果待优化表的总数量为预设值,则说明数据仓库中所有临时中间表或者所有没有被业务系统调用的表均被找出。即,数据仓库中所有临时中间表或者所有没有被业务系统调用的表均被删除,从而节省了数据仓库的存储资源和计算资源,达到优化数据仓库的效果。
如果待优化表的总数量不为预设值,则说明只找出了部分临时中间表或部分没有被业务系统调用的表,而数据仓库中还存在其他临时中间表或其他没有被业务系统调用的表。那么针对此种情况,本申请实施例可先将找到的部分表进行删除,然后再次执行数据仓库优化步骤,并将再次找到的待优化表进行删除,重复执行该数据仓库优化步骤,直至从数据仓库中找到的待优化表的数量为预设值为止。当数据仓库中待优化表的数量为预设值零时,说明数据仓库中的临时中间表或没有被业务系统调用的无用表全部被删除,从而完成对数据仓库的优化操作。
本申请实施例提供的数据仓库优化方法,通过根据数据仓库表血缘关系图,确定数据仓库中的待优化表,并确定待优化表的数量是否为预设值,若是则结束数据仓库优化步骤,若否则删除待优化表,并重复执行数据仓库优化步骤,直至待优化表的数量为预设值为止。由此,通过将数据仓库中无用的表或临时中间表进行删除,实现对数据仓库的清理和瘦身,从而节省数据仓库的存储资源和计算资源。
通过上述分析可知,本申请实施例通过根据数据仓库表血缘关系图,确定数据仓库中的待优化表,并删除待优化表,以优化数据仓库。本实施例以上述实施例为基础进行进一步的优化。在本实施例中,将根据数据仓库表血缘关系图,确定数据仓库中的待优化表,进一步优化为:根据数据仓库表血缘关系图,确定所述数据仓库中每个层级的待优化表。下面结合图3,对上述根据数据仓库表血缘关系图,确定数据仓库中的待优化表进行优化的过程进行具体说明。如图3所示,该数据仓库优化方法包括以下步骤:
S301,根据所述数据仓库表血缘关系图,确定数据集市层中未被业务系统调用的第一待优化表,以及与所述第一待优化表存在血缘关系的第二待优化表。
举例说明,假设本实施例中数据仓库表血缘关系图,如图4所示。其中数据仓库中DM层的表属于对外发布的表,以供业务系统使用,图5展示了DM层的表被使用的情况。
基于图5可看出,业务系统中:需求5,因业务变更被删除,因此可确定被需求5调用的表dm_t7不再被调用,即表dm_t7为无用表;并且,表dm_t8是实现数据转换的中间表,没有被业务系统侧引用,即表dm_t8也为无用表。也就是说,DM层中第一待优化表为:表dm_t7和表dm_t8。
进一步的,根据图5展示的数据仓库表血缘关系图可知,与第一待优化表dm_t7和表dm_t8,存在血缘关系的第二待优化表为:表dm_t4。
S302,确定数据服务层中与所述第一待优化表和/或所述第二待优化表存在血缘关系,且与所述数据服务层中其他表不存在血缘关系的第三待优化表。
继续以上述示例进行举例说明,如图5所示,在数据仓库的DM层确定出第一待优化表为:表dm_t7和表dm_t8,以及第二待优化表为:表dm_t4之后,数据仓库优化设备基于数据仓库表血缘关系图,在DWS层中确定出与表dm_t7和表dm_t8,和/或表dm_t4存在血缘关系,且与DWS层中其他表不存在血缘关系的第三待优化表为:dws_t4。
S303,确定数据明细层中,与所述第三待优化表存在血缘关系,且与所述数据明细层和所述数据服务层中其他表不存在血缘关系的第四待优化表。
继续以上述图5为例进行说明,在数据仓库的DWS层确定出第三待优化表:表dws_t4之后,数据仓库优化设备继续基于数据仓库表血缘关系图,在DWD层中确定与表dws_t4存在血缘关系,且与DWD层和DWS层中其他表不存在血缘关系的第四待优化表为:空。
S304,对所述第一待优化表、所述第二待优化表、所述第三待优化表和所述第四待优化表的数量进行求和,得到和值。
S305,将所述和值与所述预设值进行比对,以确定待优化表的数量是否为预设值。
S306,若是,则结束所述数据仓库优化步骤。
S307,若否,则删除所述待优化表,并重复执行所述数据仓库优化步骤,直至所述待优化表的数量为预设值为止。
继续以上述示例进行说明,由于第一待优化表为:表dm_t7和表dm_t8,第二待优化表为:表dm_t4,第三待优化表为:dws_t4,第四待优化表为:空,即第四待优化表的数量为0,那么基于上述四种待优化表的数量,可得到待优化表的数量和值为:2+1+1=4。即,4≠0,则删除表dm_t7、表dm_t8、表dm_t4和dws_t4。对上述四种待优化进行删除操作之后,图5所展示DM层的表被调用的情况可更新为图6。
当删除掉表dm_t7、表dm_t8、表dm_t4和dws_t4之后,基于图6可看出,数据仓库中DM层中的表dm_t1被业务系统中的需求1调用,表dm_t2分别与表dm_t1和表dm_t6存在血缘关系,表dm_t3被业务系统中的需求4调用,表dm_t5被业务系统中的需求1调用,且分别与表dm_t1和表dm_t6存在血缘关系,以及表dm_t6被业务系统中的需求2和需求3调用,且分别与表dm_t2和表dm_t3存在血缘关系,因此确定第一待优化表为空,相应的第二待优化表也为空。即第一待优化表和第二待优化表的数量为0。
由于在数据仓库中DM层未确定出第一待优化表和第二待优化表,则基于图6所示的数据仓库表血缘关系图,在DWS层、DWD层以及ODS层中确定的第三待优化表和第四待优化表也均为空。即第三待优化表和第四待优化表的数量为0。然后,基于上述四种待优化表可得到待优化表的数量和值为:0+0+0+0=0。由此,说明数据仓库中临时中间表或无用表均被删除,没有多余的存储资源和计算资源被占用。
也就是说,本实施例在确定和值不为预设值时,通过删除找出的待优化表,并再次从业务系统侧依次对数据仓库中的每个层级进行遍历直至ODS层,以确定出所有临时中间表或无用表。即按照业务系统→DM层→DWS层→DWD层→ODS层的顺序,遍历每一层级中的表,以将所有临时中间表或无用表删除,以达到优化数据仓库的存储资源和计算资源的效果。
本申请实施例提供的数据仓库优化方法,通过根据数据仓库表血缘关系图,确定数据仓库中的待优化表,并确定待优化表的数量是否为预设值,若是则结束数据仓库优化步骤,若否则删除待优化表,并重复执行数据仓库优化步骤,直至待优化表的数量为预设值为止。由此,通过将数据仓库中无用的表或临时中间表进行删除,实现对数据仓库的清理和瘦身,从而节省数据仓库的存储资源和计算资源。
下面参照附图7,对本申请实施例提出的一种数据仓库优化装置进行描述。图7是本申请实施例提供的一种数据仓库优化装置的示意性框图。
其中,该数据仓库优化装置700包括:第一确定模块710、第二确定模块720和控制模块730。
其中,第一确定模块710,用于根据数据仓库表血缘关系图,确定所述数据仓库中的待优化表;
第二确定模块720,用于确定待优化表的数量是否为预设值;
控制模块730,用于若是,则结束所述数据仓库优化步骤;若否,则删除所述待优化表,并重复执行所述数据仓库优化步骤,直至所述待优化表的数量为预设值为止。
本申请实施例的一种可选实现方式,还包括:构建模块;
其中,构建模块,用于对所述数据仓库的数据处理脚本进行识别,以获取所述数据处理脚本中用于操作所述数据仓库的语句;根据用于操作所述数据仓库的语句中所引用到的表,确定所述表之间的依赖和被依赖的关系,以构建初始表血缘关系图;对所述初始表血缘关系图进行处理,得到数据仓库表血缘关系图。
本申请实施例的一种可选实现方式,用于操作所述数据仓库的语句为SQL语句。
本申请实施例的一种可选实现方式,构建模块,具体用于:
根据HIVE组件的SQL解析工具,确定SQL语句中所引用的源表和目标表,并确定所述源表和所述目标表之间的依赖和被依赖关系;
和/或,根据SPARK组件的SQL解析工具,确定所述SQL语句中所引用的源表和目标表,并确定所述源表和所述目标表之间的依赖和被依赖关系;
和/或,根据MapReduce组件,确定所述SQL语句中所引用的源表和目标表,并确定所述源表和所述目标表之间的依赖和被依赖关系。
本申请实施例的一种可选实现方式,构建模块,具体用于:
确定所述初级血缘关系图中是否覆盖所述数据仓库中的所有表;
若否,则根据未覆盖的表,对所述初级血缘关系图进行补全处理,以得到数据仓库表血缘关系图。
本申请实施例的一种可选实现方式,第一确定模块710,具体用于:
根据所述数据仓库表血缘关系图,确定数据集市层中未被业务系统调用的第一待优化表,以及与所述第一待优化表存在血缘关系的第二待优化表;
确定数据服务层中与所述第一待优化表和/或所述第二待优化表存在血缘关系,且与所述数据服务层中其他表不存在血缘关系的第三待优化表;
确定数据明细层中,与所述第三待优化表存在血缘关系,且与所述数据明细层和所述数据服务层中其他表不存在血缘关系的第四待优化表。
本申请实施例的一种可选实现方式,第二确定模块720,具体用于:
对所述第一待优化表、所述第二待优化表、所述第三待优化表和所述第四待优化表的数量进行求和,得到和值;
将所述和值与所述预设值进行比对,以确定待优化表的数量是否为预设值。
应理解的是,数据仓库优化装置实施例与数据仓库优化方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图7所示的数据仓库优化700可以执行图2对应的方法实施例,并且数据仓库优化装置700中的各个模块的前述和其它操作和/或功能分别为了实现图2中的各个方法中的相应流程,为了简洁,在此不再赘述。
上文中结合附图从功能模块的角度描述了本申请实施例的数据仓库优化装置700。应理解,该功能模块可以通过硬件形式实现,也可以通过软件形式的指令实现,还可以通过硬件和软件模块组合实现。具体地,本申请实施例中的数据仓库优化方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路和/或软件形式的指令完成,结合本申请实施例公开的数据仓库优化方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。可选地,软件模块可以位于随机存储器,闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等本领域的成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法实施例中的步骤。
图8是本申请实施例提供的一种数据仓库优化设备800的示意性框图。
如图8所示,该数据仓库优化设备800可包括:
存储器810和处理器820,该存储器810用于存储计算机程序,并将该程序代码传输给该处理器820。换言之,该处理器820可以从存储器810中调用并运行计算机程序,以实现本申请实施例中的数据仓库优化方法。
例如,该处理器820可用于根据该计算机程序中的指令执行上述数据仓库优化方法实施例。
在本申请的一些实施例中,该处理器820可以包括但不限于:
通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等等。
在本申请的一些实施例中,该存储器810包括但不限于:
易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double DataRate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。
在本申请的一些实施例中,该计算机程序可以被分割成一个或多个模块,该一个或者多个模块被存储在该存储器810中,并由该处理器820执行,以完成本申请提供的方法。该一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述该计算机程序在该数据仓库优化设备中的执行过程。
如图8所示,该数据仓库优化设备800还可包括:
收发器830,该收发器830可连接至该处理器820或存储器810。
其中,处理器820可以控制该收发器830与其他设备进行通信,具体地,可以向其他设备发送信息或数据,或接收其他设备发送的信息或数据。收发器830可以包括发射机和接收机。收发器830还可以进一步包括天线,天线的数量可以为一个或多个。
应当理解,该数据仓库优化设备800中的各个组件通过总线系统相连,其中,总线系统除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。
本申请还提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得该计算机能够执行上述实施例的数据仓库优化方法。或者说,本申请实施例还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述方法实施例的方法。
当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。例如,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
以上该,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以该权利要求的保护范围为准。
Claims (10)
1.一种数据仓库优化方法,其特征在于,包括:
根据数据仓库表血缘关系图,确定所述数据仓库中的待优化表;
确定待优化表的数量是否为预设值;
若是,则结束所述数据仓库优化步骤;
若否,则删除所述待优化表,并重复执行所述数据仓库优化步骤,直至所述待优化表的数量为预设值为止。
2.根据权利要求1所述的方法,其特征在于,所述数据仓库表血缘关系图通过如下方式构建:
对所述数据仓库的数据处理脚本进行识别,以获取所述数据处理脚本中用于操作所述数据仓库的语句;
根据用于操作所述数据仓库的语句中所引用到的表,确定所述表之间的依赖和被依赖的关系,以构建初始表血缘关系图;
对所述初始表血缘关系图进行处理,得到数据仓库表血缘关系图。
3.根据权利要求2所述的方法,其特征在于,用于操作所述数据仓库的语句为SQL语句。
4.根据权利要求2所述的方法,其特征在于,确定所述表之间的依赖和被依赖的关系,包括:
根据HIVE组件的SQL解析工具,确定SQL语句中所引用的源表和目标表,并确定所述源表和所述目标表之间的依赖和被依赖关系;
和/或,根据SPARK组件的SQL解析工具,确定所述SQL语句中所引用的源表和目标表,并确定所述源表和所述目标表之间的依赖和被依赖关系;
和/或,根据MapReduce组件,确定所述SQL语句中所引用的源表和目标表,并确定所述源表和所述目标表之间的依赖和被依赖关系。
5.根据权利要求2所述的方法,其特征在于,对所述初级血缘关系图进行处理,得到数据仓库表血缘关系图,包括:
确定所述初级血缘关系图中是否覆盖所述数据仓库中的所有表;
若否,则根据未覆盖的表,对所述初级血缘关系图进行补全处理,以得到数据仓库表血缘关系图。
6.根据权利要求1-5中任一项所述的方法,其特征在于,根据数据仓库表血缘关系图,确定所述数据仓库中的待优化表,包括:
根据所述数据仓库表血缘关系图,确定数据集市层中未被业务系统调用的第一待优化表,以及与所述第一待优化表存在血缘关系的第二待优化表;
确定数据服务层中与所述第一待优化表和/或所述第二待优化表存在血缘关系,且与所述数据服务层中其他表不存在血缘关系的第三待优化表;
确定数据明细层中,与所述第三待优化表存在血缘关系,且与所述数据明细层和所述数据服务层中其他表不存在血缘关系的第四待优化表。
7.根据权利要求6所述的方法,其特征在于,确定待优化表的数量是否为预设值,包括:
对所述第一待优化表、所述第二待优化表、所述第三待优化表和所述第四待优化表的数量进行求和,得到和值;
将所述和值与所述预设值进行比对,以确定待优化表的数量是否为预设值。
8.一种数据仓库优化装置,其特征在于,包括:
第一确定模块,用于根据数据仓库表血缘关系图,确定所述数据仓库中的待优化表;
第二确定模块,用于确定待优化表的数量是否为预设值;
控制模块,用于若是,则结束所述数据仓库优化步骤;若否,则删除所述待优化表,并重复执行所述数据仓库优化步骤,直至所述待优化表的数量为预设值。
9.一种数据仓库优化设备,其特征在于,包括:
处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行权利要求1至7中任一项所述的数据仓库优化方法。
10.一种计算机可读存储介质,其特征在于,用于存储计算机程序,所述计算机程序使得计算机执行如权利要求1至7中任一项所述的数据仓库优化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111527335.5A CN114238390A (zh) | 2021-12-14 | 2021-12-14 | 数据仓库优化方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111527335.5A CN114238390A (zh) | 2021-12-14 | 2021-12-14 | 数据仓库优化方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114238390A true CN114238390A (zh) | 2022-03-25 |
Family
ID=80755795
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111527335.5A Pending CN114238390A (zh) | 2021-12-14 | 2021-12-14 | 数据仓库优化方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114238390A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116541887B (zh) * | 2023-07-07 | 2023-09-15 | 云启智慧科技有限公司 | 一种大数据平台数据安全保护方法 |
-
2021
- 2021-12-14 CN CN202111527335.5A patent/CN114238390A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116541887B (zh) * | 2023-07-07 | 2023-09-15 | 云启智慧科技有限公司 | 一种大数据平台数据安全保护方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11113282B2 (en) | Online optimizer statistics maintenance during load | |
US10733184B2 (en) | Query planning and execution with source and sink operators | |
CN108629029B (zh) | 一种应用于数据仓库的数据处理方法和装置 | |
CN104160381A (zh) | 多租户环境中租户特定数据集的管理 | |
US10394805B2 (en) | Database management for mobile devices | |
CN107562804B (zh) | 数据缓存服务系统及方法、终端 | |
US10540352B2 (en) | Remote query optimization in multi data sources | |
WO2016169237A1 (zh) | 数据处理方法及装置 | |
US11645281B1 (en) | Caching query plans in database systems | |
CN111221840A (zh) | 数据处理方法及装置、数据缓存方法、存储介质、系统 | |
CN114090695A (zh) | 分布式数据库的查询优化的方法和装置 | |
CN103678591A (zh) | 自动执行多业务单据统计处理的装置和方法 | |
CN114741335A (zh) | 缓存管理方法、装置、介质及设备 | |
US20230099501A1 (en) | Masking shard operations in distributed database systems | |
CN114238390A (zh) | 数据仓库优化方法、装置、设备及存储介质 | |
US20190258736A1 (en) | Dynamic Execution of ETL Jobs Without Metadata Repository | |
CN109726213B (zh) | 一种程序代码转换方法、装置、介质和计算设备 | |
CN111858586A (zh) | 一种数据处理的方法和装置 | |
CN112835932B (zh) | 业务表的批量处理方法及装置、非易失性存储介质 | |
CN113760600B (zh) | 一种数据库备份方法、数据库还原方法和相关装置 | |
CN113568930A (zh) | 一种分布式内存数据查询优化的方法和设备 | |
CN113568892A (zh) | 一种基于内存计算对数据源进行数据查询的方法和设备 | |
CN110928898A (zh) | 数据采集方法、数据采集装置、存储介质及电子设备 | |
CN113420006A (zh) | 数据迁移方法、装置、电子设备及计算机可读介质 | |
CN113779048A (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 |