CN109299093A - Hive数据库中拉链表的更新方法、装置和计算机设备 - Google Patents

Hive数据库中拉链表的更新方法、装置和计算机设备 Download PDF

Info

Publication number
CN109299093A
CN109299093A CN201811084123.2A CN201811084123A CN109299093A CN 109299093 A CN109299093 A CN 109299093A CN 201811084123 A CN201811084123 A CN 201811084123A CN 109299093 A CN109299093 A CN 109299093A
Authority
CN
China
Prior art keywords
data
zipper
partition table
attribute
valid 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
Application number
CN201811084123.2A
Other languages
English (en)
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 Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen Co 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 Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201811084123.2A priority Critical patent/CN109299093A/zh
Publication of CN109299093A publication Critical patent/CN109299093A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请揭示了Hive数据库中拉链表的更新方法、装置和计算机设备,拉链表设置有多个第一分区表,以及一个有效数据分区表;第一分区表内记录关闭拉链的数据;有效数据分区表用于记载未处于关闭拉链状态的数据;更新方法为:获取当前的增量表,并将增量表与有效数据分区表进行内关联,以查找到需要关闭拉链的数据;解析出需要关闭拉链的数据的第一属性,将需要关闭拉链的数据插入到与第一属性对应的第一分区表中;将增量表与有效数据分区表中的数据进行全关联,得到更新后的有效数据分区表。先查找出需要关闭拉链的数据,并将其进行属性分析,然后插入到对应属性的第一分区表中,然后再对有效数据分区表进行更新,逻辑清晰,且代码实现简单。

Description

