CN110781183B - Hive数据库中增量数据的处理方法、装置以及计算机设备 - Google Patents

Hive数据库中增量数据的处理方法、装置以及计算机设备 Download PDF

Info

Publication number
CN110781183B
CN110781183B CN201910851212.3A CN201910851212A CN110781183B CN 110781183 B CN110781183 B CN 110781183B CN 201910851212 A CN201910851212 A CN 201910851212A CN 110781183 B CN110781183 B CN 110781183B
Authority
CN
China
Prior art keywords
data
incremental
dynamic partition
grouping
partition table
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
CN201910851212.3A
Other languages
English (en)
Other versions
CN110781183A (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.)
Ping An Property and Casualty Insurance Company of China Ltd
Original Assignee
Ping An Property and Casualty Insurance Company of China 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 Ping An Property and Casualty Insurance Company of China Ltd filed Critical Ping An Property and Casualty Insurance Company of China Ltd
Priority to CN201910851212.3A priority Critical patent/CN110781183B/zh
Publication of CN110781183A publication Critical patent/CN110781183A/zh
Application granted granted Critical
Publication of CN110781183B publication Critical patent/CN110781183B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种Hive数据库中增量数据的处理方法、装置以及计算机设备,所述方法包括:获取Hive数据库表的全量数据和增量数据,并使用预设操作命令将所述全量数据和增量数据进行合并,得到合并后的数据;使用预设开窗函数对合并后的数据进行分组,再对各分组后的数据进行降序排序;基于Hive机制,根据每个分组数据的字段类型分别创建对应的动态分区表;根据各个动态分区表存储各分组数据,再将各动态分区表保存在预设文件夹中。本发明基于数据处理提供一种Hive数据库中增量数据的处理方法,能够减少传统方式中需要进行多次关联所产生的时间耗费,并且可以减少对增量数据的获取次数,提高对增量数据的处理效率。

Description

