CN110990472B - 基于Hbase的数据导出方法及装置 - Google Patents

基于Hbase的数据导出方法及装置 Download PDF

Info

Publication number
CN110990472B
CN110990472B CN201911146034.0A CN201911146034A CN110990472B CN 110990472 B CN110990472 B CN 110990472B CN 201911146034 A CN201911146034 A CN 201911146034A CN 110990472 B CN110990472 B CN 110990472B
Authority
CN
China
Prior art keywords
data
hfile
file
region
hbase
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
CN201911146034.0A
Other languages
English (en)
Other versions
CN110990472A (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.)
Unihub China Information Technology Co Ltd
Original Assignee
Unihub China 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 Unihub China Information Technology Co Ltd filed Critical Unihub China Information Technology Co Ltd
Priority to CN201911146034.0A priority Critical patent/CN110990472B/zh
Publication of CN110990472A publication Critical patent/CN110990472A/zh
Application granted granted Critical
Publication of CN110990472B publication Critical patent/CN110990472B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • 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/18File system types
    • G06F16/182Distributed file systems
    • 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

Abstract

本发明公开了一种基于Hbase的数据导出方法及装置,该方法包括:对Hbase表进行快照,生成Hbase表中各个Region的快照文件;根据各个Region的快照文件中记录的Hfile文件引用指针,扫描读取各个Region的Hfile文件;解析各个Region的Hfile文件,得到Hbase表的对应的Hfile数据;导出Hbase表的对应的Hfile数据。本发明在读取Hbase中的数据的时候,直接与存储于HDFS上的各个Region的Hfile文件进行交互,能够避免频繁与RegionServer交互,从而影响RegionServer提供正常线上业务服务的问题。

Description

