本技术涉及大数据,特别是涉及一种数据仓库管理方法、装置、计算机设备和存储介质。
背景技术:
1、随着大数据时代的到来,平台上用户学习的数据量在不断增大,表的数量也在不断增多,繁琐的建表,表与表直接的层次结构,复杂的逻辑关系,还有不同数据库的不同表的规则,这些慢慢都让人们在使用大数据仓库的时候,很多基本信息不明确,查询需要的信息会浪费大量时间,也会造成很多重复的操作,产生的问题主要表现在:
2、(一)表的元数据不清晰:对于现在的大数据仓库各层次的表,我们很多时候很难对每张表的基本信息有所了解,很多表的基本信息会影响到使用者以及后来者对这张表直观的判断,以及后续的计算处理,还有问题排查。
3、(二)表统计信息的缺失:随着工作的深入,会发现大数据实际操作中有很多让我们头疼的问题,在解决这些问题的过程中,慢慢发现,很多统计表信息的操作被不断重复,表信息的缺失也影响我们处理问题时做出的判断以及该采取的正确策略,来保障项目或者集群更加稳定运行。
4、(三)血缘关系的体现:对于现阶段基本的大数据仓库结构,正常情况会有数据贴源层,数据建模层,数据应用层,数据展示层,但是不同层之间的表之间的联系以及转化关系,我们很难清楚。同样某个层中其中一张表出了问题,随之可能造成的连锁反应,会影响到哪,也没有直观把握。整个数据仓库横着看是一层层的表,竖着看是一个个树状血缘关系图。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种能够针对数据仓库中表的治理的数据仓库管理方法、装置、计算机设备和存储介质。
2、一方面,提供一种数据仓库管理方法,所述方法包括:
3、建立异构数据数据源信息整合流程,针对不同数据源自动生成大数据库仓库表,并建立所述大数据库仓库表与数据源的关联关系;
4、响应于在所述大数据库仓库表建表时,在mysql数据库内记录所述大数据库仓库表的建表时间、最新修改时间、字段内容、表分区情况、文件存储格式、文件存储位置以及创建用户信息形成记录元数据空表;
5、在mysql数据库内形成仓库表数据统计表,响应于所述大数据库仓库表在建表、被修改或被查询访问时,在所述仓库表数据统计表内记录所述仓库表数据管理表的表分区数、字段数及存储量;
6、在mysql数据库内解析数据在不同层级之间计算传输的过程中的sql语句内容,获取相关联的大数据库仓库表以及计算引擎,遍历获取各层之间的上下级关系形成血缘关系空表;
7、根据所述记录元数据空表、所述仓库表数据统计表和所述血缘关系空表生成展示界面,根据监控信息的修改变化自动修改并更新所述展示界面。
8、在其中一个实施例中,所述建立异构数据数据源信息整合流程,针对不同数据源自动生成大数据库仓库表,并建立所述大数据库仓库表与数据源的关联关系步骤,包括:
9、获取数据源数据,根据数据源的种类分类为传统数据库和非传统数据库;
10、建立hive表与传统数据库内数据源之间的连接,获取传统数据库中的数据源中的信息,调用hive表生成程序,自动生成hive表作为数据仓库表;
11、通过解析非传统数据库内数据源收集建表信息,调用hive表生成程序,自动生成hive表作为数据仓库表;
12、在自动生成大数据库仓库表时,同步建立所述大数据库仓库表与数据源的关联关系。
13、在其中一个实施例中,所述建立hive表与传统数据库内数据源之间的连接,获取传统数据库中的数据源中的信息,调用hive表生成程序,自动生成hive表作为数据仓库表步骤,包括:
14、调用对应的数据库驱动jar包,访问传统数据库,查找传统数据库中存储元数据信息的表,查询获取元数据信息,所述元数据信息包括表字段、字段类型、字段注释及表注释;
15、基于hive表生成程序按照hive数据仓库的建表规则重组,并增添表的存储格式和压缩格式信息,自动生成建表语句并执行,生成数据仓库表。
16、在其中一个实施例中,所述通过解析非传统数据库内数据源收集建表信息,调用hive表生成程序,自动生成hive表作为数据仓库表步骤,包括:
17、将非传统数据库内数据源存储在一被访问位置;
18、根据被访问位置路径读取非传统数据库内数据源的数据内容,解析数据内容,加载到内存,形成临时表,根据临时表的内容进行数据类型推测;
19、对临时表的数据进行去空、去重处理,按列进行随机抽样,通过概率统计方式判断每列的数据类型;
20、基于hive表生成程序按照hive数据仓库的建表规则重组,并增添表的存储格式和压缩格式信息,自动生成建表语句并执行,生成数据仓库表。
21、在其中一个实施例中,所述响应于在所述大数据库仓库表建表时,在mysql数据库内记录所述大数据库仓库表的建表时间、最新修改时间、字段内容、表分区情况、文件存储格式、文件存储位置以及创建用户信息形成记录元数据空表步骤,包括:
22、每当大数据库仓库表建好时,获取建表时间并记录元数据空表中,同时在所述记录元数据空表中维护一个为空值的最新修改时间;
23、获取所述大数据库仓库表的字段内容、表分区情况、文件存储格式、文件存储位置以及创建用户信息,并记录在所述记录元数据空表中;
24、响应于监控程序监控到所述大数据库仓库表被修改后,生成一个修改时间替换为最新修改时间,并且将修改后的字段覆盖之前的字段内容,以更新所述记录元数据空表。
25、在其中一个实施例中,所述在mysql数据库内解析数据在不同层级之间计算传输的过程中的sql语句内容,获取相关联的大数据库仓库表以及计算引擎,遍历获取各层之间的上下级关系形成血缘关系空表步骤,包括:
26、获取数据在不同层级之间计算传输的过程中的sql语句;
27、解析sql语句内容并存储在对应的大数据库仓库表内;
28、获取相关联的大数据库仓库表以及计算引擎;
29、根据相关联的大数据库仓库表内的sql语句内容,先向上和向下遍历节点,再分别水平遍历多个父元素节点和多个子元素节点,继续往上或者往下遍历,直至找到的上级表和下级表字段值为空,将获得的所有记录进行展示;
30、在mysql数据库内形成各层之间相关联的全部大数据库仓库表对应的血缘关系空表;
31、将mysql数据库内最上级的父元素节点与传统数据库中的数据源通过解析datax数据传输框架中每张表对应的传输任务的json脚本,识别数据传输的源表和目标表,生成对应的血缘关系空表;
32、将mysql数据库内最上级的父元素节点与非传统数据库中的数据源根据完成数据传输所使用的python程序中用于传输的源表和目标表,生成对应的血缘关系空表。
33、在其中一个实施例中,所述根据所述记录元数据空表、所述仓库表数据统计表和所述血缘关系空表生成展示界面,根据监控信息的修改变化自动修改并更新所述展示界面步骤,包括:
34、根据所述记录元数据空表、所述仓库表数据统计表和所述血缘关系空表形成在mysql数据库内的大数据库仓库表的血缘关系树形结构并展示,血缘关系树形结构中的每一大数据库仓库表对应链接所述记录元数据空表和所述仓库表数据统计表的内容;
35、根据所建立的所述大数据库仓库表与数据源的关联关系,设置表信息同步渠道;
36、当数据源的表信息发生修改时,控制表信息同步渠道打开,程序加载两个数据库的相同的表的字段信息,进行循环对比,若存在不同内容则启动修改命令,修改所述大数据库仓库表和对应的血缘关系空表的信息,并在展示界面同步展示。
37、另一方面,提供了一种数据仓库管理装置,所述装置包括:
38、数据源信息整合模块,用于建立异构数据数据源信息整合流程,针对不同数据源自动生成大数据库仓库表,并建立所述大数据库仓库表与数据源的关联关系;
39、形成记录元数据空表模块,用于响应于在所述大数据库仓库表建表时,在mysql数据库内记录所述大数据库仓库表的建表时间、最新修改时间、字段内容、表分区情况、文件存储格式、文件存储位置以及创建用户信息形成记录元数据空表;
40、形成仓库表数据统计表模块,用于在mysql数据库内形成仓库表数据统计表,响应于所述大数据库仓库表在建表、被修改或被查询访问时,在所述仓库表数据统计表内记录所述仓库表数据管理表的表分区数、字段数及存储量;
41、形成血缘关系空表模块,用于在mysql数据库内解析数据在不同层级之间计算传输的过程中的sql语句内容,获取相关联的大数据库仓库表以及计算引擎,遍历获取各层之间的上下级关系形成血缘关系空表;
42、展示界面控制模块,用于根据所述记录元数据空表、所述仓库表数据统计表和所述血缘关系空表生成展示界面,根据监控信息的修改变化自动修改并更新所述展示界面。
43、再一方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
44、建立异构数据数据源信息整合流程,针对不同数据源自动生成大数据库仓库表,并建立所述大数据库仓库表与数据源的关联关系;
45、响应于在所述大数据库仓库表建表时,在mysql数据库内记录所述大数据库仓库表的建表时间、最新修改时间、字段内容、表分区情况、文件存储格式、文件存储位置以及创建用户信息形成记录元数据空表;
46、在mysql数据库内形成仓库表数据统计表,响应于所述大数据库仓库表在建表、被修改或被查询访问时,在所述仓库表数据统计表内记录所述仓库表数据管理表的表分区数、字段数及存储量;
47、在mysql数据库内解析数据在不同层级之间计算传输的过程中的sql语句内容,获取相关联的大数据库仓库表以及计算引擎,遍历获取各层之间的上下级关系形成血缘关系空表;
48、根据所述记录元数据空表、所述仓库表数据统计表和所述血缘关系空表生成展示界面,根据监控信息的修改变化自动修改并更新所述展示界面。
49、又一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
50、建立异构数据数据源信息整合流程,针对不同数据源自动生成大数据库仓库表,并建立所述大数据库仓库表与数据源的关联关系;
51、响应于在所述大数据库仓库表建表时,在mysql数据库内记录所述大数据库仓库表的建表时间、最新修改时间、字段内容、表分区情况、文件存储格式、文件存储位置以及创建用户信息形成记录元数据空表;
52、在mysql数据库内形成仓库表数据统计表,响应于所述大数据库仓库表在建表、被修改或被查询访问时,在所述仓库表数据统计表内记录所述仓库表数据管理表的表分区数、字段数及存储量;
53、在mysql数据库内解析数据在不同层级之间计算传输的过程中的sql语句内容,获取相关联的大数据库仓库表以及计算引擎,遍历获取各层之间的上下级关系形成血缘关系空表;
54、根据所述记录元数据空表、所述仓库表数据统计表和所述血缘关系空表生成展示界面,根据监控信息的修改变化自动修改并更新所述展示界面。
55、上述数据仓库管理方法、装置、计算机设备和存储介质,通过建立异构数据数据源信息整合流程,针对不同数据源自动生成大数据库仓库表,能够对各种类型的不同数据源进行管控,实现了对非hive表格式的数据源的关联管理,而且通过展示界面方式直观地展示表之间的血缘关系,根据监控信息的修改变化自动修改并更新所述展示界面,能够有效追溯和管理表格内容,尤其是还能追溯到非hive表格式的数据源,实现了对各种类型的不同数据源信息进行综合管控。从建表开始,到表的基本信息,表数据传递后,表的统计信息,再到数据从表与表之间传递后,表与表之间的血缘关系,这个整体过程都可以让使用者充分了解数据仓库里面每一张表的情况,加强了对数据仓库的治理,加强了表和数据一致性问题的排查效率,能有效避免常见问题的发生以及实现不同项目采用不同格式文件的策略。