Hive数据库中增量数据的处理方法、装置以及计算机设备
技术领域
本发明涉及计算机技术领域,尤其涉及一种Hive数据库中增量数据的处理方法、装置以及计算机设备。
背景技术
传统的增量数据和全量数据处理方式中,经常会出现增量数据与全量数据在更新的同时,还需要保留覆盖掉的数据到另一张表中,以留到下一步继续处理。传统的方式,在Hive数据库表中,含有全量数据的数据库表需要与存储有增量数据的数据库表进行多次数据表的关联,然后将关联之后的数据再进行关联才能获得全量数据与增量数据之间的差异数据,既耗时又耗力。
发明内容
有鉴于此,本发明实施例提供一种Hive数据库中增量数据的处理方法、装置以及计算机设备,能够减少传统方式中需要进行多次关联所产生的时间耗费,减少对增量数据的获取次数,提高对增量数据的处理效率。
一方面,本发明实施例提供了一种Hive数据库中增量数据的处理方法,该方法包括:
获取Hive数据库表的全量数据和增量数据,并使用预设操作命令将所述全量数据和增量数据进行合并,得到合并后的数据;
使用预设开窗函数对合并后的数据进行分组,再对各分组后的数据进行降序排序;
基于Hive机制,根据每个分组数据的字段类型分别创建对应的动态分区表;
根据各个动态分区表存储各分组数据,再将各动态分区表保存在预设文件夹中。
另一方面,本发明实施例提供了一种Hive数据库中增量数据的处理装置,所述装置包括:
合并单元,用于获取Hive数据库表的全量数据和增量数据,并使用预设操作命令将所述全量数据和增量数据进行合并,得到合并后的数据;
分组单元,用于使用预设开窗函数对合并后的数据进行分组,再对各分组后的数据进行降序排序;
创建单元,用于基于Hive机制,根据每个分组数据的字段类型分别创建对应的动态分区表;
存储单元,用于根据各个动态分区表存储各分组数据,再将各动态分区表保存在预设文件夹中。
又一方面,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的Hive数据库中增量数据的处理方法。
再一方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者一个以上计算机程序,所述一个或者一个以上计算机程序可被一个或者一个以上的处理器执行,以实现如上所述的Hive数据库中增量数据的处理方法。
本发明实施例提供一种Hive数据库中增量数据的处理方法、装置以及计算机设备,其中方法包括:获取Hive数据库表的全量数据和增量数据,并使用预设操作命令将所述全量数据和增量数据进行合并,得到合并后的数据;使用预设开窗函数对合并后的数据进行分组,再对各分组后的数据进行降序排序;基于Hive机制,根据每个分组数据的字段类型分别创建对应的动态分区表;根据各个动态分区表存储各分组数据,再将各动态分区表保存在预设文件夹中。本发明基于数据处理提供一种Hive数据库中增量数据的处理方法,将全量数据和增量数据进行合并处理,能够减少传统方式中需要进行多次关联所产生的时间耗费,并且合并处理后能够一次性的获取增量数据可以减少对增量数据的获取次数,提高对增量数据的处理效率。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种Hive数据库中增量数据的处理方法的应用场景示意图;
图2是本发明实施例提供的一种Hive数据库中增量数据的处理方法的示意流程图;
图3是本发明实施例提供的一种Hive数据库中增量数据的处理方法的另一示意流程图;
图4是本发明实施例提供的一种Hive数据库中增量数据的处理方法的另一示意流程图;
图5是本发明实施例提供的一种Hive数据库中增量数据的处理装置的示意性框图;
图6是本发明实施例提供的一种Hive数据库中增量数据的处理装置的另一示意性框图;
图7是本发明实施例提供的一种Hive数据库中增量数据的处理装置的另一示意性框图;
图8是本发明实施例提供的一种Hive数据库中增量数据的处理装置的另一示意性框图;
图9是本发明实施例提供的一种Hive数据库中增量数据的处理装置的另一示意性框图;
图10是本发明实施例提供的一种计算机设备的结构组成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1,图1为本发明实施例提供的一种Hive数据库中增量数据的处理方法的应用场景示意图,所述应用场景包括:
(1)服务器,服务器用于提供数据传输的后端服务。服务器为一种计算机设备,可以为单台服务器或者服务器集群,也可以为云服务器,或者为专门的网页服务器,接收外部终端的访问,通过有线网络或者无线网络与终端连接。
(2)终端,图1所示终端包括终端1、终端2和终端3,所述终端通过访问服务器,从服务器上获取全量数据和增量数据,在终端上将所获取的全量数据和增量数据插入终端上的动态分区表中。所述终端可以为智能手机、智能手表、笔记本电脑、平板电脑或者台式电脑等电子设备,终端通过有线网络或者无线网络访问服务器。
请参阅图2,图2为本发明实施例提供的一种Hive数据库中增量数据的处理方法的示意流程图。如图2所示,该方法包括以下步骤S101~S104。
S101,获取Hive数据库表的全量数据和增量数据,并使用预设操作命令将所述全量数据和增量数据进行合并,得到合并后的数据。
在本发明实施例中,所述预设操作命令包括SQL-UNION操作符;所述使用预设操作命令将所述全量数据和增量数据进行合并,具体包括:使用SQL-UNION操作符将全量数据和增量数据按照数据的先后顺序进行合并。在本实施例中,将全量数据和增量数据按照数据的先后顺序进行合并可以是按照全量数据在前,增量数据在后的顺序对全量数据和增量数据进行合并;具体的,使用SQL-UNION操作符将两个数据表中的数据进行合并的格式为:“select{字段名1}{字段名2}…{字段名n}from{表名1}union all select{字段名1}{字段名2}…{字段名n}from{表名2}”。例如下面有两张数据表,分别为数据表Employees_China、Employees_USA:
Employees_China
E_ID E_Name
01 Zhang,hua
02 Wang,er
03 Yao,ming
Employees_USA
E_ID E_Name
01 Adams,john
02 Bush,george
03 Kobe,bill
使用SQL-UNION操作符将两张数据表中的数据进行合并,可以使用以下命令:“select E_ID E_Name from Employees_China union all select E_ID E_Name fromEmployees_USA”,使用SQL-UNION操作符进行合并后,最终会得到以下结果:
Employees_China&USA
E_ID E_Name
01 Zhang,hua
02 Wang,er
03 Yao,ming
01 Adams,john
02 Bush,george
03 Kobe,bill
S102,使用预设开窗函数对合并后的数据进行分组,再对各分组后的数据进行降序排序。
在本发明实施例中,所述预设开窗函数即OVER子句,开窗函数的调用格式为:函数名(列)OVER(选项),在本实施例中,使用开窗函数将合并后的数据进行分组,以得到以下分组:纯老数据、纯新数据、与新数据的主键有重复的老数据以及与老数据的主键有重复的新数据;例如,对于纯老数据,所述预设开窗函数的运行形式可以为:“select key,value,isold over(distribute by key)from{数据表表名}”;对于纯新数据,所述预设开窗函数的运行形式可以为:“select key,value,isnew over(distribute by key)from{数据表表名}”;对于与新数据的主键有重复的老数据,所述预设开窗函数的运行形式可以为:“select key,value,1isnew over(distribute by key)from{数据表表名}”;对于与老数据的主键有重复的新数据,所述预设开窗函数的运行形式可以为:“select key,value,0isnew over(distribute by key)from{数据表表名}”。
在对合并后的数据进行分组后,需要对各分组数据进行降序排序,在具体实现中,可以使用开窗函数row_number()over(order by a.x)对各分组数据进行降序排序,其中,order by用于对待排序的数据进行排序,而row_number()用于为排序后的每条数据条目返回一个对应的序号。显然,通过本实施例描述的开窗函数可以完成对合并数据的分组、排序与添加序号三步操作。
进一步地,如图3所示,所述所述预设开窗函数包括OVER子句;所述使用预设开窗函数对合并后的数据进行分组,包括以下步骤S201~S202:
S201,确定合并后的数据对应的数据表表名。
在本发明实施例中,使用SQL-UNION操作符将两张数据表中的数据进行合并,合并后将得到一张数据表,在该数据表中存储着合并后的数据,在本实施例中,合并后得到的数据表的表名为合并前两张数据表的表名的总称,例如合并前分别有两张数据表分别为Employees_China、Employees_USA,在合并之后得到的数据表的表名将为Employees_China&USA。
S202,根据所确定的数据表表名使用OVER子句对合并后的数据分组成多个类型组,其中,所述多个类型组包括:纯老数据组、纯新数据组、与纯新数据的主键有重复的老数据组以及与纯老数据的主键有重复的新数据组。
在本发明实施例中,使用OVER子句对合并后的数据分组成多个类型组,例如对于纯老数据,可以使用以下OVER子句对数据表的表名为Employees_China&USA的数据进行分组以得到纯老数据:“select key,value,isold over(distribute by key)from{Employees_China&USA}”;对于纯新数据,可以使用以下OVER子句对数据表的表名为Employees_China&USA的数据进行分组以得到纯新数据:“select key,value,isnew over(distribute by key)from{Employees_China&USA}”;对于与新数据的主键有重复的老数据,可以使用以下OVER子句对数据表的表名为Employees_China&USA的数据进行分组以得到与新数据的主键有重复的老数据:“select key,value,1isnew over(distribute bykey)from{Employees_China&USA}”;对于与老数据的主键有重复的新数据,可以使用以下OVER子句对数据表的表名为Employees_China&USA的数据进行分组以得到与老数据的主键有重复的新数据:“select key,value,0isnew over(distribute by key)from{Employees_China&USA}”。
S103,基于Hive机制,根据每个分组数据的字段类型分别创建对应的动态分区表。
在本发明实施例中,在创建动态分区表之前需要先确定分组数据中的字段类型,然后根据字段类型去创建相对应的动态分区表,其中,字段类型包括布尔型(boolean)、字节型(byte)、整型(int)、短整型(short)、长整型(long)或者单精度浮点型(float)等。在具体实现中,创建动态分区表的运行形式可为hiv>create table dpartition(id{字段类型},name{自定义动态分区表名}),其中,动态分区表的表名可以由用户自行定义,在此不作限制。
进一步地,如图4所示,所述根据每个分组数据的字段类型分别创建对应的动态分区表,包括以下步骤S301~S302:
S301,确定各分组数据中的至少一个字段类型。
在本发明实施例中,所述字段类型指的是分组数据中各字段的数据类型,利用现有的词法分析的软件工具对分组数据进行解析,比如基于C语言的lex和yacc,基于java的javacc和antlr等;本实施例选用javacc进行分析,其过程可以为:利用javacc生成class类文件,运行javacc中的预设解析程序,利用生成的class类文件解析指定的分组数据,解析出数据处理任务中所指定的分组数据的描述信息(如表标识或表名称),并通过查询oracle的元数据信息获取分组数据的字段描述信息,从而根据字段描述信息确定分组数据中字段的数据类型。例如,对于数据表Employees_China&USA中的数据进行分组后得到纯新数据包括:“E_ID 01,E_Name Adams,john”、“E_ID 02,E_Name Bush,george”、“E_ID 03,E_NameKobe,bill”,运行javacc中的预设解析程序对这些数据进行分析得到上述字段的数据类型为字符型(char)。
S302,基于Hive机制创建与所确定的每个字段类型对应的动态分区表。
在本发明实施例中,利用Hive提供的创建动态分区表的机制去创建相对应的动态分区表,具体的创建动态分区表的运行形式可以使用以下格式:hiv>create tabledpartition(id{字段类型},name{自定义动态分区表名}),例如,对于数据类型为字符型(char),创建动态分区表可以为:hiv>create table dpartition(id{char},name{自定义动态分区表名}),其中,动态分区表名可以由用户自行定义,在此不作限制。
S104,根据各个动态分区表存储各分组数据,再将各动态分区表保存在预设文件夹中。
在本发明实施例中,所述根据各个动态分区表存储各分组数据,具体包括:使用SQL语句中的INSERT SELECT语句将各分组数据导入各个动态分区表中。
具体的,在创建动态分区表后,需要将各分组数据导入各动态分区表中,在本实施例中,使用SQL语句将各分组数据导入各动态分区表中,具体为使用INSERT SELECT语句将各分组数据导入各动态分区表中,在将各分组数据导入各动态分区表时,所导入的字段个数必须与动态分区表中的字段个数相同,如果字段个数不相同,将导致无法正常导入。
需要说明的是,若所导入的字段个数必须与动态分区表中的字段个数不相同时,将在当前显示界面中针对数据无法正常导入动态分区表的事件进行显示以提示用户,具体为以推送消息的形式在当前显示界面中显示数据无法正常导入的信息,即将数据无法正常导入对应的文字信息以推送消息的形式显示在当前显示界面中,其中,若存在多个分组数据无法正常导入时,则以推送消息的形式在当前显示界面的显示方式可以按照一栏一栏的方式进行显示,一个推送消息占用一个推送消息显示栏,也可以按照推送消息的推送顺序进行显示。
由以上可见,本发明实施例通过获取Hive数据库表的全量数据和增量数据,并使用预设操作命令将所述全量数据和增量数据进行合并,得到合并后的数据;使用预设开窗函数对合并后的数据进行分组,再对各分组后的数据进行降序排序;基于Hive机制,根据每个分组数据的字段类型分别创建对应的动态分区表;根据各个动态分区表存储各分组数据,再将各动态分区表保存在预设文件夹中。本发明基于数据处理提供一种Hive数据库中增量数据的处理方法,将全量数据和增量数据进行合并处理,能够减少传统方式中需要进行多次关联所产生的时间耗费,并且合并处理后能够一次性的获取增量数据可以减少对增量数据的获取次数,提高对增量数据的处理效率。
请参阅图5,对应上述一种Hive数据库中增量数据的处理方法,本发明实施例还提出一种Hive数据库中增量数据的处理装置,该装置100包括:合并单元101、分组单元102、创建单元103、存储单元104。
其中,合并单元101,用于获取Hive数据库表的全量数据和增量数据,并使用预设操作命令将所述全量数据和增量数据进行合并,得到合并后的数据;
分组单元102,用于使用预设开窗函数对合并后的数据进行分组,再对各分组后的数据进行降序排序;
创建单元103,用于基于Hive机制,根据每个分组数据的字段类型分别创建对应的动态分区表;
存储单元104,用于根据各个动态分区表存储各分组数据,再将各动态分区表保存在预设文件夹中。
由以上可见,本发明实施例通过获取Hive数据库表的全量数据和增量数据,并使用预设操作命令将所述全量数据和增量数据进行合并,得到合并后的数据;使用预设开窗函数对合并后的数据进行分组,再对各分组后的数据进行降序排序;基于Hive机制,根据每个分组数据的字段类型分别创建对应的动态分区表;根据各个动态分区表存储各分组数据,再将各动态分区表保存在预设文件夹中。本发明基于数据处理提供一种Hive数据库中增量数据的处理方法,将全量数据和增量数据进行合并处理,能够减少传统方式中需要进行多次关联所产生的时间耗费,并且合并处理后能够一次性的获取增量数据可以减少对增量数据的获取次数,提高对增量数据的处理效率。
请参阅图6,所述预设操作命令包括SQL-UNION操作符;所述合并单元101,包括:
合并子单元101a,用于使用SQL-UNION操作符将全量数据和增量数据按照数据的先后顺序进行合并。
请参阅图7,所述预设开窗函数包括OVER子句;所述分组单元102,包括:
第一确定单元102a,用于确定合并后的数据对应的数据表表名;
分组子单元102b,用于根据所确定的数据表表名使用OVER子句对合并后的数据分组成多个类型组,其中,所述多个类型组包括:纯老数据组、纯新数据组、与纯新数据的主键有重复的老数据组以及与纯老数据的主键有重复的新数据组。
请参阅图8,所述创建单元103,包括:
第二确定单元103a,用于确定各分组数据中的至少一个字段类型;
创建子单元103b,用于基于Hive机制创建与所确定的每个字段类型对应的动态分区表。
请参阅图9,所述存储单元104,包括:
导入单元104a,用于使用SQL语句中的INSERT SELECT语句将各分组数据导入各个动态分区表中。
上述Hive数据库中增量数据的处理装置与上述Hive数据库中增量数据的处理方法一一对应,其具体的原理和过程与上述实施例所述方法相同,不再赘述。
上述Hive数据库中增量数据的处理装置可以实现为一种计算机程序的形式,计算机程序可以在如图10所示的计算机设备上运行。
图10为本发明一种计算机设备的结构组成示意图。该设备可以是终端,也可以是服务器,其中,终端可以是智能手机、平板电脑、笔记本电脑、台式电脑、个人数字助理和穿戴式装置等具有通信功能和语音输入功能的电子装置。服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。参照图10,该计算机设备500包括通过系统总线501连接的处理器502、非易失性存储介质503、内存储器504和网络接口505。其中,该计算机设备500的非易失性存储介质503可存储操作系统5031和计算机程序5032,该计算机程序5032被执行时,可使得处理器502执行一种Hive数据库中增量数据的处理方法。该计算机设备500的处理器502用于提供计算和控制能力,支撑整个计算机设备500的运行。该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序被处理器执行时,可使得处理器502执行一种Hive数据库中增量数据的处理方法。计算机设备500的网络接口505用于进行网络通信。本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器502执行所述计算机程序时实现如下操作:
获取Hive数据库表的全量数据和增量数据,并使用预设操作命令将所述全量数据和增量数据进行合并,得到合并后的数据;
使用预设开窗函数对合并后的数据进行分组,再对各分组后的数据进行降序排序;
基于Hive机制,根据每个分组数据的字段类型分别创建对应的动态分区表;
根据各个动态分区表存储各分组数据,再将各动态分区表保存在预设文件夹中。
在一个实施例中,所述预设操作命令包括SQL-UNION操作符;所述使用预设操作命令将所述全量数据和增量数据进行合并,包括:
使用SQL-UNION操作符将全量数据和增量数据按照数据的先后顺序进行合并。
在一个实施例中,所述预设开窗函数包括OVER子句;所述使用预设开窗函数对合并后的数据进行分组,包括:
确定合并后的数据对应的数据表表名;
根据所确定的数据表表名使用OVER子句对合并后的数据分组成多个类型组,其中,所述多个类型组包括:纯老数据组、纯新数据组、与纯新数据的主键有重复的老数据组以及与纯老数据的主键有重复的新数据组。
在一个实施例中,所述根据每个分组数据的字段类型分别创建对应的动态分区表,包括:
确定各分组数据中的至少一个字段类型;
基于Hive机制创建与所确定的每个字段类型对应的动态分区表。
在一个实施例中,所述根据各个动态分区表存储各分组数据,包括:
使用SQL语句中的INSERT SELECT语句将各分组数据导入各个动态分区表中。
本领域技术人员可以理解,图10中示出的计算机设备的实施例并不构成对计算机设备具体构成的限定,在其他实施例中,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。例如,在一些实施例中,计算机设备仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图10所示实施例一致,在此不再赘述。
本发明提供了一种计算机可读存储介质,计算机可读存储介质存储有一个或者一个以上计算机程序,所述一个或者一个以上计算机程序可被一个或者一个以上的处理器执行,以实现以下步骤:
获取Hive数据库表的全量数据和增量数据,并使用预设操作命令将所述全量数据和增量数据进行合并,得到合并后的数据;
使用预设开窗函数对合并后的数据进行分组,再对各分组后的数据进行降序排序;
基于Hive机制,根据每个分组数据的字段类型分别创建对应的动态分区表;
根据各个动态分区表存储各分组数据,再将各动态分区表保存在预设文件夹中。
在一个实施例中,所述预设操作命令包括SQL-UNION操作符;所述使用预设操作命令将所述全量数据和增量数据进行合并,包括:
使用SQL-UNION操作符将全量数据和增量数据按照数据的先后顺序进行合并。
在一个实施例中,所述预设开窗函数包括OVER子句;所述使用预设开窗函数对合并后的数据进行分组,包括:
确定合并后的数据对应的数据表表名;
根据所确定的数据表表名使用OVER子句对合并后的数据分组成多个类型组,其中,所述多个类型组包括:纯老数据组、纯新数据组、与纯新数据的主键有重复的老数据组以及与纯老数据的主键有重复的新数据组。
在一个实施例中,所述根据每个分组数据的字段类型分别创建对应的动态分区表,包括:
确定各分组数据中的至少一个字段类型;
基于Hive机制创建与所确定的每个字段类型对应的动态分区表。
在一个实施例中,所述根据各个动态分区表存储各分组数据,包括:
使用SQL语句中的INSERT SELECT语句将各分组数据导入各个动态分区表中。
本发明前述的存储介质包括:磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等各种可以存储程序代码的介质。
本发明所有实施例中的单元可以通过通用集成电路,例如CPU(CentralProcessing Unit,中央处理器),或通过ASIC(Application Specific IntegratedCircuit,专用集成电路)来实现。
本发明实施例Hive数据库中增量数据的处理方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本发明实施例Hive数据库中增量数据的处理装置中的单元可以根据实际需要进行合并、划分和删减。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (4)