基于Hbase的数据导出方法及装置
技术领域
本发明涉及大数据技术领域,尤其涉及一种基于Hbase的数据导出方法及装置。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
众所周知,HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,用来存储非结构化数据,支持横向扩展,能够通过不断增加廉价的商用服务器,来增加计算和存储能力。HBase以表的形式存储数据,一个表在行的方向上可以分割为多个Region,Region是HBase数据存储和管理的基本单元,每个Region被一个RegionServer提供服务,每个RegionServer可同时服务多个Region。
当需要对存储在Hbase中的数据进行数据处理、分析等操作的时候,如果使用Spark直接读取Hbase中的数据进行批处理操作,很容易使得Hbase过载,甚至出现内存溢出导致RegionServer挂掉的情形,一旦RegionServer停止服务,在一段时间内Hbase的读写服务将不可用,由于Hbase通常作为实时在线存储数据库,RegionServer服务中断,影响很大。因而,对于Hbase数据的分析,需要先将Hbase中的数据抽取到HDFS或Hive中存储后再进行统计分析等操作。
目前,在将Hbase中数据抽取到HDFS或Hive存储的时候,现有技术通常是基于Spark或Hive的方式(扫描Hbase的表来获取数据),通过TableScanMR API与Hbase的RegionServer通讯,由RegionServer将数据请求转发到各个Region上,如图1所示。现有Hbase表的数据扫描流程如下:
①客户端将数据扫描请求发送到Hbase的每个RegionServer。
②RegionServer将请求转发到各个Region,每个Region每次扫描一定量(默认为100条记录或数据大小不超过2M)的数据,并将扫描读取的数据返回给客户端。
③客户端继续向每个RegionServer发送数据扫描请求,开始对每个RegionServer下的各个Region进行下一轮的数据扫描,直到数据扫描完毕。
分析可知,现有的Hbase数据扫描方式,由于每次扫描的数据量很小,导致需要扫描的次数很多,数据读取效率很低。另外,由于数据扫描过程中,需要与Hbase的RegionServer频繁交互,特别是Region很大时,会存在大量的数据请求,导致RegionServe无法提供正常线上业务服务。
针对上述问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供一种基于Hbase的数据导出方法,用以解决现有基于Hbase的数据导出方法,频繁与Hbase的RegionServer交互,导致RegionServer无法提供正常线上业务服务的技术问题,该方法包括:对Hbase表进行快照,生成Hbase表中各个Region的快照文件,其中,每个Region的快照文件中记录有每个Region的Hfile文件引用指针;根据各个Region的快照文件中记录的Hfile文件引用指针,扫描读取各个Region的Hfile文件;解析各个Region的Hfile文件,得到Hbase表的对应的Hfile数据;导出Hbase表的对应的Hfile数据;根据各个Region的快照文件中记录的Hfile文件引用指针,扫描读取各个Region的Hfile文件,包括:获取读取Hfile文件的配置参数,其中,所述配置参数中包含:并行读取Hfile文件时设定的单个并行度的数据大小阈值;根据单个并行度的数据大小阈值和单个Hfile文件的文件大小,确定读取单个Hfile文件的并行度;根据各个Region的快照文件中记录的Hfile文件引用指针,按照单个Hfile文件的并行度,扫描读取各个Region的Hfile文件;导出所述Hbase表的对应的Hfile数据,包括:将所述Hbase表的对应的Hfile数据转换为Spark的DataFrame数据;将DataFrame数据插入到Hive表或HDFS文件。
本发明实施例还提供一种基于Hbase的数据导出装置,用以解决现有基于Hbase的数据导出方法,频繁与Hbase的RegionServer交互,导致RegionServer无法提供正常线上业务服务的技术问题,该装置包括:快照文件生成单元,用于对Hbase表进行快照,生成Hbase表中各个Region的快照文件,其中,每个Region的快照文件中记录有每个Region的Hfile文件引用指针;数据扫描单元,用于根据各个Region的快照文件中记录的Hfile文件引用指针,扫描读取各个Region的Hfile文件;数据解析单元,用于解析各个Region的Hfile文件,得到Hbase表的对应的Hfile数据;数据导出单元,用于导出Hbase表的对应的Hfile数据;所述数据扫描单元包括:参数配置模块,用于获取读取Hfile文件的配置参数,其中,所述配置参数中包含:并行读取Hfile文件时设定的单个并行度的数据大小阈值;参数确定模块,用于根据单个并行度的数据大小阈值和单个Hfile文件的文件大小,确定读取单个Hfile文件的并行度;数据读取模块,用于数据扫描单元,用于根据各个Region的快照文件中记录的Hfile文件引用指针,按照单个Hfile文件的并行度,扫描读取各个Region的Hfile文件;所述数据导出单元包括:数据格式转换模块,用于将所述Hbase表的对应的Hfile数据转换为Spark的DataFrame数据;第二数据导出模块,用于将DataFrame数据插入到Hive表或HDFS文件。
本发明实施例还提供一种计算机设备,用以解决现有基于Hbase的数据导出方法,频繁与Hbase的RegionServer交互,导致RegionServer无法提供正常线上业务服务的技术问题,该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述基于Hbase的数据导出方法。
本发明实施例还提供一种计算机可读存储介质,用以解决现有基于Hbase的数据导出方法,频繁与Hbase的RegionServer交互,导致RegionServer无法提供正常线上业务服务的技术问题,该计算机可读存储介质存储有执行上述基于Hbase的数据导出方法的计算机程序。
本发明实施例中,利用Hbase的快照API,对Hbase表进行快照,生成Hbase表中各个Region的快照文件,由于每个Region的快照文件中记录有每个Region的Hfile文件引用指针,因而可以根据各个Region的快照文件中记录的Hfile文件引用指针,扫描读取各个Region的Hfile文件,通过解析各个Region的Hfile文件,得到Hbase表的对应的Hfile数据,最后Hbase表的对应的Hfile数据导出。
通过本发明实施例,直接与存储于HDFS上的各个Region的Hfile文件进行交互,来实现Hbase数据的读取,能够避免频繁与RegionServer交互,从而影响RegionServer提供正常线上业务服务的问题,另外,直接读取快照文件,每次可以读取大量数据,能够大大提高Hbase数据的导出效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为现有技术中提供一种基于Hbase的数据导出方案示意图;
图2为本发明实施例中提供的一种基于Hbase的数据导出方法流程图;
图3为本发明实施例中提供的一种将Hbase数据抽取到HDFS或Hive存储的数据导出方法示意图;
图4为本发明实施例中提供的一种基于Hbase的数据导出装置示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
在本说明书的描述中,所使用的“包含”、“包括”、“具有”、“含有”等,均为开放性的用语,即意指包含但不限于。参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”等的描述意指结合该实施例或示例描述的具体特征、结构或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本申请的实施,其中的步骤顺序不作限定,可根据需要作适当调整。
如本申请背景部分介绍的内容,现有基于Hbase的数据导出方法,是直接与Hbase的RegionServer进行交互,由RegionServer将来自客户端的数据请求转发到各个Region,由于频繁与RegionServer交互,导致RegionServer无法提供正常线上业务服务。
为了解决上述问题,本发明实施例中提供了一种基于Hbase的数据导出方法,图2为本发明实施例中提供的一种基于Hbase的数据导出方法流程图,如图2所示,该方法包括如下步骤:
S201,对Hbase表进行快照,生成Hbase表中各个Region的快照文件,其中,每个Region的快照文件中记录有每个Region的Hfile文件引用指针。
需要说明的是,Hbase的架构是主从架构,包括主节点HMaster和从节点RegionServer。Hbase集群一般有1~2个HMaster,多个RegionServer。其中,主节点HMaster用于负责Regionserver的上下线、Region的分配等工作;RegionServer用于负责负责客户端向Hbase写入数据,管理Region等工作;Region是HBase数据存储和管理的基本单位。一个表中可以包含一个或多个Region。一个RegionServer可以包含多个Region。一个Region下面对应多个HFile,HFile为存储在HDFS上的文件,是Hbase的底层文件格式。
HBase以表的形式存储数据,一个表在行的方向分割为多个Region,Region是HBase数据存储和管理的基本单元,即不同的Region可以在不同的Region Server上,但同一个Region不会拆分到多个Region Server上。每个Region只能被一个RegionServer提供服务,每个RegionServer则可同时服务多个Region,来自不同RegionServer上的Region组合成表的整体逻辑视图。
HBase以表的形式存储数据,HBase表在行的方向上可以分割为多个Region,因而,上述S201中,可以Hbase的Snapshot API(快照API)对Hbase表进行快照,以生成Hbase表中各个Region的快照文件,将Hbase中所有Region的快照文件汇总,即可得到Hbase的快照文件。
由于每个Region的快照文件中记录有每个Region中所有Hfile文件的引用指针,通过Hfile文件的引用指针可以扫描读取HDFS上存储的各个Region的Hfile文件。
S202,根据各个Region的快照文件中记录的Hfile文件引用指针,扫描读取各个Region的Hfile文件。
作为一种可选的实施方式,上述S202可以具体包括如下步骤:获取读取Hfile文件的配置参数,其中,配置参数中包含:并行读取Hfile文件时设定的单个并行度的数据大小阈值;根据单个并行度的数据大小阈值和单个Hfile文件的文件大小,确定读取单个Hfile文件的并行度;根据各个Region的快照文件中记录的Hfile文件引用指针,按照单个Hfile文件的并行度,扫描读取各个Region的Hfile文件。
需要说明的是,当单个Hfile文件过大(如超过30G)的情况下,如果数据读取的并行度为1,数据读取效率还是很低。由此,本发明实施例通过上述实施方式,通过预设单个并行度的数据大小阈值,结合单个Hfile文件的文件大小,确定读取单个Hfile文件的并行度,进而根据单个Hfile文件的并行度,扫描读取各个Region的Hfile文件,能够提高大文件数据读取的效率。
其中,读取单个Hfile文件的并行度=单个Hfile文件大小/单个并行度的数据阈值,单个并行度的数据阈值可通过外部参数传入,例如,某个HFile文件的大小为1G,指定单个并行度的数据大小阈值为128M,则可以计算读取该HFile文件的并行度为8(1G/128M=8)。
S203,解析各个Region的Hfile文件,得到Hbase表的对应的Hfile数据。
由于Region是保存Hbase数据的最小逻辑单元,通过解析Hbase中各个Region的Hfile文件,可以得到整个Hbase对应的Hfile数据。
S204,导出Hbase表的对应的Hfile数据。
需要说明的是,上述S204在Hbase表的对应的Hfile数据的时候,可以根据各种预设的数据导出条件导出数据,例如,在将Hbase中数据抽取到HDFS或Hive中存储的时候,可以将Hfile数据转换为Spark的DataFrame数据。
一种可选的实施方式中,可以通过如下步骤来导出Hbase表的对应的Hfile数据:获取预设的数据过滤条件;根据数据过滤条件,导出Hbase表的对应的Hfile数据。
需要说明的是,数据过滤条件包括但不限于:rowkey的范围、列的查询条件等;通过预设不同的数据过滤条件,能够导出符合数据过滤条件的Hfile数据。通过指定rowkey的范围或列的查询条件,可以减少返回的数据量,进而降低网络传输的带宽。
另一种可选的实施方式中,可以通过如下步骤来导出Hbase表的对应的Hfile数据:将Hbase表的对应的Hfile数据转换为Spark的DataFrame数据;将DataFrame数据插入到Hive表或HDFS文件。
需要说明的是,DataFrame数据是Spark中数据的一个不可变分布式集合,它包含数据和对应的Schema信息,类似数据的表,例如DataFrame数据的Schema类似数据库的字段名。在Spark中,对DataFrame数据的操作是非常方便的,可以但不限于将DataFrame数据注册为表,以便通过写SQL命令的方式,实现数据分析。本发明实施例将Hfile数据转换为Spark的DataFrame数据,可以方便后续对数据的各种处理。
HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)用于以分布式的方式存储数据;Hive是基于Hadoop的一个数据仓库工具,能够将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。Hive的数据是存储在HDFS之上,但是将HDFS的数据映射为一张数据库表,可以使用SQL对数据做统计分析等各种功能。
由上可知,本发明实施例提供的基于Hbase的数据导出方法,利用Hbase的快照API,对Hbase表进行快照,生成Hbase表中各个Region的快照文件,由于每个Region的快照文件中记录有每个Region的Hfile文件引用指针,因而可以根据各个Region的快照文件中记录的Hfile文件引用指针,扫描读取各个Region的Hfile文件,通过解析各个Region的Hfile文件,得到Hbase表的对应的Hfile数据,最后Hbase表的对应的Hfile数据导出。
通过本发明实施例提供的基于Hbase的数据导出方法,无需与Hbase的RegionServer交互,直接与存储于HDFS上的各个Region的Hfile文件进行交互,来实现Hbase数据的读取,能够避免频繁与RegionServer交互,从而影响RegionServer提供正常线上业务服务的问题,另外,直接读取快照文件,每次可以读取大量数据,能够大大提高Hbase数据的导出效率。
图3为本发明实施例中提供的一种将Hbase数据抽取到HDFS或Hive存储的数据导出方法示意图,如3所示,包括如下步骤:
①生成Hbase快照文件。
具体地,使用Hbase的Snapshot API对Hbase表生成当前时刻的快照,生成每个Region的snapshot文件(即快照文件),每个Region的snapshot文件汇总为总体的snapshot文件,snapshot文件记录各个Region中所有HFile文件的引用指针。
②确定读取单个Hfile文件的并行度。
具体地,根据外部输入的单个并行度的数据阈值,根据单个Hfile文件的大小确定读取该文件的并行度,例如,当预设的单个并行度的数据阈值为200M的情况下,如果某个Hfile文件大小为1000M,则读取该Hfile文件的并行度为5(1000M/200M=5)。
③解析Hfile文件,生成Spark的DataFrame数据。
解析HFile文件,将HFile的数据转换为Spark的DataFrame数据。
④指定数据过滤条件。
根据预设的数据过滤条件(例如,rowkey的范围、列的查询条件等)对数据进行过滤,通过指定过滤条件,能够减少网络传输的数据大小。
⑤将转换的DataFrame数据插入到Hive表或者HDFS的文件
在HFile的数据转换为Spark的DataFrame数据后,可以利用Spark提供的数据源接口,将数据保存到Hive或HDFS。
例如,df.write.format(“csv”).save(“/hadoop/data”);
此处假设数据保存在df变量中,该语句数据保存到HDFS的目录/hadoop/data,数据格式为csv。
基于同一发明构思,本发明实施例中还提供了一种基于Hbase的数据导出装置,如下面的实施例所述。由于该装置实施例解决问题的原理与基于Hbase的数据导出方法相似,因此该装置实施例的实施可以参见方法的实施,重复之处不再赘述。
图4为本发明实施例中提供的一种基于Hbase的数据导出装置示意图,如图4所示,该装置包括:快照文件生成单元41、数据扫描单元42、数据解析单元43和数据导出单元44。
其中,快照文件生成单元41,用于对Hbase表进行快照,生成Hbase表中各个Region的快照文件,其中,每个Region的快照文件中记录有每个Region的Hfile文件引用指针;数据扫描单元42,用于根据各个Region的快照文件中记录的Hfile文件引用指针,扫描读取各个Region的Hfile文件;数据解析单元43,用于解析各个Region的Hfile文件,得到Hbase表的对应的Hfile数据;数据导出单元44,用于导出Hbase表的对应的Hfile数据。
由上可知,本发明实施例提供的基于Hbase的数据导出装置,利用Hbase的快照API,通过快照文件生成单元41对Hbase表进行快照,生成Hbase表中各个Region的快照文件,由于每个Region的快照文件中记录有每个Region的Hfile文件引用指针,因而可以通过数据扫描单元42根据各个Region的快照文件中记录的Hfile文件引用指针,扫描读取各个Region的Hfile文件,通过数据解析单元43,解析各个Region的Hfile文件,得到Hbase表的对应的Hfile数据,最后通过数据导出单元44将Hbase表的对应的Hfile数据导出。
通过本发明实施例提供的基于Hbase的数据导出装置,无需与Hbase的RegionServer交互,直接与存储于HDFS上的各个Region的Hfile文件进行交互,来实现Hbase数据的读取,能够避免频繁与RegionServer交互,从而影响RegionServer提供正常线上业务服务的问题,另外,直接读取快照文件,每次可以读取大量数据,能够大大提高Hbase数据的导出效率。
作为一种可选的实施方式,本发明实施例提供的基于Hbase的数据导出装置中,数据扫描单元42可以包括:参数配置模块421,用于获取读取Hfile文件的配置参数,其中,配置参数中包含:并行读取Hfile文件时设定的单个并行度的数据大小阈值;参数确定模块422,用于根据单个并行度的数据大小阈值和单个Hfile文件的文件大小,确定读取单个Hfile文件的并行度;数据读取模块423,用于数据扫描单元,用于根据各个Region的快照文件中记录的Hfile文件引用指针,按照单个Hfile文件的并行度,扫描读取各个Region的Hfile文件。
作为一种可选的实施方式,本发明实施例提供的基于Hbase的数据导出装置中,数据导出单元44可以包括:数据过滤条件获取模块441,用于获取预设的数据过滤条件;第一数据导出模块442,用于根据数据过滤条件,导出Hbase表的对应的Hfile数据。
作为一种可选的实施方式,本发明实施例提供的基于Hbase的数据导出装置中,数据导出单元44还可以包括:数据格式转换模块443,用于将Hbase表的对应的Hfile数据转换为Spark的DataFrame数据;第二数据导出模块444,用于将DataFrame数据插入到Hive表或HDFS文件。
本发明实施例还提供了一种计算机设备,用以解决现有基于Hbase的数据导出方法,直接与Hbase的RegionServer交互,由RegionServer将数据请求转发到各个Region,由于频繁与RegionServer交互,容易影响RegionServer线上业务的技术问题,该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述基于Hbase的数据导出方法。
本发明实施例还提供了一种计算机可读存储介质,用以解决现有基于Hbase的数据导出方法,直接与Hbase的RegionServer交互,由RegionServer将数据请求转发到各个Region,由于频繁与RegionServer交互,容易影响RegionServer线上业务的技术问题,该计算机可读存储介质存储有执行上述基于Hbase的数据导出方法的计算机程序。
综上所述,本发明实施例提供了一种基于Hbase的数据导出方法、装置、计算机设备及计算机可读存储介质,基于Spark的API,封装从Hbase抽取数据的流程,在扫描读取Hbase数据的时候,直接与存储于HDFS上的各个Region的Hfile文件交互,能够实现但不限于如下技术效果:①大幅减少频繁与RegionServer的交互,能够避免影响Hbase的正常线上业务;②在数据抽取之前,对Hbase表进行快照,生成各个Region的快照文件,对快照文件的操作不会影响到RegionServer;③直接读取Hbase的快照文件,每次可读取大量数据;④通过设定大文件读取的并行度,能够提升大文件数据读取的效率。本发明实施例对百亿数据量Hbase数据导出,数据抽取效率可提升5倍以上。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种基于Hbase的数据导出方法,其特征在于,包括:
对Hbase表进行快照,生成Hbase表中各个Region的快照文件,其中,每个Region的快照文件中记录有每个Region的Hfile文件引用指针;
根据各个Region的快照文件中记录的Hfile文件引用指针,扫描读取各个Region的Hfile文件;
解析各个Region的Hfile文件,得到所述Hbase表的对应的Hfile数据;
导出所述Hbase表的对应的Hfile数据;
根据各个Region的快照文件中记录的Hfile文件引用指针,扫描读取各个Region的Hfile文件,包括:
获取读取Hfile文件的配置参数,其中,所述配置参数中包含:并行读取Hfile文件时设定的单个并行度的数据大小阈值;
根据单个并行度的数据大小阈值和单个Hfile文件的文件大小,确定读取单个Hfile文件的并行度;
根据各个Region的快照文件中记录的Hfile文件引用指针,按照单个Hfile文件的并行度,扫描读取各个Region的Hfile文件;
导出所述Hbase表的对应的Hfile数据,包括:
将所述Hbase表的对应的Hfile数据转换为Spark的DataFrame数据;
将DataFrame数据插入到Hive表或HDFS文件。
2.如权利要求1所述的方法,其特征在于,导出所述Hbase表的对应的Hfile数据,包括:
获取预设的数据过滤条件;
根据所述数据过滤条件,导出所述Hbase表的对应的Hfile数据。
3.一种基于Hbase的数据导出装置,其特征在于,包括:
快照文件生成单元,用于对Hbase表进行快照,生成Hbase表中各个Region的快照文件,其中,每个Region的快照文件中记录有每个Region的Hfile文件引用指针;
数据扫描单元,用于根据各个Region的快照文件中记录的Hfile文件引用指针,扫描读取各个Region的Hfile文件;
数据解析单元,用于解析各个Region的Hfile文件,得到所述Hbase表的对应的Hfile数据;
数据导出单元,用于导出所述Hbase表的对应的Hfile数据;
所述数据扫描单元包括:
参数配置模块,用于获取读取Hfile文件的配置参数,其中,所述配置参数中包含:并行读取Hfile文件时设定的单个并行度的数据大小阈值;
参数确定模块,用于根据单个并行度的数据大小阈值和单个Hfile文件的文件大小,确定读取单个Hfile文件的并行度;
数据读取模块,用于数据扫描单元,用于根据各个Region的快照文件中记录的Hfile文件引用指针,按照单个Hfile文件的并行度,扫描读取各个Region的Hfile文件;
所述数据导出单元包括:
数据格式转换模块,用于将所述Hbase表的对应的Hfile数据转换为Spark的DataFrame数据;
第二数据导出模块,用于将DataFrame数据插入到Hive表或HDFS文件。
4.如权利要求3所述的装置,其特征在于,所述数据导出单元包括:
数据过滤条件获取模块,用于获取预设的数据过滤条件;
第一数据导出模块,用于根据所述数据过滤条件,导出所述Hbase表的对应的Hfile数据。
5.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至2任一项所述基于Hbase的数据导出方法。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至2任一项所述基于Hbase的数据导出方法的计算机程序。
CN201911146034.0A 2019-11-21 2019-11-21 基于Hbase的数据导出方法及装置 Active CN110990472B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911146034.0A CN110990472B (zh) 2019-11-21 2019-11-21 基于Hbase的数据导出方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911146034.0A CN110990472B (zh) 2019-11-21 2019-11-21 基于Hbase的数据导出方法及装置

