CN114564445A - 适用于Hive数据仓库进行数据写入与更新的方法及系统 - Google Patents

适用于Hive数据仓库进行数据写入与更新的方法及系统 Download PDF

Info

Publication number
CN114564445A
CN114564445A CN202210196245.0A CN202210196245A CN114564445A CN 114564445 A CN114564445 A CN 114564445A CN 202210196245 A CN202210196245 A CN 202210196245A CN 114564445 A CN114564445 A CN 114564445A
Authority
CN
China
Prior art keywords
data
hive
updating
writing
file
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
CN202210196245.0A
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.)
Inspur Cloud Information Technology Co Ltd
Original Assignee
Inspur Cloud Information Technology 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 Inspur Cloud Information Technology Co Ltd filed Critical Inspur Cloud Information Technology Co Ltd
Priority to CN202210196245.0A priority Critical patent/CN114564445A/zh
Publication of CN114564445A publication Critical patent/CN114564445A/zh
Pending legal-status Critical Current

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/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/128Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
    • 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/2228Indexing structures
    • 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

Landscapes

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

Abstract

本发明公开了适用于Hive数据仓库进行数据写入与更新的方法及系统,属于大数据存储与计算机技术领域,本发明要解决的技术问题为如何实现Hive数据仓库的数据更新及删除,保证ACID语义的同时,降低数据入库的延迟,且能够提供可视化界面,采用的技术方案为:该方法是使用索引机制及文件重写实现数据更新,通过可视化界面配置数据源、配置目的表、操作类型及更新列的信息进行数据写入或更新;同时借助Data Lakes的开源方案Hudi,每张Hive表在HDFS数据文件的基础上,维护了一条包含在不同时间所有对数据集操作的时间轴,该时间轴包含各个时间点对Hive表的操作,包括对Hive表执行的动作类型、时间戳及当前时间表所处的状态。

Description