1.一种Hive数据库中增量数据的处理方法,其特征在于,所述方法包括:获取Hive数据库表的全量数据和增量数据,并使用预设操作命令将所述全量数据和增量数据进行合并,得到合并后的数据;
使用预设开窗函数对合并后的数据进行分组,再对各分组后的数据进行降序排序;
基于Hive机制,根据每个分组数据的字段类型分别创建对应的动态分区表;
根据各个动态分区表存储各分组数据,再将各动态分区表保存在预设文件夹中;
所述预设操作命令包括SQL-UNION操作符;所述使用预设操作命令将所述全量数据和增量数据进行合并,包括:使用SQL-UNION操作符将全量数据和增量数据按照数据的先后顺序进行合并;
所述预设开窗函数包括OVER子句;所述使用预设开窗函数对合并后的数据进行分组,包括:确定合并后的数据对应的数据表表名;
根据所确定的数据表表名使用OVER子句对合并后的数据分组成多个类型组,其中,所述多个类型组包括:纯老数据组、纯新数据组、与纯新数据的主键有重复的老数据组以及与纯老数据的主键有重复的新数据组;
所述根据每个分组数据的字段类型分别创建对应的动态分区表,包括:确定各分组数据中的至少一个字段类型;
基于Hive机制创建与所确定的每个字段类型对应的动态分区表;
所述根据各个动态分区表存储各分组数据,包括:使用SQL语句中的INSERT SELECT语句将各分组数据导入各个动态分区表中。
2.一种Hive数据库中增量数据的处理装置,其特征在于,所述装置包括:合并单元,用于获取Hive数据库表的全量数据和增量数据,并使用预设操作命令将所述全量数据和增量数据进行合并,得到合并后的数据;
分组单元,用于使用预设开窗函数对合并后的数据进行分组,再对各分组后的数据进行降序排序;
创建单元,用于基于Hive机制,根据每个分组数据的字段类型分别创建对应的动态分区表;
存储单元,用于根据各个动态分区表存储各分组数据,再将各动态分区表保存在预设文件夹中;
所述预设操作命令包括SQL-UNION操作符;所述合并单元,包括:合并子单元,用于使用SQL-UNION操作符将全量数据和增量数据按照数据的先后顺序进行合并;
所述预设开窗函数包括OVER子句;所述分组单元,包括:第一确定单元,用于确定合并后的数据对应的数据表表名;
分组子单元,用于根据所确定的数据表表名使用OVER子句对合并后的数据分组成多个类型组,其中,所述多个类型组包括:纯老数据组,纯新数据组,与纯新数据的主键有重复的老数据组,与纯老数据的主键有重复的新数据组。
3.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1所述的Hive数据库中增量数据的处理方法。
4.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者一个以上计算机程序,所述一个或者一个以上计算机程序可被一个或者一个以上的处理器执行,以实现如权利要求1所述的Hive数据库中增量数据的处理方法。
CN201910851212.3A 2019-09-10 2019-09-10 Hive数据库中增量数据的处理方法、装置以及计算机设备 Active CN110781183B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910851212.3A CN110781183B (zh) 2019-09-10 2019-09-10 Hive数据库中增量数据的处理方法、装置以及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910851212.3A CN110781183B (zh) 2019-09-10 2019-09-10 Hive数据库中增量数据的处理方法、装置以及计算机设备