Publications (2)

Publication Number Publication Date
CN110990472A CN110990472A (zh) 2020-04-10
CN110990472B true CN110990472B (zh) 2024-03-12

Family

ID=70085442

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911146034.0A Active CN110990472B (zh) 2019-11-21 2019-11-21 基于Hbase的数据导出方法及装置

Country Status (1)

Country Link
CN (1) CN110990472B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11663177B2 (en) 2020-05-04 2023-05-30 International Business Machines Corporation Systems and methods for extracting data in column-based not only structured query language (NoSQL) databases
CN111400108A (zh) * 2020-06-09 2020-07-10 四川新网银行股份有限公司 搭建HBase灾备集群的方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110457279A (zh) * 2019-07-11 2019-11-15 新华三大数据技术有限公司 数据离线扫描方法、装置、服务器及可读存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9690671B2 (en) * 2013-11-01 2017-06-27 Cloudera, Inc. Manifest-based snapshots in distributed computing environments
CN105205082A (zh) * 2014-06-27 2015-12-30 国际商业机器公司 用于处理hdfs中的文件存储的方法和系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110457279A (zh) * 2019-07-11 2019-11-15 新华三大数据技术有限公司 数据离线扫描方法、装置、服务器及可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种大规模数据快速并行导入工具的研究与实现;邵开丽;姜伟;吕举文;;计算机应用与软件(09);全文 *