Hive数据库中拉链表的更新方法、装置和计算机设备
技术领域
本申请涉及到计算机领域,特别是涉及到一种Hive数据库中拉链表的更新方法、装置和计算机设备。
背景技术
当前数据仓库在保留历史数据时主要有两种形式:第一种,快照,针对每天保留全量数据;第二种,拉链记历史,每天针对变化的数据记录其生命周期。第一种耗费存储空间。第二种在对于数据变化频率小的情况下是比较好的选择方案。
但是,在设计拉链表时通用做法是设计两个字段(开始日期和结束日期)记录数据的变化,但在Hive里不能对已有的数据文件进行更新,拉链表的更新实现,逻辑复杂。
发明内容
本申请的主要目的为提供一种可以更新,且更新逻辑简单的Hive数据库中拉链表的更新方法、装置、计算机设备和存储介质。
为了实现上述发明目的,本申请提出一种Hive数据库中拉链表的更新方法,所述Hive数据库包括拉链表和增量表,所述拉链表设置有多个第一分区表,以及一个有效数据分区表;多个所述第一分区表是按照预设规则建立的具有不同属性的分区,第一分区表内记录关闭拉链的数据;所述有效数据分区表用于记载未处于关闭拉链状态的数据;所述更新方法,包括:
获取当前的增量表,并将所述增量表与所述有效数据分区表进行内关联,以查找到需要关闭拉链的数据;
解析出所述需要关闭拉链的数据的第一属性,将所述需要关闭拉链的数据插入到与所述第一属性对应的第一分区表中;
将所述增量表与所述有效数据分区表中的数据进行全关联,得到更新后的有效数据分区表。
进一步地,所述解析出所述需要关闭拉链的数据的第一属性,将所述需要关闭拉链的数据插入到与所述第一属性对应的第一分区表中的步骤,包括:
解析出所述需要关闭拉链的数据的第一属性;
若存在与所述第一属性对应的第一分区表,则将所述需要关闭拉链的数据插入到与所述第一属性对应的第一分区表中;
若不存在与所述第一属性对应的第一分区表,则根据所述第一属性生成一个与所述第一属性对应的第一分区表,并将所述需要关闭拉链的数据插入到生成的与所述第一属性对应的第一分区表中。
进一步地,所述获取当前的增量表,并将所述增量表与所述有效数据分区表进行内关联,以查找到需要关闭拉链的数据的步骤之前,包括:
获取预设的第二属性,根据所述第二属性建立所述有效数据分区表。
进一步地,所述获取当前的增量表,并将所述增量表与所述有效数据分区表进行内关联,以查找到需要关闭拉链的数据的步骤之前,包括:
获取增量数据,并将所述增量数据进行去重处理;
将去重后的增量数据制成所述增量表。
进一步地,所述获取增量数据,并将所述增量数据进行去重处理的步骤,包括:
获取各所述增量数据的主键;
判断所述主键中是否存在相同的主键;
若存在相同的主键,则判断各相同的主键对应的数据是否存在重复;
若存在重复数据,则只保留一组重复的数据。
进一步地,所述判断各相同的主键对应的数据是否存在重复的步骤,包括:
将各相同的主键对应的数据分别向量化,得到对应的向量矩阵;
计算各向量矩阵之间的相似度;
若任意两向量矩阵的相似度达到预设值,则判定所述任意两向量矩阵对应的数据为重复数据。
进一步地,所述将所述增量表与所述有效数据分区表中的数据进行全关联,得到更新后的有效数据分区表的步骤之后,包括:
定时对所述拉链表进行跑批运算。
本申请还提供一种Hive数据库中拉链表的更新装置,所述Hive数据库包括拉链表和增量表,所述拉链表设置有多个第一分区表,以及一个有效数据分区表;多个所述第一分区表是按照预设规则建立的具有不同属性的分区,第一分区表内记录关闭拉链的数据;所述有效数据分区表用于记载未处于关闭拉链状态的数据;所述更新装置,包括:
获取关联单元,用于获取当前的增量表,并将所述增量表与所述有效数据分区表进行内关联,以查找到需要关闭拉链的数据;
解析插入单元,用于解析出所述需要关闭拉链的数据的第一属性,将所述需要关闭拉链的数据插入到与所述第一属性对应的第一分区表中;
关联更新单元,用于将所述增量表与所述有效数据分区表中的数据进行全关联,得到更新后的有效数据分区表。
本申请还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
本申请的Hive数据库中拉链表的更新方法、装置、计算机设备和存储介质,先查找出需要关闭拉链的数据,并将其进行属性分析,然后插入到对应属性的第一分区表中,然后再对有效数据分区表进行更新,逻辑清晰,且代码实现简单。在查找关闭拉链的数据时,可以根据其属性,先查找对应的第一分区表,然后再在查找到的第一分区表中查找对应的数据,在大数据平台中查找数据的速度更快,提高查找数据的效率。
附图说明
图1为本申请一实施例的Hive数据库中拉链表的更新方法的流程示意图;
图2为本申请一实施例的Hive数据库中拉链表的更新装置的结构示意框图;
图3为本申请一实施例的解析插入单元的结构示意框图;
图4为本申请一实施例的Hive数据库中拉链表的更新装置的结构示意框图;
图5为本申请一实施例的计算机设备的结构示意框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,本申请实施例提出一种Hive数据库中拉链表的更新方法,所述Hive数据库包括拉链表和增量表,所述拉链表设置有多个第一分区表,以及一个有效数据分区表;多个所述第一分区表是按照预设规则建立的具有不同属性的分区,第一分区表内记录关闭拉链的数据;所述有效数据分区表用于记载未处于关闭拉链状态的数据。
上述更新方法,包括步骤:
S1、获取当前的增量表,并将所述增量表与所述有效数据分区表进行内关联,以查找到需要关闭拉链的数据;
S2、解析出所述需要关闭拉链的数据的第一属性,将所述需要关闭拉链的数据插入到与所述第一属性对应的第一分区表中;
S3、将所述增量表与所述有效数据分区表中的数据进行全关联,得到更新后的有效数据分区表。
如上述步骤S1所述,上述增量表是指是指当天抽取源业务系统的数据表,一般是源业务系统T-1的数据。上述内关联是指在增量表和有效数据分区表中查找主键相同数据,如果查找到,则说明该主键对应的数据的状态发生了变化,所以才会出现在增量表中,也就是有效数据分区表中对应该主键的数据需要关闭拉链。
如上述步骤S2所述,上述第一分区表是按照预设分区规则进行分区的,分区规则包括多种,比如以事件属性为分区基础进行分区,如离职属性、调岗属性等;又比如以时间为基础进行分区,如以自然年、季度、月等进行分区等。在将需要关闭拉链的数据插入对应的第一分区表的时候,先分析需要关闭拉链的数据的属性,然后根据属性插入到对应的第一分区表中,在后续查找关闭拉链的数据时,可以先根据关闭拉链的数据的属性查找到对应的第一分区表,然后在第一分区表中查找对应的关闭拉链的数据。
如上述步骤S3所述,上述全关联包括三种情况,第一种:增量表和有效数据分区表能关联上,主键在两张表都存在;第二种:增量表和有效数据分区表关联不上,增量表中存在有效数据分区表中没有记录的主键;第三种:增量表和有效数据分区表关联不上,有效数据分区表中存在增量表中没有记录的主键。本申请中,第一种情况和第二种情况时,将增量表中的全部数据作为关联表,然后使用关联表覆盖掉原有的所述有效数据分区表;第三种情况时,将增量表中的数据更新到有效数据分区表中,并保留有效数据分区表中增量表未关联上的数据,形成关联表,然后使用关联表覆盖掉原有的有效数据分区表。
在一个实施例中,上述解析出所述需要关闭拉链的数据的第一属性,将所述需要关闭拉链的数据插入到与所述第一属性对应的第一分区表中的步骤S2,包括:
S21、解析出所述需要关闭拉链的数据的第一属性;
S22、若存在与所述第一属性对应的第一分区表,则将所述需要关闭拉链的数据插入到与所述第一属性对应的第一分区表中;
S23、若不存在与所述第一属性对应的第一分区表,则根据所述第一属性生成一个与所述第一属性对应的第一分区表,并将所述需要关闭拉链的数据插入到生成的与所述第一属性对应的第一分区表中。
如上述步骤S21、S22和S23所述,建立第一分区表时,会根据关闭拉链的数据的属性设置一个第一字段,然后根据第一字段进行自动建立,而属性分析是根据指定的分析方法进行的。在一个具体实施例中,指定的分析方法是分析关闭拉链的数据对应的事件属性,如事件属性为调岗,则将调岗作为第一字段,建立分区名为调岗的第一分区表;又比如,指定的分析方法是分析关闭拉链的数据对应的时间属性,如时间属性为X年,则将该X年作为第一字段,建立分区名为X年的第一分区表。本申请中,每产生一个关闭拉链的数据时,会分析该关闭拉链的数据的属性,如果其属性对应的第一字段的第一分区表已经存在,则将该关闭拉链的数据插入到对应的第一分区表中,如果不存在该关闭拉链的数据的属性的第一字段对应的第一分区表时,则生成一个新的第一分区表。
在一个实施例中,所述第一字段为关闭拉链的数据的结束时间对应的自然月份。具体地,使用的分区是以年月进行分区;在将需要关闭拉链的数据插入对应的分区表的时候,先分析需要关闭拉链的数据,同时将结束日期置为当天的跑数日期,然后将所有数据插入到对应的分区表中。即为将关闭拉链的数据的结束时间的月份作为一个字段,然后根据该月份字段建立第一分区表,若已存在该月份字段对应的第一分区表,则将该关闭拉链的数据插入到该月份对应的第一分区表中。在一个具体实施例中,A主键对应的人从2018年1月1日在X部门工作,该组数据一直存储在有效数据分区表中,2018年5月1日A主键对应的人被调入Y部门工作,则生成一个关于A主键的增量,此时,可以确定A主键对应的人在X部门工作的数据将关闭拉链,即结束时间为2018年5月1日,此时A主键对应的关闭拉链数据中会产生一个“2018年5月”的第一字段,如果当前不存在关于“2018年5月”为第一字段的第一分区表,则生成一个以“2018年5月”字段为名称的第一分区表,并将上述关闭拉链的2018年1月1日在X部门工作的数据以2018年5月1日为结束日插入到“2018年5月”的第一分区表中。
在一个实施例中,上述获取当前的增量表,并将所述增量表与所述有效数据分区表进行内关联,以查找到需要关闭拉链的数据的步骤S1之前,包括:
S101、获取预设的第二属性,根据所述第二属性建立所述有效数据分区表。
如上述步骤S101所述,上述第二字段是用户自定义设置的,然后根据第二字段建立一个以第二字段为名字的有效数据分区表。在一个实施例中,上述第二字段为“9999年12月”,那么将有效数据分区表的名称命名为“9999年12月”,因为有效数据分区表中的数据都是还没有结束的数据,所以可以将其看做结束时间为无穷大,此时,按照当前最大的年与月对应的字段作为第二字段,可以将未处于关闭拉链状态的数据根据其属性加入到有效数据分区表中。本申请中,将第一分区表和有效数据分区表按照时间属性进行整理分表,在逻辑实现和代码编写上更加简单。
在一个实施例中,上述获取当前的增量表,并将所述增量表与所述有效数据分区表进行内关联,以查找到需要关闭拉链的数据的步骤S1之前,包括:
S11、获取增量数据,并将所述增量数据进行去重处理;
S12、将去重后的增量数据制成所述增量表。
如上述步骤S11和S12所述,同一事件在不同的部门可能产生不同的数据,比如,X从A部门调到B部门,那么,在A部门可能产生的数据为X离开并到B部门;B部门产生的数据为X从A部门到本部门到岗的数据,虽然是描述不同,但是为同样的记录,所以这样的数据只需要保留一组即可,以降低拉链表中的数据量。
在一个实施例中,上述获取增量数据,并将所述增量数据进行去重处理的步骤S11,包括:
S111、获取各所述增量数据的主键;
S112、判断所述主键中是否存在相同的主键;
S113、若存在相同的主键,则判断各相同的主键对应的数据是否存在重复;
S114、若存在重复数据,则只保留一组重复的数据。
在本实施例中,先查找是否存在相同的主键,然后在判断相同主键的数据是否相同,可以快速地记性去重的过程,提高去重效率。
进一步地,上述若存在相同的主键,则判断各相同的主键对应的数据是否存在重复S113的步骤,包括:
S1131、将各相同的主键对应的数据分别向量化,得到对应的向量矩阵;
S1132、计算各向量矩阵之间的相似度;
S1133、若任意两向量矩阵的相似度达到预设值,则判定所述任意两向量矩阵对应的数据为重复数据。
将各数据进行向量化的过程为,到预设的语料字典中查找数据中每一个文字对应的向量,进而形成对应数据的向量矩阵。上述语料字典的形成方法一般为:将待形成向量的文字输入到DSSM(Deep Structured Semantic Models,深层结构化语义模型)模型中,通过DSSM模型计算出文字的词向量,然后将文字及其对应的词向量放入到语料字典中,从而形成上述语料字典。上述相似度计算一般使用相似度的计算可以使用欧几里得距离(Eucledian Distance)、曼哈顿距离(Manhattan Distance)、明可夫斯基距离(Minkowskidistance)或者余弦相似度中的一种算法进行计算。
在一个实施例中,上述将所述增量表与所述有效数据分区表中的数据进行全关联,得到更新后的有效数据分区表的步骤S3之后,包括:
S4、定时对所述拉链表进行跑批运算。
如上述步骤S4所述,上述跑批运算即为对拉链表中的数据进行检验的过程。
本申请实施例的Hive数据库中拉链表的更新方法,先查找出需要关闭拉链的数据,并将其进行属性分析,然后插入到对应属性的第一分区表中,然后再对有效数据分区表进行更新,逻辑清晰,且代码实现简单。在查找关闭拉链的数据时,可以根据其属性,先查找对应的第一分区表,然后再在查找到的第一分区表中查找对应的数据,在大数据平台中查找数据的速度更快,提高查找数据的效率。
参照图2,本申请实施例还提出一种Hive数据库中拉链表的更新装置,所述Hive数据库包括拉链表和增量表,所述拉链表设置有多个第一分区表,以及一个有效数据分区表;多个所述第一分区表是按照预设规则建立的具有不同属性的分区,第一分区表内记录关闭拉链的数据;所述有效数据分区表用于记载未处于关闭拉链状态的数据。
上述更新装置,包括步骤:
获取关联单元10,用于获取当前的增量表,并将所述增量表与所述有效数据分区表进行内关联,以查找到需要关闭拉链的数据;
解析插入单元20,用于解析出所述需要关闭拉链的数据的第一属性,将所述需要关闭拉链的数据插入到与所述第一属性对应的第一分区表中;
关联更新单元30,用于将所述增量表与所述有效数据分区表中的数据进行全关联,得到更新后的有效数据分区表。
如上述获取关联单元10中,上述增量表是指是指当天抽取源业务系统的数据表,一般是源业务系统T-1的数据。上述内关联是指在增量表和有效数据分区表中查找主键相同数据,如果查找到,则说明该主键对应的数据的状态发生了变化,所以才会出现在增量表中,也就是有效数据分区表中对应该主键的数据需要关闭拉链。
如上述解析插入单元20中,上述第一分区表是按照预设分区规则进行分区的,分区规则包括多种,比如以事件属性为分区基础进行分区,如离职属性、调岗属性等;又比如以时间为基础进行分区,如以自然年、季度、月等进行分区等。在将需要关闭拉链的数据插入对应的第一分区表的时候,先分析需要关闭拉链的数据的属性,然后根据属性插入到对应的第一分区表中,在后续查找关闭拉链的数据时,可以先根据关闭拉链的数据的属性查找到对应的第一分区表,然后在第一分区表中查找对应的关闭拉链的数据。
如上述关联更新单元30中,上述全关联包括三种情况,第一种:增量表和有效数据分区表能关联上,主键在两张表都存在;第二种:增量表和有效数据分区表关联不上,增量表中存在有效数据分区表中没有记录的主键;第三种:增量表和有效数据分区表关联不上,有效数据分区表中存在增量表中没有记录的主键。本申请中,第一种情况和第二种情况时,将增量表中的全部数据作为关联表,然后使用关联表覆盖掉原有的所述有效数据分区表;第三种情况时,将增量表中的数据更新到有效数据分区表中,并保留有效数据分区表中增量表未关联上的数据,形成关联表,然后使用关联表覆盖掉原有的有效数据分区表。
参照图3,在一个实施例中,上述解析插入单元20,包括:
解析模块21,用于解析出所述需要关闭拉链的数据的第一属性;
第一插入模块22,用于若存在与所述第一属性对应的第一分区表,则将所述需要关闭拉链的数据插入到与所述第一属性对应的第一分区表中;
第二插入模块23,用于若不存在与所述第一属性对应的第一分区表,则根据所述第一属性生成一个与所述第一属性对应的第一分区表,并将所述需要关闭拉链的数据插入到生成的与所述第一属性对应的第一分区表中。
如上述解析模块21、第一插入模块22和第二插入模块23中,建立第一分区表时,会根据关闭拉链的数据的属性设置一个第一字段,然后根据第一字段进行自动建立,而属性分析是根据指定的分析方法进行的。在一个具体实施例中,指定的分析方法是分析关闭拉链的数据对应的事件属性,如事件属性为调岗,则将调岗作为第一字段,建立分区名为调岗的第一分区表;又比如,指定的分析方法是分析关闭拉链的数据对应的时间属性,如时间属性为X年,则将该X年作为第一字段,建立分区名为X年的第一分区表。本申请中,每产生一个关闭拉链的数据时,会分析该关闭拉链的数据的属性,如果其属性对应的第一字段的第一分区表已经存在,则将该关闭拉链的数据插入到对应的第一分区表中,如果不存在该关闭拉链的数据的属性的第一字段对应的第一分区表时,则生成一个新的第一分区表。
在一个实施例中,所述第一字段为关闭拉链的数据的结束时间对应的自然月份。具体地,使用的分区是以年月进行分区;在将需要关闭拉链的数据插入对应的分区表的时候,先分析需要关闭拉链的数据,同时将结束日期置为当天的跑数日期,然后将所有数据插入到对应的分区表中。即为将关闭拉链的数据的结束时间的月份作为一个字段,然后根据该月份字段建立第一分区表,若已存在该月份字段对应的第一分区表,则将该关闭拉链的数据插入到该月份对应的第一分区表中。在一个具体实施例中,A主键对应的人从2018年1月1日在X部门工作,该组数据一直存储在有效数据分区表中,2018年5月1日A主键对应的人被调入Y部门工作,则生成一个关于A主键的增量,此时,可以确定A主键对应的人在X部门工作的数据将关闭拉链,即结束时间为2018年5月1日,此时A主键对应的关闭拉链数据中会产生一个“2018年5月”的第一字段,如果当前不存在关于“2018年5月”为第一字段的第一分区表,则生成一个以“2018年5月”字段为名称的第一分区表,并将上述关闭拉链的2018年1月1日在X部门工作的数据以2018年5月1日为结束日插入到“2018年5月”的第一分区表中。
参照图4,在一个实施例中,上述Hive数据库中拉链表的更新装置还包括:
建立单元101,用于获取预设的第二属性,根据所述第二属性建立所述有效数据分区表。
如上述建立单元101中,上述第二字段是用户自定义设置的,然后根据第二字段建立一个以第二字段为名字的有效数据分区表。在一个实施例中,上述第二字段为“9999年12月”,那么将有效数据分区表的名称命名为“9999年12月”,因为有效数据分区表中的数据都是还没有结束的数据,所以可以将其看做结束时间为无穷大,此时,按照当前最大的年与月对应的字段作为第二字段,可以将未处于关闭拉链状态的数据根据其属性加入到有效数据分区表中。本申请中,将第一分区表和有效数据分区表按照时间属性进行整理分表,在逻辑实现和代码编写上更加简单。
在一个实施例中,上述Hive数据库中拉链表的更新装置还包括:
去重单元,用于获取增量数据,并将所述增量数据进行去重处理;
制作单元,用于将去重后的增量数据制成所述增量表。
本实施例中,同一事件在不同的部门可能产生不同的数据,比如,X从A部门调到B部门,那么,在A部门可能产生的数据为X离开并到B部门;B部门产生的数据为X从A部门到本部门到岗的数据,虽然是描述不同,但是为同样的记录,所以这样的数据只需要保留一组即可,以降低拉链表中的数据量。
在一个实施例中,上述去重单元包括:
获取模块,用于获取各所述增量数据的主键;
查找模块,用于判断所述主键中是否存在相同的主键;
判断模块,用于若存在相同的主键,则判断各相同的主键对应的数据是否存在重复;
去重模块,用于若存在重复数据,则只保留一组重复的数据。
在本实施例中,先查找是否存在相同的主键,然后在判断相同主键的数据是否相同,可以快速地记性去重的过程,提高去重效率。
在一个实施例中,上述判断模块包括:
向量化子模块,用于将各相同的主键对应的数据分别向量化,得到对应的向量矩阵;
计算子模块,用于计算各向量矩阵之间的相似度;
判定子模块,用于若任意两向量矩阵的相似度达到预设值,则判定所述任意两向量矩阵对应的数据为重复数据。
本实施例中,将各数据进行向量化的过程为,到预设的语料字典中查找数据中每一个文字对应的向量,进而形成对应数据的向量矩阵。上述语料字典的形成方法一般为:将待形成向量的文字输入到DSSM(Deep Structured Semantic Models,深层结构化语义模型)模型中,通过DSSM模型计算出文字的词向量,然后将文字及其对应的词向量放入到语料字典中,从而形成上述语料字典。上述相似度计算一般使用相似度的计算可以使用欧几里得距离(Eucledian Distance)、曼哈顿距离(Manhattan Distance)、明可夫斯基距离(Minkowski distance)或者余弦相似度中的一种算法进行计算。
在一个实施例中,上述拉链表的更新装置还包括:
预算单元,用于定时对所述拉链表进行跑批运算。
本实施例中,上述跑批运算即为对拉链表中的数据进行检验的过程。
本申请实施例的Hive数据库中拉链表的更新装置,先查找出需要关闭拉链的数据,并将其进行属性分析,然后插入到对应属性的第一分区表中,然后再对有效数据分区表进行更新,逻辑清晰,且代码实现简单。在查找关闭拉链的数据时,可以根据其属性,先查找对应的第一分区表,然后再在查找到的第一分区表中查找对应的数据,在大数据平台中查找数据的速度更快,提高查找数据的效率。
参照图5,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储第一分区表和有效数据分区表等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种Hive数据库中拉链表的更新方法。
上述处理器执行上述Hive数据库中拉链表的更新方法,所述Hive数据库包括拉链表和增量表,所述拉链表设置有多个第一分区表,以及一个有效数据分区表;多个所述第一分区表是按照预设规则建立的具有不同属性的分区,第一分区表内记录关闭拉链的数据;所述有效数据分区表用于记载未处于关闭拉链状态的数据;所述更新方法,包括:获取当前的增量表,并将所述增量表与所述有效数据分区表进行内关联,以查找到需要关闭拉链的数据;解析出所述需要关闭拉链的数据的第一属性,将所述需要关闭拉链的数据插入到与所述第一属性对应的第一分区表中;将所述增量表与所述有效数据分区表中的数据进行全关联,得到更新后的有效数据分区表。
在一个实施例中,上述解析出所述需要关闭拉链的数据的第一属性,将所述需要关闭拉链的数据插入到与所述第一属性对应的第一分区表中的步骤,包括:解析出所述需要关闭拉链的数据的第一属性;若存在与所述第一属性对应的第一分区表,则将所述需要关闭拉链的数据插入到与所述第一属性对应的第一分区表中;若不存在与所述第一属性对应的第一分区表,则根据所述第一属性生成一个与所述第一属性对应的第一分区表,并将所述需要关闭拉链的数据插入到生成的与所述第一属性对应的第一分区表中。
在一个实施例中,上述获取当前的增量表,并将所述增量表与所述有效数据分区表进行内关联,以查找到需要关闭拉链的数据的步骤之前,包括:获取预设的第二属性,根据所述第二属性建立所述有效数据分区表。
在一个实施例中,上述获取当前的增量表,并将所述增量表与所述有效数据分区表进行内关联,以查找到需要关闭拉链的数据的步骤之前,包括:获取增量数据,并将所述增量数据进行去重处理;将去重后的增量数据制成所述增量表。
在一个实施例中,上述获取增量数据,并将所述增量数据进行去重处理的步骤,包括:获取各所述增量数据的主键;判断所述主键中是否存在相同的主键;若存在相同的主键,则判断各相同的主键对应的数据是否存在重复;若存在重复数据,则只保留一组重复的数据。
在一个实施例中,上述判断各相同的主键对应的数据是否存在重复的步骤,包括:将各相同的主键对应的数据分别向量化,得到对应的向量矩阵;计算各向量矩阵之间的相似度;若任意两向量矩阵的相似度达到预设值,则判定所述任意两向量矩阵对应的数据为重复数据。
在一个实施例中,上述将所述增量表与所述有效数据分区表中的数据进行全关联,得到更新后的有效数据分区表的步骤之后,包括:定时对所述拉链表进行跑批运算。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。
本申请实施例的计算机设备,先查找出需要关闭拉链的数据,并将其进行属性分析,然后插入到对应属性的第一分区表中,然后再对有效数据分区表进行更新,逻辑清晰,且代码实现简单。在查找关闭拉链的数据时,可以根据其属性,先查找对应的第一分区表,然后再在查找到的第一分区表中查找对应的数据,在大数据平台中查找数据的速度更快,提高查找数据的效率。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种Hive数据库中拉链表的更新方法,所述Hive数据库包括拉链表和增量表,所述拉链表设置有多个第一分区表,以及一个有效数据分区表;多个所述第一分区表是按照预设规则建立的具有不同属性的分区,第一分区表内记录关闭拉链的数据;所述有效数据分区表用于记载未处于关闭拉链状态的数据;所述更新方法,包括:获取当前的增量表,并将所述增量表与所述有效数据分区表进行内关联,以查找到需要关闭拉链的数据;解析出所述需要关闭拉链的数据的第一属性,将所述需要关闭拉链的数据插入到与所述第一属性对应的第一分区表中;将所述增量表与所述有效数据分区表中的数据进行全关联,得到更新后的有效数据分区表。
上述Hive数据库中拉链表的更新方法,先查找出需要关闭拉链的数据,并将其进行属性分析,然后插入到对应属性的第一分区表中,然后再对有效数据分区表进行更新,逻辑清晰,且代码实现简单。在查找关闭拉链的数据时,可以根据其属性,先查找对应的第一分区表,然后再在查找到的第一分区表中查找对应的数据,在大数据平台中查找数据的速度更快,提高查找数据的效率。
在一个实施例中,上述解析出所述需要关闭拉链的数据的第一属性,将所述需要关闭拉链的数据插入到与所述第一属性对应的第一分区表中的步骤,包括:解析出所述需要关闭拉链的数据的第一属性;若存在与所述第一属性对应的第一分区表,则将所述需要关闭拉链的数据插入到与所述第一属性对应的第一分区表中;若不存在与所述第一属性对应的第一分区表,则根据所述第一属性生成一个与所述第一属性对应的第一分区表,并将所述需要关闭拉链的数据插入到生成的与所述第一属性对应的第一分区表中。
在一个实施例中,上述获取当前的增量表,并将所述增量表与所述有效数据分区表进行内关联,以查找到需要关闭拉链的数据的步骤之前,包括:获取预设的第二属性,根据所述第二属性建立所述有效数据分区表。
在一个实施例中,上述获取当前的增量表,并将所述增量表与所述有效数据分区表进行内关联,以查找到需要关闭拉链的数据的步骤之前,包括:获取增量数据,并将所述增量数据进行去重处理;将去重后的增量数据制成所述增量表。
在一个实施例中,上述获取增量数据,并将所述增量数据进行去重处理的步骤,包括:获取各所述增量数据的主键;判断所述主键中是否存在相同的主键;若存在相同的主键,则判断各相同的主键对应的数据是否存在重复;若存在重复数据,则只保留一组重复的数据。
在一个实施例中,上述判断各相同的主键对应的数据是否存在重复的步骤,包括:将各相同的主键对应的数据分别向量化,得到对应的向量矩阵;计算各向量矩阵之间的相似度;若任意两向量矩阵的相似度达到预设值,则判定所述任意两向量矩阵对应的数据为重复数据。
在一个实施例中,上述将所述增量表与所述有效数据分区表中的数据进行全关联,得到更新后的有效数据分区表的步骤之后,包括:定时对所述拉链表进行跑批运算。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (10)

