一种基于关系型数据库形成Hive数据仓库的方法及系统的制作方法

文档序号:10655263阅读:247来源:国知局
一种基于关系型数据库形成Hive数据仓库的方法及系统的制作方法
【专利摘要】本发明涉及一种基于关系型数据库形成Hive数据仓库的方法及系统,其方法包括以下步骤:将数据源关联到关系型数据库中;在关系型数据库中将数据源中的源数据抽取到Hive中;判断抽取的源数据是否为按天抽取增量的原始数据,若是则在Hive中按日期建立时间分区外部表,每天将关系型数据库中源数据的增量抽取到对应的时间分区外部表中;若不是则将Hive中已有的数据删除,并将关系型数据库中源数据的全量抽取到Hive中形成Hive原始数据外部表;将存储有原始数据增量的时间分区外部表和Hive原始数据外部表组合形成Hive数据仓库。本发明将不同关系型数据库的数据集中到一点,可以按照全量进行操作也可以按照日期进行增量操作,减少人工干预。
【专利说明】
一种基于关系型数据库形成H i ve数据仓库的方法及系统
技术领域
[〇〇〇1]本发明涉及一种形成Hive数据仓库的方法及系统,具体的涉及一种基于关系型数据库形成Hive数据仓库的方法及系统。【背景技术】
[0002]随着核心业务系统的解耦以及外围平台的不断扩展,系统间数据一致性和系统内各处理环节与接口的数据一致性问题日趋重要,如何快速发现、定位数据差异,并进行针对性处理修复数据,是目前数据一致性管理中的重要工作。随着核心业务系统的解耦以及外围平台的不断扩展,生成数据的数据源越来越多,对于数据的统计、分析造成了不方便性, 同时对在生成库上进行统计分析容易造成对生产库的影响,现将数据进行统一形成数据仓库。现在的处理模式存在以下缺陷:对于抽取语句的配置与变更与人工干预,对于hive表的变更需要人工参与,对于hive表增加字段则修改表结构之前的数据无该字段信息,同时无法进行增加,如历史数据需要该字段则需要重新进行抽取数据。
【发明内容】