Also Published As

Publication number Publication date
CN110990472A (zh) 2020-04-10

Similar Documents

Publication Publication Date Title
CN110019218B (zh) 数据存储与查询方法及设备
CN107169083B (zh) 公安卡口海量车辆数据存储与检索方法及装置、电子设备
CN110674154B (zh) 一种基于Spark的对Hive中数据进行插入、更新和删除的方法
CN103559217A (zh) 一种面向异构数据库的海量组播数据入库实现方法
CN110990472B (zh) 基于Hbase的数据导出方法及装置
US20130191328A1 (en) Standardized framework for reporting archived legacy system data
CN111739613B (zh) 一种基于分布式计算技术的医疗影像云归档平台
CN105608126A (zh) 一种建立海量数据库二级索引的方法和装置
CN112783848B (zh) 一种数据同步方法、装置及电子设备
CN113177090A (zh) 数据处理方法及装置
CN112613271A (zh) 数据分页方法、装置、计算机设备及存储介质
CN110704442A (zh) 一种大数据的实时获取方法及装置
CN104881475A (zh) 一种用于大数据随机抽样的方法和系统
CN106776810B (zh) 一种大数据的数据处理系统及方法
CN117235028A (zh) 一种基于日志文件的数据查询方法和装置
CN116049193A (zh) 数据存储方法及装置
CN114722045A (zh) 时间序列数据的存储方法及装置
Colosi et al. Time series data management optimized for smart city policy decision
CN109063201B (zh) 一种基于混合存储方案的impala在线交互式查询方法
CN112650797A (zh) 同异构dbms数据交换方法及应用该方法的系统
CN111651531A (zh) 数据导入方法、装置、设备及计算机存储介质
Gupta et al. Correlation and comparison of nosql specimen with relational data store
CN112286892B (zh) 后关系型数据库的数据实时同步方法及装置、存储介质、终端
EP4283486A1 (en) Storing high volume, low frequency ingest time series data and retrieving same with sub-second latencies
US20240095246A1 (en) Data query method and apparatus based on doris, storage medium and device

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