Publications (2)

Publication Number Publication Date
CN110781183A CN110781183A (zh) 2020-02-11
CN110781183B true CN110781183B (zh) 2023-06-27

Family

ID=69383418

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910851212.3A Active CN110781183B (zh) 2019-09-10 2019-09-10 Hive数据库中增量数据的处理方法、装置以及计算机设备

Country Status (1)

Country Link
CN (1) CN110781183B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111651457B (zh) * 2020-05-29 2023-09-22 中国平安财产保险股份有限公司 数据分组方法、装置、计算机设备及存储介质
CN112347097B (zh) * 2020-09-23 2022-07-29 中国科学院信息工程研究所 支持多版本Hive表分区的数据加载、查询方法及电子装置
CN112612839A (zh) * 2020-12-28 2021-04-06 中国农业银行股份有限公司 一种数据处理方法及装置
CN112800073B (zh) * 2021-01-27 2023-03-28 浪潮云信息技术股份公司 一种基于NiFi更新Delta Lake的方法
CN113204602B (zh) * 2021-05-07 2023-08-01 星环信息科技(上海)股份有限公司 数据处理方法、装置、设备及存储介质
CN116226894B (zh) * 2023-05-10 2023-08-04 杭州比智科技有限公司 一种基于元仓的数据安全治理系统及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108415934A (zh) * 2018-01-23 2018-08-17 海尔优家智能科技(北京)有限公司 一种Hive表修复方法、装置、设备及计算机可读存储介质
CN109299088A (zh) * 2018-08-22 2019-02-01 中国平安人寿保险股份有限公司 海量数据存储方法、装置、存储介质及电子设备
CN109388675A (zh) * 2018-10-12 2019-02-26 平安科技(深圳)有限公司 数据分析方法、装置、计算机设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6974928B2 (en) * 2001-03-16 2005-12-13 Breakthrough Logistics Corporation Method and apparatus for efficient package delivery and storage
US20070156685A1 (en) * 2005-12-28 2007-07-05 Hiroshi Inoue Method for sorting data using SIMD instructions

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108415934A (zh) * 2018-01-23 2018-08-17 海尔优家智能科技(北京)有限公司 一种Hive表修复方法、装置、设备及计算机可读存储介质
CN109299088A (zh) * 2018-08-22 2019-02-01 中国平安人寿保险股份有限公司 海量数据存储方法、装置、存储介质及电子设备
CN109388675A (zh) * 2018-10-12 2019-02-26 平安科技(深圳)有限公司 数据分析方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN110781183A (zh) 2020-02-11