适用于Hive数据仓库进行数据写入与更新的方法及系统
技术领域
本发明涉及大数据存储与计算机技术领域,具体地说是一种适用于Hive数据仓库进行数据写入与更新的方法及系统。
背景技术
随着互联网的发展,数据的不断膨胀,从刚开始的关系型数据库到非关系型数据库,再到大数据技术,不断演进最终是随着数据膨胀而不断改变,最初的数据仓库能解决当时的问题;但是随着时代发展,对数据仓库的实时性要求越来越高,传统的批处理模式数据入库延迟较高,小时级延迟或天级别延迟,且当业务数据发生少量更新时,同步到数据仓库往往需要将整个分区数据删掉重写。
故如何实现Hive数据仓库的数据更新及删除,保证ACID语义的同时,降低数据入库的延迟,且能够提供可视化界面是目前亟待解决的技术问题。
发明内容
本发明的技术任务是提供一种适用于Hive数据仓库进行数据写入与更新的方法及系统,来解决如何实现Hive数据仓库的数据更新及删除,保证ACID语义的同时,降低数据入库的延迟,且能够提供可视化界面的问题。
本发明的技术任务是按以下方式实现的,一种适用于Hive数据仓库进行数据写入与更新的方法,该方法是使用索引机制及文件重写实现数据更新,通过可视化界面配置数据源、配置目的表、操作类型及更新列的信息进行数据写入或更新;同时借助Data Lakes的开源方案Hudi,每张Hive表在HDFS数据文件的基础上,维护了一条包含在不同时间所有对数据集操作的时间轴,该时间轴包含各个时间点对Hive表的操作,包括对Hive表执行的动作类型、时间戳及当前时间表所处的状态;并依靠时间轴在读取器和写入器之间提供快照隔离,支持回滚到前一个时间点;在数据更新时,通过索引查询数据文件位置信息,每次更新记录时,包含该记录的文件均使用更新后的值进行重写。
作为优选,该方法具体如下:
数据源配置:配置完成Hive数据源连接;
数据开发:创建数据写入与更新的处理器,进行数据开发;
属性配置:选择数据源、目的表及更新字段的信息,完成属性配置;
数据更新:进行数据写入和更新。
更优地,数据写入和更新具体如下:
开始提交:判断上次任务是否失败:若失败,则触发回滚操作,并根据当前时间生成一个事务开始的请求标识元数据;
构造Record对象:根据元数据信息构造Record对象,方便后续数据去重和数据合并;
数据去重:一批增量数据中可能会有重复的数据,根据主键对数据进行去重,避免重复数据写入;
数据位置信息获取:在修改记录中,根据索引获取当前记录所属文件的fileid,在数据合并时需要知道数据update操作向哪个fileId文件写入新的快照文件;
数据合并:重写索引命中的fileId快照文件;
完成提交:在元数据中生成xxxx.commit文件;当生成commit元数据文件时,查询引擎根据元数据查询到刚刚更新(update)后的数据。
作为优选,所述时间轴包括对Hive表的所有操作。
更优地,对Hive表的所有操作具体如下:
Commit:一次提交表示将一组记录原子写入到数据集中;
Clean:删除数据集中不再需要的旧版本文件;
Rollback:表示当commit不成功时进行回滚,其会删除在写入过程中产生的部分文件;
Savepoint:将任意文件组标记为已保存,以便其不会被删除;在发生灾难需要恢复数据的情况下,有助于将数据集还原到时间轴上的任一个点;
Compaction:将基于行的log日志文件转变成列式parquet数据文件;
Restore:将从任一个savepoint恢复。
一种适用于Hive数据仓库进行数据写入与更新的系统,该系统包括,
数据源模块,用于配置Hive数据源;
数据开发模块,用于数据写入或更新。
作为优选,所述数据开发模块的工作过程具体如下:
(1)、通过数据源管理功能创建Hive数据源;
(2)、配置Hive JDBC连接地址;
(3)、上传Krb5配置文件;
(4)、上传Hive服务的principle以及包含Hive身份信息的keytab文件。
更优地,所述数据开发模块通过选择用于Hive写入或更新的processor配置相关属性;其中,相关属性包括选择Hive数据源、选择Hive数据表、配置操作类型及配置更新列;操作类型包括insert或update;
数据开发模块的高级属性中能够配置数据文件的最大值、最小值及数据写入的并发数的信息。
一种电子设备,包括:存储器和至少一个处理器;
其中,所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上述的适用于Hive数据仓库进行数据写入与更新的方法及系统。
一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行时,实现如上述的适用于Hive数据仓库进行数据写入与更新的方法及系统。
本发明的适用于Hive数据仓库进行数据写入与更新的方法及系统具有以下优点:
(一)与现有技术相比,本发明的有益效果是提供了在大数据环境下,Hive数据仓库进行数据写入与更新的一种解决方案,解决了Hive仓库数据难以更新的问题,以往在Hive中修改数据需要重新分区或重写整个表,但是本发明使数据更新可以是文件级别的重写;经过实践本发明数据写入与更新性能较高,满足大数据量下的业务需求,且提供了数据写入与更新的可视化界面,易于操作,减少开发成本;
(二)本发明依靠此时间轴在读取器和写入器之间提供快照隔离,并支持回滚到前一个时间点;
(三)本发明提供了数据写入与更新的可视化界面,选择数据源、目的表、更新字段等信息,配置完成后点击运行进行数据写入与更新,易于操作;
(四)本发明适用于Hive数据仓库进行数据写入、更新的方案,支持ACID语义,保证数据入库的时效性;同时大大降低了数据入库的延迟,且提供可视化界面,操作简单。
附图说明
下面结合附图对本发明进一步说明。
附图1为适用于Hive数据仓库进行数据写入与更新的方法的流程框图;
附图2为数据写入-更新执行的流程框图;
附图3为数据写入与更新E-R图;
附图4为适用于Hive数据仓库进行数据写入与更新的系统的示意图。
具体实施方式
参照说明书附图和具体实施例对本发明的适用于Hive数据仓库进行数据写入与更新的方法及系统作以下详细地说明。
实施例1:
本实施例的适用于Hive数据仓库进行数据写入与更新的方法,该方法是使用索引机制及文件重写实现数据更新,通过可视化界面配置数据源、配置目的表、操作类型及更新列的信息进行数据写入或更新;同时借助Data Lakes的开源方案Hudi,每张Hive表在HDFS数据文件的基础上,维护了一条包含在不同时间所有对数据集操作的时间轴,该时间轴包含各个时间点对Hive表的操作,包括对Hive表执行的动作类型、时间戳及当前时间表所处的状态;并依靠时间轴在读取器和写入器之间提供快照隔离,支持回滚到前一个时间点;在数据更新时,通过索引查询数据文件位置信息,每次更新记录时,包含该记录的文件均使用更新后的值进行重写;如附图1所示,该方法具体如下:
S1、数据源配置:配置完成Hive数据源连接;
S2、数据开发:创建数据写入与更新的处理器,进行数据开发;
S3、属性配置:选择数据源、目的表及更新字段的信息,完成属性配置;
S4、数据更新:进行数据写入和更新。
如附图2和3所示,本实施例步骤S4中的数据写入和更新具体如下:
S401、开始提交:判断上次任务是否失败:若失败,则触发回滚操作,并根据当前时间生成一个事务开始的请求标识元数据;
S402、构造Record对象:根据元数据信息构造Record对象,方便后续数据去重和数据合并;
S403、数据去重:一批增量数据中可能会有重复的数据,根据主键对数据进行去重,避免重复数据写入;
S404、数据位置信息获取:在修改记录中,根据索引获取当前记录所属文件的fileid,在数据合并时需要知道数据update操作向哪个fileId文件写入新的快照文件;
S405、数据合并:重写索引命中的fileId快照文件;
S406、完成提交:在元数据中生成xxxx.commit文件;当生成commit元数据文件时,查询引擎根据元数据查询到刚刚更新(update)后的数据。
本实施例中的时间轴包括对Hive表的所有操作;具体如下:
Commit:一次提交表示将一组记录原子写入到数据集中;
Clean:删除数据集中不再需要的旧版本文件;
Rollback:表示当commit不成功时进行回滚,其会删除在写入过程中产生的部分文件;
Savepoint:将任意文件组标记为已保存,以便其不会被删除;在发生灾难需要恢复数据的情况下,有助于将数据集还原到时间轴上的任一个点;
Compaction:将基于行的log日志文件转变成列式parquet数据文件;
Restore:将从任一个savepoint恢复。
实施例2:
如附图4所示,本实施例的适用于Hive数据仓库进行数据写入与更新的系统,该系统包括,
数据源模块,用于配置Hive数据源;
数据开发模块,用于数据写入或更新。
本实施例中的数据开发模块的工作过程具体如下:
(1)、通过数据源管理功能创建Hive数据源;
(2)、配置Hive JDBC连接地址;
(3)、上传Krb5配置文件;
(4)、上传Hive服务的principle以及包含Hive身份信息的keytab文件。
本实施例中的数据开发模块通过选择用于Hive写入或更新的processor配置相关属性;其中,相关属性包括选择Hive数据源、选择Hive数据表、配置操作类型及配置更新列;操作类型包括insert或update;
数据开发模块的高级属性中能够配置数据文件的最大值、最小值及数据写入的并发数的信息。
实施例3:
本发明还提供了一种电子设备,包括:存储器和处理器;
其中,所述存储器存储计算机执行指令;
处理器执行所述存储器存储的计算机执行指令,使得处理器执行任一实施例中的适用于Hive数据仓库进行数据写入与更新的方法。
处理器可以是中央处理单元(CPU),还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通过处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器可用于储存计算机程序和/或模块,处理器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现电子设备的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器还可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,只能存储卡(SMC),安全数字(SD)卡,闪存卡、至少一个磁盘存储期间、闪存器件、或其他易失性固态存储器件。
实施例4:
本发明还提供了一种计算机可读存储介质,其中存储有多条指令,指令由处理器加载,使处理器执行本发明任一实施例中的适用于Hive数据仓库进行数据写入与更新的方法。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。
在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。
此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的CPU等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种适用于Hive数据仓库进行数据写入与更新的方法,其特征在于,该方法是使用索引机制及文件重写实现数据更新,通过可视化界面配置数据源、配置目的表、操作类型及更新列的信息进行数据写入或更新;同时借助Data Lakes的开源方案Hudi,每张Hive表在HDFS数据文件的基础上,维护了一条包含在不同时间所有对数据集操作的时间轴,该时间轴包含各个时间点对Hive表的操作,包括对Hive表执行的动作类型、时间戳及当前时间表所处的状态;并依靠时间轴在读取器和写入器之间提供快照隔离,支持回滚到前一个时间点;在数据更新时,通过索引查询数据文件位置信息,每次更新记录时,包含该记录的文件均使用更新后的值进行重写。
2.根据权利要求1所述的适用于Hive数据仓库进行数据写入与更新的方法,其特征在于,该方法具体如下:
数据源配置:配置完成Hive数据源连接;
数据开发:创建数据写入与更新的处理器,进行数据开发;
属性配置:选择数据源、目的表及更新字段的信息,完成属性配置;
数据更新:进行数据写入和更新。
3.根据权利要求1或2所述的适用于HiveE数据仓库进行数据写入与更新的方法,其特征在于,数据写入和更新具体如下:
开始提交:判断上次任务是否失败:若失败,则触发回滚操作,并根据当前时间生成一个事务开始的请求标识元数据;
构造Record对象:根据元数据信息构造Record对象;
数据去重:根据主键对数据进行去重,避免重复数据写入;
数据位置信息获取:在修改记录中,根据索引获取当前记录所属文件的fileid;
数据合并:重写索引命中的fileId快照文件;
完成提交:在元数据中生成xxxx.commit文件;当生成commit元数据文件时,查询引擎根据元数据查询到更新后的数据。
4.根据权利要求1所述的适用于Hive数据仓库进行数据写入与更新的方法,其特征在于,所述时间轴包括对Hive表的所有操作。
5.根据权利要求4所述的适用于Hive数据仓库进行数据写入与更新的方法,其特征在于,对Hive表的所有操作具体如下:
Commit:一次提交表示将一组记录原子写入到数据集中;
Clean:删除数据集中不再需要的旧版本文件;
Rollback:表示当commit不成功时进行回滚,其会删除在写入过程中产生的部分文件;
Savepoint:将任意文件组标记为已保存;在发生灾难需要恢复数据的情况下,有助于将数据集还原到时间轴上的任一个点;
Compaction:将基于行的log日志文件转变成列式parquet数据文件;
Restore:将从任一个savepoint恢复。
6.一种适用于Hive数据仓库进行数据写入与更新的系统,其特征在于,该系统包括,
数据源模块,用于配置Hive数据源;
数据开发模块,用于数据写入或更新。
7.根据权利要求6所述的适用于Hive数据仓库进行数据写入与更新的系统,其特征在于,所述数据开发模块的工作过程具体如下:
(1)、通过数据源管理功能创建Hive数据源;
(2)、配置HiveJDBC连接地址;
(3)、上传Krb5配置文件;
(4)、上传Hive服务的principle以及包含Hive身份信息的keytab文件。
8.根据权利要求6或7所述的适用于Hive数据仓库进行数据写入与更新的系统,其特征在于,所述数据开发模块通过选择用于Hive写入或更新的processor配置相关属性;其中,相关属性包括选择Hive数据源、选择Hive数据表、配置操作类型及配置更新列;操作类型包括insert或update;
数据开发模块的高级属性中能够配置数据文件的最大值、最小值及数据写入的并发数的信息。
9.一种电子设备,其特征在于,包括:存储器和至少一个处理器;
其中,所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1至5任一所述的适用于Hive数据仓库进行数据写入与更新的方法及系统。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行时,实现如权利要求1至5中任一所述的适用于Hive数据仓库进行数据写入与更新的方法及系统。
CN202210196245.0A 2022-03-01 2022-03-01 适用于Hive数据仓库进行数据写入与更新的方法及系统 Pending CN114564445A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210196245.0A CN114564445A (zh) 2022-03-01 2022-03-01 适用于Hive数据仓库进行数据写入与更新的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210196245.0A CN114564445A (zh) 2022-03-01 2022-03-01 适用于Hive数据仓库进行数据写入与更新的方法及系统