1.一种Hive数据库中拉链表的更新方法,其特征在于,所述Hive数据库包括拉链表和增量表,所述拉链表设置有多个第一分区表,以及一个有效数据分区表;多个所述第一分区表是按照预设规则建立的具有不同属性的分区,第一分区表内记录关闭拉链的数据;所述有效数据分区表用于记载未处于关闭拉链状态的数据;所述更新方法,包括:
获取当前的增量表,并将所述增量表与所述有效数据分区表进行内关联,以查找到需要关闭拉链的数据;
解析出所述需要关闭拉链的数据的第一属性,将所述需要关闭拉链的数据插入到与所述第一属性对应的第一分区表中;
将所述增量表与所述有效数据分区表中的数据进行全关联,得到更新后的有效数据分区表。
2.根据权利要求1所述的Hive数据库中拉链表的更新方法,其特征在于,所述解析出所述需要关闭拉链的数据的第一属性,将所述需要关闭拉链的数据插入到与所述第一属性对应的第一分区表中的步骤,包括:
解析出所述需要关闭拉链的数据的第一属性;
若存在与所述第一属性对应的第一分区表,则将所述需要关闭拉链的数据插入到与所述第一属性对应的第一分区表中;
若不存在与所述第一属性对应的第一分区表,则根据所述第一属性生成一个与所述第一属性对应的第一分区表,并将所述需要关闭拉链的数据插入到生成的与所述第一属性对应的第一分区表中。
3.根据权利要求1所述的Hive数据库中拉链表的更新方法,其特征在于,所述获取当前的增量表,并将所述增量表与所述有效数据分区表进行内关联,以查找到需要关闭拉链的数据的步骤之前,包括:
获取预设的第二属性,根据所述第二属性建立所述有效数据分区表。
4.根据权利要求1所述的Hive数据库中拉链表的更新方法,其特征在于,所述获取当前的增量表,并将所述增量表与所述有效数据分区表进行内关联,以查找到需要关闭拉链的数据的步骤之前,包括:
获取增量数据,并将所述增量数据进行去重处理;
将去重后的增量数据制成所述增量表。
5.根据权利要求4所述的Hive数据库中拉链表的更新方法,其特征在于,所述获取增量数据,并将所述增量数据进行去重处理的步骤,包括:
获取各所述增量数据的主键;
判断所述主键中是否存在相同的主键;
若存在相同的主键,则判断各相同的主键对应的数据是否存在重复;
若存在重复数据,则只保留一组重复的数据。
6.根据权利要求5所述的Hive数据库中拉链表的更新方法,其特征在于,所述判断各相同的主键对应的数据是否存在重复的步骤,包括:
将各相同的主键对应的数据分别向量化,得到对应的向量矩阵;
计算各向量矩阵之间的相似度;
若任意两向量矩阵的相似度达到预设值,则判定所述任意两向量矩阵对应的数据为重复数据。
7.根据权利要求1所述的Hive数据库中拉链表的更新方法,其特征在于,所述将所述增量表与所述有效数据分区表中的数据进行全关联,得到更新后的有效数据分区表的步骤之后,包括:
定时对所述拉链表进行跑批运算。
8.一种Hive数据库中拉链表的更新装置,其特征在于,所述Hive数据库包括拉链表和增量表,所述拉链表设置有多个第一分区表,以及一个有效数据分区表;多个所述第一分区表是按照预设规则建立的具有不同属性的分区,第一分区表内记录关闭拉链的数据;所述有效数据分区表用于记载未处于关闭拉链状态的数据;所述更新装置,包括:
获取关联单元,用于获取当前的增量表,并将所述增量表与所述有效数据分区表进行内关联,以查找到需要关闭拉链的数据;
解析插入单元,用于解析出所述需要关闭拉链的数据的第一属性,将所述需要关闭拉链的数据插入到与所述第一属性对应的第一分区表中;
关联更新单元,用于将所述增量表与所述有效数据分区表中的数据进行全关联,得到更新后的有效数据分区表。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
CN201811084123.2A 2018-09-17 2018-09-17 Hive数据库中拉链表的更新方法、装置和计算机设备 Pending CN109299093A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811084123.2A CN109299093A (zh) 2018-09-17 2018-09-17 Hive数据库中拉链表的更新方法、装置和计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811084123.2A CN109299093A (zh) 2018-09-17 2018-09-17 Hive数据库中拉链表的更新方法、装置和计算机设备