Similar Documents

Publication Publication Date Title
CN110781183B (zh) Hive数据库中增量数据的处理方法、装置以及计算机设备
CN110704398B (zh) 从MySQL到Oracle的数据库迁移方法、装置及计算机设备
KR101130443B1 (ko) 전자 문서 내에서의 사용을 위해 다중 데이터 소스로부터의데이터를 통합하는 방법, 시스템 및 컴퓨터 판독가능 매체
US8407262B2 (en) Systems and methods for generating an entity diagram
US9069818B2 (en) Textual search for numerical properties
CN107506383B (zh) 一种审计数据处理方法和计算机设备
US8620946B2 (en) Storage and searching of temporal entity information
CN113268500B (zh) 业务处理方法、装置及电子设备
US20100076937A1 (en) Feed processing
CN111443901B (zh) 一种基于Java反射的业务扩展方法及装置
CN112667733A (zh) 数据仓库数据导入方法与系统
CN110362630B (zh) 数据管理方法、装置、设备与计算机可读存储介质
CN111435406A (zh) 一种纠正数据库语句拼写错误的方法和装置
CN113190517B (zh) 数据集成方法、装置、电子设备和计算机可读介质
CN111046640A (zh) 证明文件动态生成方法及装置
US20170242836A1 (en) Architecture, system and method for storing files and data in organized grid format
CN111813769B (zh) 数据加工方法与装置
CN114968917A (zh) 一种文件数据快速导入方法及装置
CN111506644B (zh) 一种应用数据处理方法、装置和电子设备
CN112596719A (zh) 一种生成前后端代码的方法和系统
Schäfer et al. Sampling with incremental mapreduce
CN111079391B (zh) 一种报表的生成方法及装置
CN111126015B (zh) 一种报表编制方法、设备
US20240104297A1 (en) Analysis of spreadsheet table in response to user input
CN112463146B (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
GR01 Patent grant
GR01 Patent grant