Publications (1)

Publication Number Publication Date
CN114564445A true CN114564445A (zh) 2022-05-31

Family

ID=81715545

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210196245.0A Pending CN114564445A (zh) 2022-03-01 2022-03-01 适用于Hive数据仓库进行数据写入与更新的方法及系统

Country Status (1)

Country Link
CN (1) CN114564445A (zh)

Similar Documents

Publication Publication Date Title
US11429641B2 (en) Copying data changes to a target database
JP7410181B2 (ja) ハイブリッド・インデックス作成方法、システム、プログラム
CN105630863B (zh) 用于多版本并发提交状态的事务控制块
US9183236B2 (en) Low level object version tracking using non-volatile memory write generations
US8880542B2 (en) Simply querying across time
US8386431B2 (en) Method and system for determining database object associated with tenant-independent or tenant-specific data, configured to store data partition, current version of the respective convertor
US9507841B2 (en) Consistent backup of a distributed database system
US10572508B2 (en) Consistent query execution in hybrid DBMS
EP2562657B1 (en) Management of update transactions and crash recovery for columnar database
EP2336901B1 (en) Online access to database snapshots
EP2380090B1 (en) Data integrity in a database environment through background synchronization
US9438672B2 (en) Method for client specific database change propagation
US11216412B2 (en) Intelligent merging for efficient updates in columnar databases
CN110263060B (zh) 一种erp电子附件管理方法及计算机设备
CN114564445A (zh) 适用于Hive数据仓库进行数据写入与更新的方法及系统
KR101024494B1 (ko) 메타데이타를 이용한 변경 데이타 추출방법
CN112685431B (zh) 异步缓存方法、装置、系统、电子设备和存储介质
CN112988474B (zh) 一种海量小文件备份热数据的方法、系统、设备及介质
US10360145B2 (en) Handling large writes to distributed logs
CN116126620A (zh) 数据库日志处理方法、数据库变更查询方法及相关装置
CN114461648A (zh) 基于LSM-Tree的数据存储方法及系统
CN117235074A (zh) 订单数据库自动分表方法、装置、设备及存储介质
US20030163451A1 (en) System and method for guaranteeing exactly-once updates to a data store
CN118035229A (zh) 一种数据库分表方法、装置、电子设备及存储介质
CN117971839A (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