Publications (1)

Publication Number Publication Date
CN109299093A true CN109299093A (zh) 2019-02-01

Family

ID=65163350

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811084123.2A Pending CN109299093A (zh) 2018-09-17 2018-09-17 Hive数据库中拉链表的更新方法、装置和计算机设备

Country Status (1)

Country Link
CN (1) CN109299093A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110096509A (zh) * 2019-05-16 2019-08-06 普元信息技术股份有限公司 大数据环境下实现历史数据拉链表存储建模处理的系统及方法
CN110413960A (zh) * 2019-06-19 2019-11-05 平安银行股份有限公司 文件对比方法、装置、计算机设备及计算机可读存储介质
CN111078709A (zh) * 2019-12-28 2020-04-28 辽宁振兴银行股份有限公司 一种基于数仓工具hive的非更新方式的增量拉链实现方法
CN112527833A (zh) * 2020-12-04 2021-03-19 青岛海尔科技有限公司 用于拉链表的数据存储方法、设备及计算机可读存储介质
CN112559641A (zh) * 2020-12-07 2021-03-26 泰康保险集团股份有限公司 拉链表的处理方法及装置、可读存储介质及电子设备
CN112817970A (zh) * 2021-01-14 2021-05-18 内蒙古蒙商消费金融股份有限公司 一种数据表的生成方法和装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103106585A (zh) * 2011-11-11 2013-05-15 阿里巴巴集团控股有限公司 产品信息的实时去重方法和装置
CN103577474A (zh) * 2012-08-03 2014-02-12 阿里巴巴集团控股有限公司 一种数据库的更新方法及系统
CN103678392A (zh) * 2012-09-20 2014-03-26 阿里巴巴集团控股有限公司 一种数据增量合并的方法及其装置
CN104239567A (zh) * 2014-09-28 2014-12-24 北京国双科技有限公司 数据仓库中的维度处理方法和装置
CN106446148A (zh) * 2016-09-21 2017-02-22 中国运载火箭技术研究院 一种基于聚类的文本查重方法
CN107526733A (zh) * 2016-06-20 2017-12-29 咪咕互动娱乐有限公司 一种拉链表数据存储方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103106585A (zh) * 2011-11-11 2013-05-15 阿里巴巴集团控股有限公司 产品信息的实时去重方法和装置
CN103577474A (zh) * 2012-08-03 2014-02-12 阿里巴巴集团控股有限公司 一种数据库的更新方法及系统
CN103678392A (zh) * 2012-09-20 2014-03-26 阿里巴巴集团控股有限公司 一种数据增量合并的方法及其装置
CN104239567A (zh) * 2014-09-28 2014-12-24 北京国双科技有限公司 数据仓库中的维度处理方法和装置
CN107526733A (zh) * 2016-06-20 2017-12-29 咪咕互动娱乐有限公司 一种拉链表数据存储方法和装置
CN106446148A (zh) * 2016-09-21 2017-02-22 中国运载火箭技术研究院 一种基于聚类的文本查重方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110096509A (zh) * 2019-05-16 2019-08-06 普元信息技术股份有限公司 大数据环境下实现历史数据拉链表存储建模处理的系统及方法
CN110413960A (zh) * 2019-06-19 2019-11-05 平安银行股份有限公司 文件对比方法、装置、计算机设备及计算机可读存储介质
CN111078709A (zh) * 2019-12-28 2020-04-28 辽宁振兴银行股份有限公司 一种基于数仓工具hive的非更新方式的增量拉链实现方法
CN112527833A (zh) * 2020-12-04 2021-03-19 青岛海尔科技有限公司 用于拉链表的数据存储方法、设备及计算机可读存储介质
CN112559641A (zh) * 2020-12-07 2021-03-26 泰康保险集团股份有限公司 拉链表的处理方法及装置、可读存储介质及电子设备
CN112817970A (zh) * 2021-01-14 2021-05-18 内蒙古蒙商消费金融股份有限公司 一种数据表的生成方法和装置
CN112817970B (zh) * 2021-01-14 2023-03-31 内蒙古蒙商消费金融股份有限公司 一种数据表的生成方法和装置