[0003]本发明所要解决的技术问题是提供一种基于关系型数据库形成Hive数据仓库的方法及系统,减少人工干预,可实现全量和增量的抽取数据。
[0004]本发明解决上述技术问题的技术方案如下:一种基于关系型数据库形成Hive数据仓库的方法,包括以下步骤:
[0005]S1,通过配置数据源的网络配置信息与抽取配置信息将数据源关联到关系型数据库中;
[0006]S2,在关系型数据库中通过网络配置信息和抽取配置信息将数据源中的源数据抽取到Hive中;
[0007]S3,判断在关系型数据库中抽取的源数据是否为按天抽取增量的原始数据,
[0008]若是则在Hive中按日期建立时间分区外部表,每天将关系型数据库中源数据的增量抽取到对应的时间分区外部表中;
[0009]若不是则将Hive中已有的数据删除,并将关系型数据库中源数据的全量抽取到 Hive中形成Hive原始数据外部表;
[0010]S4,将存储有原始数据增量的时间分区外部表和Hive原始数据外部表组合形成 Hive数据仓库。
[0011]本发明的有益效果是:本发明一种基于关系型数据库形成Hive数据仓库的方法采用两层体系进行异常分析定位,基于抽取全量的,每天hive中的数据进行删除,然后原始数据抽取到对应的hive表中;按天抽取增量的,hive按照日期建立分区外部表,每天将增量抽取到对应的分区中;这样可以将不同关系型数据库的数据集中到一点,可以对全量数据进行统计分析,同时可以按照全量进行操作也可以按照日期进行增量操作,减少人工干预。
[0012]在上述技术方案的基础上,本发明还可以做如下改进。
[0013]进一步,所述网路配置信息包括IP、用户名和密码。
[0014]进一步,所述抽取配置信息包括sql语句的属主、sql语句和抽取周期。
[0015]进一步,在步骤S3中,判断在关系型数据库中抽取的源数据是否为按天抽取增量的原始数据的判断标准为:抽取配置信息中的抽取周期是否为按天抽取。
[0016]进一步,在步骤S3中,在Hive中按日期建立时间分区外部表具体为:时间分区外部表按照年、月、日建立。
[0017]基于上述一种基于关系型数据库形成Hive数据仓库的方法,本发明还提供一种基于关系型数据库形成Hive数据仓库的系统。
[0018]—种基于关系型数据库形成Hive数据仓库的系统,包括关联模块、抽取模块、判断执行模块和成型模块,
[0019]所述关联模块,其用于通过配置数据源的网络配置信息与抽取配置信息将数据源关联到关系型数据库中;
[0020]所述抽取模块,其用于在关系型数据库中通过网络配置信息和抽取配置信息将数据源中的源数据抽取到Hive中;
[0021]所述判断执行模块,其用于判断在关系型数据库中抽取的源数据是否为按天抽取增量的原始数据,
[0022]若是则在Hive中按日期建立时间分区外部表,每天将关系型数据库中源数据的增量抽取到对应的时间分区外部表中;[〇〇23]若不是则将Hive中已有的数据删除,并将关系型数据库中源数据的全量抽取到 Hive中形成Hive原始数据外部表;
[0024]所述成型模块,其用于将存储有原始数据增量的时间分区外部表和Hive原始数据外部表组合形成Hi ve数据仓库。[〇〇25]本发明的有益效果是:本发明一种基于关系型数据库形成Hive数据仓库的系统采用两层体系进行异常分析定位,基于抽取全量的,每天hive中的数据进行删除,然后原始数据抽取到对应的hive表中;按天抽取增量的,hive按照日期建立分区外部表,每天将增量抽取到对应的分区中;这样可以将不同关系型数据库的数据集中到一点,可以对全量数据进行统计分析,同时可以按照全量进行操作也可以按照日期进行增量操作,减少人工干预。
[0026]在上述技术方案的基础上,本发明还可以做如下改进。
[0027]进一步,所述网路配置信息包括IP、用户名和密码。[〇〇28]进一步,所述抽取配置信息包括sql语句的属主、sql语句和抽取周期。
[0029]进一步,在所述判断执行模块中,判断在关系型数据库中抽取的源数据是否为按天抽取增量的原始数据的判断标准为:抽取配置信息中的抽取周期是否为按天抽取。
[0030]进一步,在所述判断执行模块中,在Hive中按日期建立时间分区外部表具体为:时间分区外部表按照年、月、日建立。【附图说明】
[0031]图1为本发明一种基于关系型数据库形成Hive数据仓库的方法的流程图;[〇〇32]图2为本发明一种基于关系型数据库形成Hive数据仓库的系统的框图;[〇〇33]图3为本发明一种基于关系型数据库形成Hive数据仓库的系统执行的原理图。【具体实施方式】
[0034]以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。[〇〇35]如图1所示,一种基于关系型数据库形成Hive数据仓库的方法,包括以下步骤:
[0036]S1,通过配置数据源的网络配置信息与抽取配置信息将数据源关联到关系型数据库中。所述网路配置信息包括IP、用户名和密码;所述抽取配置信息包括sql语句的属主、 sql语句和抽取周期。
[0037]S2,在关系型数据库中通过网络配置信息和抽取配置信息将数据源中的源数据抽取到Hive中。
[0038]S3,判断在关系型数据库中抽取的源数据是否为按天抽取增量的原始数据,[〇〇39]若是则在Hi ve中按日期建立时间分区外部表,每天将关系型数据库中源数据的增量抽取到对应的时间分区外部表中;
[0040]若不是则将Hive中已有的数据删除,并将关系型数据库中源数据的全量抽取到 Hive中形成Hive原始数据外部表。
[0041]S4,将存储有原始数据增量的时间分区外部表和Hive原始数据外部表组合形成 Hive数据仓库。
[0042]在步骤S3中,判断在关系型数据库中抽取的源数据是否为按天抽取增量的原始数据的判断标准为:抽取配置信息中的抽取周期是否为按天抽取。在Hive中按日期建立时间分区外部表具体为:时间分区外部表按照年、月、日建立。[〇〇43]本发明一种基于关系型数据库形成Hive数据仓库的方法提出通过按天抽取关系型数据库增量数据形成Hive数据仓库,用于对数据进行进一步的加工以及对数据的应用、 分析。抽取数据分的方法为在hive中按天建立原始数据的外部表;第一次抽取时按照全量进行抽取放入当天的分区内;每天定时抽取增量,放入对应的日期分区内。对于对已有数据更新的问题,因hive不支持DML语句,即不支持UPDATE、DELETE语句,需要对已有数据进行去重工作,根据操作时间和唯一标识符取得该条语句最后一条语句。需要注意的是,因抽取数据的数据源不同,针对抽取的语句也会不同,要保证不同的抽取数据源的抽取语句的字段数保持一致,并相对应的字段表达的意思应为相同类型,现在配置抽取语句为人工配置,需要对抽取数据源的有足够的了解,另外,如需要在hive表中增加字段,需通过人工手动添加,同时要在抽取语句上进行字段的增加,在以后的数据中会出现增加的字段值,以前的数据无该字段值。本发明的方法引入数据仓库来解决基于生产库产生的数据进行数据分析, 将数据抽取到HIVE仓库,按照hive中生成的表进行全量数据的查询与分析。[〇〇44]通过对原始数据的归类以及综合维护人员的实际处理经验,目前整理出来的针对原始数据的定位方式包括:
[0045]1、原始数据只在一个关系型数据库中存在。
[0046]2、原始数据在不同的关系型数据库中存在,但是表结构相同,存储的数据类型也相同。
[0047]3、原始数据在不同的关系型数据库中存在,表结构不相同。[〇〇48]4、按天取原始数据的增量。
[0049]5、全量抽取原始数据。
[0050]通过对上述五种情况的分析,第一种与第二种通过维护源数据管理库和数据抽取管理库,sql语句写成一致即可,第三种情况比较复杂,需要业务人员对不同的生成库的业务有一定的了解,同时sql语句每列的定义要一致才可以。第四种在hive中按天建立分区, 将增量数据抽取到对应的分区中,第五种每天都抽取全量,hive表不按照分区建表。
[0051]基于上述分析结果,本发明的方法采用两层体系进行异常分析定位:[〇〇52]1、基于抽取全量的,每天hive中的数据进行删除,然后原始数据抽取到对应的hive表中。
[0053]2、按天抽取增量的,hive按照日期建立分区外部表,每天将增量抽取到对应的分区中。[〇〇54]本发明一种基于关系型数据库形成Hive数据仓库的方法采用两层体系进行异常分析定位,基于抽取全量的,每天hive中的数据进行删除,然后原始数据抽取到对应的hive 表中;按天抽取增量的,hive按照日期建立分区外部表,每天将增量抽取到对应的分区中; 这样可以将不同关系型数据库的数据集中到一点,可以对全量数据进行统计分析,同时可以按照全量进行操作也可以按照日期进行增量操作,减少人工干预。
[0055]基于上述一种基于关系型数据库形成Hive数据仓库的方法,本发明还提供一种基于关系型数据库形成Hive数据仓库的系统。[〇〇56]如图2所示,一种基于关系型数据库形成Hive数据仓库的系统,包括关联模块、抽取模块、判断执行模块和成型模块,所述关联模块,其用于通过配置数据源的网络配置信息与抽取配置信息将数据源关联到关系型数据库中;所述抽取模块,其用于在关系型数据库中通过网络配置信息和抽取配置信息将数据源中的源数据抽取到Hive中;所述判断执行模块,其用于判断在关系型数据库中抽取的源数据是否为按天抽取增量的原始数据,若是则在Hi ve中按日期建立时间分区外部表,每天将关系型数据库中源数据的增量抽取到对应的时间分区外部表中;若不是则将Hive中已有的数据删除,并将关系型数据库中源数据的全量抽取到Hive中形成Hive原始数据外部表;所述成型模块,其用于将存储有原始数据增量的时间分区外部表和Hive原始数据外部表组合形成Hive数据仓库。[〇〇57]所述网路配置信息包括IP、用户名和密码。所述抽取配置信息包括sql语句的属主、sql语句和抽取周期。
[0058]在所述判断执行模块中,判断在关系型数据库中抽取的源数据是否为按天抽取增量的原始数据的判断标准为:抽取配置信息中的抽取周期是否为按天抽取。在所述判断执行模块中,在Hive中按日期建立时间分区外部表具体为:时间分区外部表按照年、月、日建立。[〇〇59]在本发明一种基于关系型数据库形成Hive数据仓库的系统,系统执行的原理如图 3所示。
[0060]整个Hive数据仓库可分为4个部分:源数据管理库:集中管理需要抽取的关系型数据库的配置信息;数据抽取管理库:集中管理抽取数据的sql语句的配置信息;Hive源数据管理库:集中管理hive中表结构信息的配置信息。任务调度:负责各个结果分析任务的调度工作,同时负责关联规则和特征规则的执行顺序控制。
[0061]本发明一种基于关系型数据库形成Hive数据仓库的系统采用两层体系进行异常分析定位,基于抽取全量的,每天hive中的数据进行删除,然后原始数据抽取到对应的hive 表中;按天抽取增量的,hive按照日期建立分区外部表,每天将增量抽取到对应的分区中; 这样可以将不同关系型数据库的数据集中到一点,可以对全量数据进行统计分析,同时可以按照全量进行操作也可以按照日期进行增量操作,减少人工干预。
[0062]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种基于关系型数据库形成Hive数据仓库的方法,其特征在于,包括以下步骤:S1,通过配置数据源的网络配置信息与抽取配置信息将数据源关联到关系型数据库 中;52,在关系型数据库中通过网络配置信息和抽取配置信息将数据源中的源数据抽取到 Hive 中;53,判断在关系型数据库中抽取的源数据是否为按天抽取增量的原始数据,若是则在Hive中按日期建立时间分区外部表,每天将关系型数据库中源数据的增量抽 取到对应的时间分区外部表中;若不是则将Hive中已有的数据删除,并将关系型数据库中源数据的全量抽取到Hive中 形成Hive原始数据外部表;54,将存储有原始数据增量的时间分区外部表和Hive原始数据外部表组合形成Hive数 据仓库。2.根据权利要求1所述的一种基于关系型数据库形成Hive数据仓库的方法,其特征在 于:所述网路配置信息包括IP、用户名和密码。3.根据权利要求1或2所述的一种基于关系型数据库形成Hive数据仓库的方法,其特征 在于:所述抽取配置信息包括sql语句的属主、sql语句和抽取周期。4.根据权利要求3所述的一种基于关系型数据库形成Hive数据仓库的方法,其特征在 于,在步骤S3中,判断在关系型数据库中抽取的源数据是否为按天抽取增量的原始数据的 判断标准为:抽取配置信息中的抽取周期是否为按天抽取。5.根据权利要求4所述的一种基于关系型数据库形成Hive数据仓库的方法,其特征在 于,在步骤S3中,在Hive中按日期建立时间分区外部表具体为:时间分区外部表按照年、月、 日建立。6.—种基于关系型数据库形成Hive数据仓库的系统,其特征在于:包括关联模块、抽取 模块、判断执行模块和成型模块,所述关联模块,其用于通过配置数据源的网络配置信息与抽取配置信息将数据源关联 到关系型数据库中;所述抽取模块,其用于在关系型数据库中通过网络配置信息和抽取配置信息将数据源 中的源数据抽取到Hive中;所述判断执行模块,其用于判断在关系型数据库中抽取的源数据是否为按天抽取增量 的原始数据,若是则在Hive中按日期建立时间分区外部表,每天将关系型数据库中源数据的增量抽 取到对应的时间分区外部表中;若不是则将Hive中已有的数据删除,并将关系型数据库中源数据的全量抽取到Hive中 形成Hive原始数据外部表;所述成型模块,其用于将存储有原始数据增量的时间分区外部表和Hive原始数据外部 表组合形成Hive数据仓库。7.根据权利要求6所述的一种基于关系型数据库形成Hive数据仓库的系统,其特征在 于:所述网路配置信息包括IP、用户名和密码。8.根据权利要求6或7所述的一种基于关系型数据库形成Hive数据仓库的系统,其特征在于:所述抽取配置信息包括sql语句的属主、sql语句和抽取周期。9.根据权利要求8所述的一种基于关系型数据库形成Hive数据仓库的系统,其特征在 于,在所述判断执行模块中,判断在关系型数据库中抽取的源数据是否为按天抽取增量的 原始数据的判断标准为:抽取配置信息中的抽取周期是否为按天抽取。10.根据权利要求9所述的一种基于关系型数据库形成Hive数据仓库的系统,其特征在 于,在所述判断执行模块中,在Hive中按日期建立时间分区外部表具体为:时间分区外部表 按照年、月、日建立。
【文档编号】G06F17/30GK106021422SQ201610319933
【公开日】2016年10月12日
【申请日】2016年5月13日
【发明人】张森威
【申请人】北京思特奇信息技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1