Similar Documents

Publication Publication Date Title
CN109299093A (zh) Hive数据库中拉链表的更新方法、装置和计算机设备
CN105893641B (zh) 一种职位推荐方法
Acid et al. An information retrieval model based on simple Bayesian networks
Hamerle et al. Panel analysis for qualitative variables
CN110147445A (zh) 基于文本分类的意图识别方法、装置、设备及存储介质
CN111078780A (zh) 一种ai优化数据治理的方法
CN102646114A (zh) 一种基于突破点的新闻话题时间线摘要生成方法
CN104679743A (zh) 一种确定用户的偏好模式的方法及装置
CN108959644A (zh) 搜索排序方法、装置、计算机设备和存储介质
CN106547864A (zh) 一种基于查询扩展的个性化信息检索方法
US7761265B2 (en) Method for comparing solid models
CN110008199A (zh) 一种基于访问热度的数据迁移部署方法
CN113254630A (zh) 一种面向全球综合观测成果的领域知识图谱推荐方法
CN113220904A (zh) 数据处理方法及数据处理装置、电子设备
CN105843907A (zh) 一种内存索引结构-距离树的构建及基于距离树的相似性连接算法
CN110737432B (zh) 一种基于词根表的脚本辅助设计方法及装置
Talburt et al. A practical guide to entity resolution with OYSTER
CN110909975B (zh) 科研平台效益评估方法、装置
CN109902116B (zh) 一种生态设计知识主动推送系统和方法
CN115129890A (zh) 回馈数据图谱生成方法、生成设备、问答设备及冰箱
Bouarar et al. Do rule-based approaches still make sense in logical data warehouse design?
CN114519073A (zh) 一种基于图谱关系挖掘的产品配置推荐方法及系统
Kuang et al. A harmonic extension approach for collaborative ranking
CN106682129B (zh) 个人大数据管理中层次概念向量化增量处理方法
Altın et al. Analyzing the Encountered Problems and Possible Solutions of Converting Relational Databases to Graph Databases

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