CN111090645A - 基于云存储的数据传输方法、装置及计算机设备 - Google Patents
基于云存储的数据传输方法、装置及计算机设备 Download PDFInfo
- Publication number
- CN111090645A CN111090645A CN201910969811.5A CN201910969811A CN111090645A CN 111090645 A CN111090645 A CN 111090645A CN 201910969811 A CN201910969811 A CN 201910969811A CN 111090645 A CN111090645 A CN 111090645A
- Authority
- CN
- China
- Prior art keywords
- data
- partition
- database
- hbase database
- sorted
- 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.)
- Granted
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 81
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000005192 partition Methods 0.000 claims abstract description 219
- 230000001174 ascending effect Effects 0.000 claims abstract description 18
- 238000000638 solvent extraction Methods 0.000 claims abstract description 17
- 238000012163 sequencing technique Methods 0.000 claims abstract description 10
- 238000004590 computer program Methods 0.000 claims description 17
- 238000004458 analytical method Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 abstract description 10
- 238000010586 diagram Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/221—Column-oriented storage; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了基于云存储的数据传输方法、装置、计算机设备及存储介质。该方法包括接收由Hive数据库上传的全量数据,并进行存储;获取HBase数据库中的预分区个数;根据所述预分区个数及全量数据中各数据的行键,对所述全量数据进行分区,得到对应的分区数据;将每个分区数据依次根据列和行键进行升序排序,得到对应的排序后分区数据;将各排序后分区数据发送至所述Hbase数据库对应的分区服务器中以进行存储。该方法实现了全量数据写入Hbase数据库之前,将排序过程在云端完成,提高了数据写入Hbase数据库的效率。
Description
技术领域
本发明涉及云存储技术领域,尤其涉及一种基于云存储的数据传输方法、装置、计算机设备及存储介质。
背景技术
目前,将Hive数据库(Hive是一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表)中的数据写入HBase(HBase是一个分布式的、面向列的开源数据库)中时,一般采用离线批量写入或者流式写入的方式,但是上述两种方式在将数据写入HBase时均是采用put的方式(put是HBase中数据插入方式中的一种),通过put指令插入数据时是一边排序一边插入,造成对HBase集群的数据处理效率的影响,而且导致数据写入效率低下。
发明内容
本发明实施例提供了一种基于云存储的数据传输方法、装置、计算机设备及存储介质,旨在解决现有技术中将数据写入HBase时均是采用put的方式,通过put指令插入数据时是一边排序一边插入,造成对HBase集群的数据处理效率的影响,而且导致数据写入效率低下的问题。
第一方面,本发明实施例提供了一种基于云存储的数据传输方法,其包括:
接收由Hive数据库上传的全量数据,并进行存储;其中,所述Hive数据库为数据仓库式数据库;
获取HBase数据库中的预分区个数;其中,所述HBase数据库为分布式开源数据库,且所述HBase数据库中每一预分区均对应一个分区服务器;
根据所述预分区个数及全量数据中各数据的行键,对所述全量数据进行分区,得到对应的分区数据;其中,分区数据的总分区数与所述预分区个数相等,且每一分区数据唯一对应一个分区服务器;
将每个分区数据依次根据列和行键进行升序排序,得到对应的排序后分区数据;以及
将各排序后分区数据发送至所述Hbase数据库对应的分区服务器中以进行存储。
第二方面,本发明实施例提供了一种基于云存储的数据传输装置,其包括:
接收单元,用于接收由Hive数据库上传的全量数据,并进行存储;其中,所述Hive数据库为数据仓库式数据库;
分区个数获取单元,用于获取HBase数据库中的预分区个数;其中,所述HBase数据库为分布式开源数据库,且所述HBase数据库中每一预分区均对应一个分区服务器;
分区单元,用于根据所述预分区个数及全量数据中各数据的行键,对所述全量数据进行分区,得到对应的分区数据;其中,分区数据的总分区数与所述预分区个数相等,且每一分区数据唯一对应一个分区服务器;
排序单元,用于将每个分区数据依次根据列和行键进行升序排序,得到对应的排序后分区数据;以及
传输单元,用于将各排序后分区数据发送至所述Hbase数据库对应的分区服务器中以进行存储。
第三方面,本发明实施例又提供了一种计算机设备,其包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的基于云存储的数据传输方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其中所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行上述第一方面所述的基于云存储的数据传输方法。
本发明实施例提供了一种基于云存储的数据传输方法、装置、计算机设备及存储介质,实现了全量数据写入Hbase数据库之前,将排序过程在云端完成,提高了数据写入Hbase数据库的效率。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于云存储的数据传输方法的应用场景示意图;
图2为本发明实施例提供的基于云存储的数据传输方法的流程示意图;
图3为本发明实施例提供的基于云存储的数据传输方法的子流程示意图;
图4为本发明实施例提供的基于云存储的数据传输方法的另一子流程示意图;
图5为本发明实施例提供的基于云存储的数据传输方法的另一子流程示意图;
图6为本发明实施例提供的基于云存储的数据传输方法的另一子流程示意图;
图7为本发明实施例提供的基于云存储的数据传输装置的示意性框图;
图8为本发明实施例提供的基于云存储的数据传输装置的子单元示意性框图;
图9为本发明实施例提供的基于云存储的数据传输装置的另一子单元示意性框图;
图10为本发明实施例提供的基于云存储的数据传输装置的另一子单元示意性框图;
图11为本发明实施例提供的基于云存储的数据传输装置的另一子单元示意性框图;
图12为本发明实施例提供的计算机设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1和图2,图1为本发明实施例提供的基于云存储的数据传输方法的应用场景示意图;图2为本发明实施例提供的基于云存储的数据传输方法的流程示意图,该基于云存储的数据传输方法应用于服务器中,该方法通过安装于服务器中的应用软件进行执行。
如图2所示,该方法包括步骤S110~S150。
S110、接收由Hive数据库上传的全量数据,并进行存储;其中,所述Hive数据库为数据仓库式数据库。
在本实施例中,是在云计算平台的角度描述技术方案。本申请中云计算平台具体采用的是Spark,Spark是专为大规模数据处理而设计的快速通用的计算引擎,Spark启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。
当云计算平台接收了由Hive数据库上传的全量数据后,是生成逻辑上的dataframe(dataframe是dataset的行的集合,dataset是Spark 1.6+中添加的一个新接口)进行物理存储(物理存储是内存和磁盘结合存储的)。
S120、获取HBase数据库中的预分区个数;其中,所述HBase数据库为分布式开源数据库,且所述HBase数据库中每一预分区均对应一个分区服务器。
在本实施例中,当在云计算平台完成了全量数据的存储后,为了获知后续将全量数据划分为多少个分区进行存储,此时需先从所述HBase数据库中获取预分区个数。
其中,所述HBase数据库为分布式开源数据库,且所述HBase数据库中每一预分区均对应一个分区服务器,它是基于Hadoop的高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价电脑服务器上搭建起大规模结构化存储集群。
在一实施例中,如图3所示,步骤S120包括:
S121、发送RPC请求至所述HBase数据库;其中,所述RPC请求为远程过程调用协议请求;
S122、接收所述HBase数据库根据所述RPC请求发送的元信息,根据元信息获取预分区个数。
在本实施例中,当在云计算平台完成了全量数据的存储后,云计算平台会发起RPC请求(RPC请求即远程过程调用协议请求,它是一种通过网络从远程计算机程序上请求服务),访问所述Hbase数据库的zk元信息(即ZooKeeper元信息,ZooKeeper是一个分布式的、开放源码的分布式应用程序协调服务),在zk元信息里已经存储了HBase预先建好的表的分区信息,也就获知了HBase数据库中的预分区个数。通过获知所述HBase数据库中的预分区个数,能准确的将全量数据划分为相同分区个数。
S130、根据所述预分区个数及全量数据中各数据的行键,对所述全量数据进行分区,得到对应的分区数据;其中,分区数据的总分区数与所述预分区个数相等,且每一分区数据唯一对应一个分区服务器。
在本实施例中,将云计算平台中的dataframe中所存储的全量数据,根据HexStringSplit的预分区方式将所述全量数据中每一条数据打散到对应的分区中。其中,HexStringSplit是一种适用于行键是十六进制的字符串作为前缀的预划分。
在一实施例中,如图4所示,步骤S130包括:
S131、获取所述全量数据中各数据对应的行键;
S132、将各数据的行键通过MD5加密算法或SHA-256加密算法生成对应的哈希值;
S133、将各行键对应的哈希值对所述预分区个数求模,得到与各行键对应的余数;
S134、将各行键对应的数据存储至该行键对应的余数所对应的分区中,以得到对应的分区数据。
在本实施例中,在Spark中各数据均对应有一个行键(即rowkey),此时先获取各数据的行键,便于对应进行处理后将数据划分至对应的区域。
之后对各数据的行键通过MD5加密算法或SHA加密算法进行计算时,能对应生成的哈希值。其中,MD5算法是一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。SHA-256算法是一种安全散列算法,能计算出一个数字消息所对应到的长度固定的字符串(又称消息摘要)的算法。通过上述MD5或SHA-256的方式将行键生成哈希值以打散到对应的分区中,使得具有相同行键余数的数据被划分在同一分区中。通过这一方式,实现了对全量数据的快速且有效的划分。
由于所述HBase数据库中每一预分区均对应一个分区服务器,而且每一分区数据唯一对应一个分区服务器,故分区数据与分区服务器的对应关系可以是预先就设置了对应关系,例如分区1对应分区服务器1,……,分区N应分区服务器N。在获知了各分区数据与分区服务器的对应关系后,后续进行数据存储时,则可实现定向存储,提高存储效率。
S140、将每个分区数据依次根据列和行键进行升序排序,得到对应的排序后分区数据。
在本实施例中,当在云计算平台中将全量数据根据预分区个数对应进行分区后,之后还需要对每一分区数据再进行排序,当完成排序后再发送至所述Hbase数据库即可快速存储。此时对各分区数据进行排序时,可以选取列值和行键值的大小来进行排序。
在一实施例中,如图5所示,步骤S140包括:
S141、在每个分区数据中各自获取具有相同行键的数据,将具有相同行键的数据中根据列的升序进行排序,得到与每一分区数据对应的第一排序后分区数据;
S142、将每一第一排序后分区数据根据行键的升序进行排序,得到与每一第一排序后分区数据对应的排序后分区数据。
在本实施例中,在每一分区数据中先是将具有相同行键值的数据归为一类,具有相同行键值的数据内部则是按照列值进行升序排序,从而得到第一排序后分区数据。完成初次排序后所得到的第一排序后分区数据中,可以再据根据行键的升序进行排序,得到与每一第一排序后分区数据对应的排序后分区数据。可见,通过列和行键对个分区数据进行排序后,能将数据更有规律性的存储。
S150、将各排序后分区数据发送至所述Hbase数据库对应的分区服务器中以进行存储。
在本实施例中,完成对各分区数据的排序而得到对应的各排序分区数据后,直接发送至所述Hbase数据库进行存储即可,无需再采用如put指令插入数据时是一边排序一边插入,造成对HBase集群的数据处理效率的影响,直接将完成分区和排序的数据存储于所述Hbase数据库,只需直接存储即可,提高了存储效率。
在一实施例中,如图6所示,步骤S150包括:
S151、将各排序后分区数据输入至本地的HDFS层,以将各序后分区数据转化为对应的数据文件;其中,所述HDFS层为分布式文件系统层;
S152、将所述数据文件发送至所述Hbase数据库对应的分区服务器中以进行存储。
在本实施例中,云计算平台(即Spark)的最底层是用于存储数据的HDFS层,将各排序后分区数据输入至HDFS层,即可由HDFS层将各排序后分区数据转化为数据文件。数据文件具体为HFile文件,HFile文件包括7个块(即block),按照block类型可分为:
a)datablock(datablock即数据块),存放的key-value数据(即键值对数据),一般一个datablock大小默认为64KB;
b)data index block,其中存放的是datablock的index(index即索引),索引可以是多级索引,中间索引,叶子索引一般会分布在HFile文件当中;
c)bloom filter block,保存了bloom过滤器(即布隆过滤器)的值;
d)meta data block,meta data block(即元数据块)有多个,且连续分布;
e)meta data index,表示meta data(即元数据)的索引;
f)file-info block(即文件信息块),其中记录了关于文件的一些信息,比如:HFile中最大的key、平均Key长度、HFile创建时间戳、data block使用的编码方式等;
g)trailer block(即报尾),每个HFile文件都会有的trailer block,对于不同版本的HFile(有V1,V2,V3三个版本,V2和V3相差不大)来说trailer长度可能不一样,但是同一个版本的所有HFile trailer的长度都是一样长的,并且trailer的最后4B一定是版本信息。
可见,各排序后分区数据是存储在本地的HDFS层中,而且是转化为HFile文件的方式进行存储。
当在HSFS层将各排序后分区数据转化为HFile文件,即可将各排序后分区数据对应的HFile文件发送至Hbase数据库对应的分区服务器中。之后再由Hbase数据库的分区服务器采用Bulkload方案(即主体加载方案)将HFile写入HBase数据库。其中,Bulkload的优点在于导入过程不占用分区资源;能快速导入海量的数据;节省内存。
在一实施例中,步骤S150之后还包括:
若检测到已接收所述Hbase数据库发送的数据传输报错信息,根据数据传输报错信息对应的日志文件在各排序后分区数据定位获取数据传输中断点;
将位于各排序后分区数据的数据传输中断点之后的数据,发送至所述Hbase数据库对应的分区服务器中以进行存储。
在本实施例中,在将各排序后分区数据发送至所述Hbase数据库进行存储的过程中,若存在传输中断的情况,此时可以接收由所述Hbase数据库发送的数据传输报错信息,根据数据传输报错信息对应的日志文件在各排序后分区数据定位获取数据传输中断点。在获取了数据传输中断点后,即可从该数据传输中断点之后的数据开始继续传输数据,确保了异常发生后也能恢复正常传输。
该方法实现了全量数据写入Hbase数据库之前,将排序过程在云端完成,提高了数据写入Hbase数据库的效率。
本发明实施例还提供一种基于云存储的数据传输装置,该基于云存储的数据传输装置用于执行前述基于云存储的数据传输方法的任一实施例。具体地,请参阅图7,图7是本发明实施例提供的基于云存储的数据传输装置的示意性框图。该基于云存储的数据传输装置100可以配置于服务器中。
如图7所示,基于云存储的数据传输装置100包括接收单元110、分区个数获取单元120、分区单元130、排序单元140、传输单元150。
接收单元110,用于接收由Hive数据库上传的全量数据,并进行存储;其中,所述Hive数据库为数据仓库式数据库。
在本实施例中,是在云计算平台的角度描述技术方案。本申请中云计算平台具体采用的是Spark,Spark是专为大规模数据处理而设计的快速通用的计算引擎,Spark启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。
当云计算平台接收了由Hive数据库上传的全量数据后,是生成逻辑上的dataframe(dataframe是dataset的行的集合,dataset是Spark 1.6+中添加的一个新接口)进行物理存储(物理存储是内存和磁盘结合存储的)。
分区个数获取单元120,用于获取HBase数据库中的预分区个数;其中,所述HBase数据库为分布式开源数据库,且所述HBase数据库中每一预分区均对应一个分区服务器。
在本实施例中,当在云计算平台完成了全量数据的存储后,为了获知后续将全量数据划分为多少个分区进行存储,此时需先从所述HBase数据库中获取预分区个数。
其中,所述HBase数据库为分布式开源数据库,且所述HBase数据库中每一预分区均对应一个分区服务器,它是基于Hadoop的高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价电脑服务器上搭建起大规模结构化存储集群。
在一实施例中,如图8所示,分区个数获取单元120包括:
请求发送单元121,用于发送RPC请求至所述HBase数据库;其中,所述RPC请求为远程过程调用协议请求;
元信息解析单元122,用于接收所述HBase数据库根据所述RPC请求发送的元信息,根据元信息获取预分区个数。
在本实施例中,当在云计算平台完成了全量数据的存储后,云计算平台会发起RPC请求(RPC请求即远程过程调用协议请求,它是一种通过网络从远程计算机程序上请求服务),访问所述Hbase数据库的zk元信息(即ZooKeeper元信息,ZooKeeper是一个分布式的、开放源码的分布式应用程序协调服务),在zk元信息里已经存储了HBase预先建好的表的分区信息,也就获知了HBase数据库中的预分区个数。通过获知所述HBase数据库中的预分区个数,能准确的将全量数据划分为相同分区个数。
分区单元130,用于根据所述预分区个数及全量数据中各数据的行键,对所述全量数据进行分区,得到对应的分区数据;其中,分区数据的总分区数与所述预分区个数相等,且每一分区数据唯一对应一个分区服务器。
在本实施例中,将云计算平台中的dataframe中所存储的全量数据,根据HexStringSplit的预分区方式将所述全量数据中每一条数据打散到对应的分区中。其中,HexStringSplit是一种适用于行键是十六进制的字符串作为前缀的预划分。
在一实施例中,如图9所示,分区单元130包括:
行键获取单元131,用于获取所述全量数据中各数据对应的行键;
哈希单元132,用于将各数据的行键通过MD5加密算法或SHA-256加密算法生成对应的哈希值;
求模运算单元133,用于将各行键对应的哈希值对所述预分区个数求模,得到与各行键对应的余数;
数据分区单元134,用于将各行键对应的数据存储至该行键对应的余数所对应的分区中,以得到对应的分区数据。
在本实施例中,在Spark中各数据均对应有一个行键(即rowkey),此时先获取各数据的行键,便于对应进行处理后将数据划分至对应的区域。
之后对各数据的行键通过MD5加密算法或SHA加密算法进行计算时,能对应生成的哈希值。其中,MD5算法是一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。SHA-256算法是一种安全散列算法,能计算出一个数字消息所对应到的长度固定的字符串(又称消息摘要)的算法。通过上述MD5或SHA-256的方式将行键生成哈希值以打散到对应的分区中,使得具有相同行键余数的数据被划分在同一分区中。通过这一方式,实现了对全量数据的快速且有效的划分。
由于所述HBase数据库中每一预分区均对应一个分区服务器,而且每一分区数据唯一对应一个分区服务器,故分区数据与分区服务器的对应关系可以是预先就设置了对应关系,例如分区1对应分区服务器1,……,分区N应分区服务器N。在获知了各分区数据与分区服务器的对应关系后,后续进行数据存储时,则可实现定向存储,提高存储效率。
排序单元140,用于将每个分区数据依次根据列和行键进行升序排序,得到对应的排序后分区数据。
在本实施例中,当在云计算平台中将全量数据根据预分区个数对应进行分区后,之后还需要对每一分区数据再进行排序,当完成排序后再发送至所述Hbase数据库即可快速存储。此时对各分区数据进行排序时,可以选取列值和行键值的大小来进行排序。
在一实施例中,如图10所示,排序单元140包括:
第一排序单元141,用于在每个分区数据中各自获取具有相同行键的数据,将具有相同行键的数据中根据列的升序进行排序,得到与每一分区数据对应的第一排序后分区数据;
第二排序单元142,用于将每一第一排序后分区数据根据行键的升序进行排序,得到与每一第一排序后分区数据对应的排序后分区数据。
在本实施例中,在每一分区数据中先是将具有相同行键值的数据归为一类,具有相同行键值的数据内部则是按照列值进行升序排序,从而得到第一排序后分区数据。完成初次排序后所得到的第一排序后分区数据中,可以再据根据行键的升序进行排序,得到与每一第一排序后分区数据对应的排序后分区数据。可见,通过列和行键对个分区数据进行排序后,能将数据更有规律性的存储。
传输单元150,用于将各排序后分区数据发送至所述Hbase数据库对应的分区服务器中以进行存储。
在本实施例中,完成对各分区数据的排序而得到对应的各排序分区数据后,直接发送至所述Hbase数据库进行存储即可,无需再采用如put指令插入数据时是一边排序一边插入,造成对HBase集群的数据处理效率的影响,直接将完成分区和排序的数据存储于所述Hbase数据库,只需直接存储即可,提高了存储效率。
在一实施例中,如图11所示,传输单元150包括:
底层存储单元151,用于将各排序后分区数据输入至本地的HDFS层,以将各序后分区数据转化为对应的数据文件;其中,所述HDFS层为分布式文件系统层;
数据发送单元152,用于将所述数据文件发送至所述Hbase数据库对应的分区服务器中以进行存储。
在本实施例中,云计算平台(即Spark)的最底层是用于存储数据的HDFS层,将各排序后分区数据输入至HDFS层,即可由HDFS层将各排序后分区数据转化为数据文件。可见,各排序后分区数据是存储在本地的HDFS层中,而且是转化为HFile文件的方式进行存储。
当在HSFS层将各排序后分区数据转化为HFile文件,即可将各排序后分区数据对应的HFile文件发送至Hbase数据库对应的分区服务器中。之后再由Hbase数据库的分区服务器采用Bulkload方案(即主体加载方案)将HFile写入HBase数据库。其中,Bulkload的优点在于导入过程不占用分区资源;能快速导入海量的数据;节省内存。
在一实施例中,基于云存储的数据传输装置100还包括:
中断点获取单元,用于若检测到已接收所述Hbase数据库发送的数据传输报错信息,根据数据传输报错信息对应的日志文件在各排序后分区数据定位获取数据传输中断点;
数据传输恢复单元,用于将位于各排序后分区数据的数据传输中断点之后的数据,发送至所述Hbase数据库对应的分区服务器中以进行存储。
在本实施例中,在将各排序后分区数据发送至所述Hbase数据库进行存储的过程中,若存在传输中断的情况,此时可以接收由所述Hbase数据库发送的数据传输报错信息,根据数据传输报错信息对应的日志文件在各排序后分区数据定位获取数据传输中断点。在获取了数据传输中断点后,即可从该数据传输中断点之后的数据开始继续传输数据,确保了异常发生后也能恢复正常传输。
该装置实现了全量数据写入Hbase数据库之前,将排序过程在云端完成,提高了数据写入Hbase数据库的效率。
上述基于云存储的数据传输装置可以实现为计算机程序的形式,该计算机程序可以在如图12所示的计算机设备上运行。
请参阅图12,图12是本发明实施例提供的计算机设备的示意性框图。该计算机设备500是服务器,服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。
参阅图12,该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。
该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032被执行时,可使得处理器502执行基于云存储的数据传输方法。
该处理器502用于提供计算和控制能力,支撑整个计算机设备500的运行。
该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行基于云存储的数据传输方法。
该网络接口505用于进行网络通信,如提供数据信息的传输等。本领域技术人员可以理解,图12中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现本发明实施例公开的基于云存储的数据传输方法。
本领域技术人员可以理解,图12中示出的计算机设备的实施例并不构成对计算机设备具体构成的限定,在其他实施例中,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。例如,在一些实施例中,计算机设备可以仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图12所示实施例一致,在此不再赘述。
应当理解,在本发明实施例中,处理器502可以是中央处理单元(CentralProcessing Unit,CPU),该处理器502还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
在本发明的另一实施例中提供计算机可读存储介质。该计算机可读存储介质可以为非易失性的计算机可读存储介质。该计算机可读存储介质存储有计算机程序,其中计算机程序被处理器执行时实现本发明实施例公开的基于云存储的数据传输方法。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为逻辑功能划分,实际实现时可以有另外的划分方式,也可以将具有相同功能的单元集合成一个单元,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种基于云存储的数据传输方法,其特征在于,包括:
接收由Hive数据库上传的全量数据,并进行存储;其中,所述Hive数据库为数据仓库式数据库;
获取HBase数据库中的预分区个数;其中,所述HBase数据库为分布式开源数据库,且所述HBase数据库中每一预分区均对应一个分区服务器;
根据所述预分区个数及全量数据中各数据的行键,对所述全量数据进行分区,得到对应的分区数据;其中,分区数据的总分区数与所述预分区个数相等,且每一分区数据唯一对应一个分区服务器;
将每个分区数据依次根据列和行键进行升序排序,得到对应的排序后分区数据;以及
将各排序后分区数据发送至所述Hbase数据库对应的分区服务器中以进行存储。
2.根据权利要求1所述的基于云存储的数据传输方法,其特征在于,所述获取HBase数据库中的预分区个数,包括:
发送RPC请求至所述HBase数据库;其中,所述RPC请求为远程过程调用协议请求;
接收所述HBase数据库根据所述RPC请求发送的元信息,根据元信息获取预分区个数。
3.根据权利要求1所述的基于云存储的数据传输方法,其特征在于,所述根据所述预分区个数及全量数据中各数据的行键,对所述全量数据进行分区,得到对应的分区数据,包括:
获取所述全量数据中各数据对应的行键;
将各数据的行键通过MD5加密算法或SHA-256加密算法生成对应的哈希值;
将各行键对应的哈希值对所述预分区个数求模,得到与各行键对应的余数;
将各行键对应的数据存储至该行键对应的余数所对应的分区中,以得到对应的分区数据。
4.根据权利要求1所述的基于云存储的数据传输方法,其特征在于,所述将每个分区数据依次根据列和行键进行升序排序,得到对应的排序后分区数据,包括:
在每个分区数据中各自获取具有相同行键的数据,将具有相同行键的数据中根据列的升序进行排序,得到与每一分区数据对应的第一排序后分区数据;
将每一第一排序后分区数据根据行键的升序进行排序,得到与每一第一排序后分区数据对应的排序后分区数据。
5.根据权利要求1所述的基于云存储的数据传输方法,其特征在于,所述将各排序后分区数据发送至所述Hbase数据库对应的分区服务器中以进行存储,包括:
将各排序后分区数据输入至本地的HDFS层,以将各序后分区数据转化为对应的数据文件;其中,所述HDFS层为分布式文件系统层;
将所述数据文件发送至所述Hbase数据库对应的分区服务器中以进行存储。
6.根据权利要求1所述的基于云存储的数据传输方法,其特征在于,所述将各排序后分区数据发送至所述Hbase数据库对应的分区服务器中以进行存储之后,还包括:
若检测到已接收所述Hbase数据库发送的数据传输报错信息,根据数据传输报错信息对应的日志文件在各排序后分区数据定位获取数据传输中断点;
将位于各排序后分区数据的数据传输中断点之后的数据,发送至所述Hbase数据库对应的分区服务器中以进行存储。
7.一种基于云存储的数据传输装置,其特征在于,包括:
接收单元,用于接收由Hive数据库上传的全量数据,并进行存储;其中,所述Hive数据库为数据仓库式数据库;
分区个数获取单元,用于获取HBase数据库中的预分区个数;其中,所述HBase数据库为分布式开源数据库,且所述HBase数据库中每一预分区均对应一个分区服务器;
分区单元,用于根据所述预分区个数及全量数据中各数据的行键,对所述全量数据进行分区,得到对应的分区数据;其中,分区数据的总分区数与所述预分区个数相等,且每一分区数据唯一对应一个分区服务器;
排序单元,用于将每个分区数据依次根据列和行键进行升序排序,得到对应的排序后分区数据;以及
传输单元,用于将各排序后分区数据发送至所述Hbase数据库对应的分区服务器中以进行存储。
8.根据权利要求7所述的基于云存储的数据传输装置,其特征在于,所述分区个数获取单元,包括:
请求发送单元,用于发送RPC请求至所述HBase数据库;其中,所述RPC请求为远程过程调用协议请求;
元信息解析单元,用于接收所述HBase数据库根据所述RPC请求发送的元信息,根据元信息获取预分区个数。
9.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6中任一项所述的基于云存储的数据传输方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行如权利要求1至6任一项所述的基于云存储的数据传输方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910969811.5A CN111090645B (zh) | 2019-10-12 | 2019-10-12 | 基于云存储的数据传输方法、装置及计算机设备 |
PCT/CN2019/118401 WO2021068351A1 (zh) | 2019-10-12 | 2019-11-14 | 基于云存储的数据传输方法、装置及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910969811.5A CN111090645B (zh) | 2019-10-12 | 2019-10-12 | 基于云存储的数据传输方法、装置及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111090645A true CN111090645A (zh) | 2020-05-01 |
CN111090645B CN111090645B (zh) | 2024-03-01 |
Family
ID=70392992
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910969811.5A Active CN111090645B (zh) | 2019-10-12 | 2019-10-12 | 基于云存储的数据传输方法、装置及计算机设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111090645B (zh) |
WO (1) | WO2021068351A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112395345A (zh) * | 2020-12-04 | 2021-02-23 | 江苏苏宁云计算有限公司 | HBase的全量数据导入方法、装置、计算机设备及存储介质 |
CN112905854A (zh) * | 2021-03-05 | 2021-06-04 | 北京中经惠众科技有限公司 | 数据处理方法、装置、计算设备及存储介质 |
CN113096284A (zh) * | 2021-03-19 | 2021-07-09 | 福建新大陆通信科技股份有限公司 | 一种ctid门禁授权信息的核验方法 |
CN113177090A (zh) * | 2021-04-30 | 2021-07-27 | 中国邮政储蓄银行股份有限公司 | 数据处理方法及装置 |
CN113312414A (zh) * | 2020-07-30 | 2021-08-27 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置、设备和存储介质 |
CN116049197A (zh) * | 2023-03-07 | 2023-05-02 | 中船重工奥蓝托无锡软件技术有限公司 | 一种基于HBase的数据均衡存储方法 |
CN116719822A (zh) * | 2023-08-10 | 2023-09-08 | 深圳市连用科技有限公司 | 一种海量结构化数据的存储方法及系统 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113535856B (zh) * | 2021-07-29 | 2022-11-04 | 上海哔哩哔哩科技有限公司 | 数据同步方法及系统 |
CN113568966A (zh) * | 2021-07-29 | 2021-10-29 | 上海哔哩哔哩科技有限公司 | 用于ods层和dw层之间的数据处理方法与系统 |
CN114925123B (zh) * | 2022-04-24 | 2024-06-07 | 杭州悦数科技有限公司 | 一种分布式的图数据库与图计算系统间的数据传输方法 |
CN115801787B (zh) * | 2023-01-29 | 2023-07-07 | 智道网联科技(北京)有限公司 | 路端数据传输方法、装置及电子设备、存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017015990A1 (en) * | 2015-07-30 | 2017-02-02 | Huawei Technologies Co., Ltd. | Data placement control for distributed computing environment |
US20170054797A1 (en) * | 2015-08-18 | 2017-02-23 | Salesforce.Com, Inc. | Partition balancing in an on-demand services environment |
US20170286436A1 (en) * | 2016-03-31 | 2017-10-05 | Acronis International Gmbh | System and method for fast parallel data processing in distributed storage systems |
WO2018058998A1 (zh) * | 2016-09-27 | 2018-04-05 | 华为技术有限公司 | 一种数据加载方法、终端和计算集群 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10353923B2 (en) * | 2014-04-24 | 2019-07-16 | Ebay Inc. | Hadoop OLAP engine |
CN106970929B (zh) * | 2016-09-08 | 2020-09-01 | 阿里巴巴集团控股有限公司 | 数据导入方法及装置 |
CN108376169A (zh) * | 2018-02-26 | 2018-08-07 | 众安信息技术服务有限公司 | 一种用于联机分析处理的数据处理方法和装置 |
US10769179B2 (en) * | 2018-03-30 | 2020-09-08 | American Express Travel Related Services Company, Inc. | Node linkage in entity graphs |
-
2019
- 2019-10-12 CN CN201910969811.5A patent/CN111090645B/zh active Active
- 2019-11-14 WO PCT/CN2019/118401 patent/WO2021068351A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017015990A1 (en) * | 2015-07-30 | 2017-02-02 | Huawei Technologies Co., Ltd. | Data placement control for distributed computing environment |
US20170054797A1 (en) * | 2015-08-18 | 2017-02-23 | Salesforce.Com, Inc. | Partition balancing in an on-demand services environment |
US20170286436A1 (en) * | 2016-03-31 | 2017-10-05 | Acronis International Gmbh | System and method for fast parallel data processing in distributed storage systems |
WO2018058998A1 (zh) * | 2016-09-27 | 2018-04-05 | 华为技术有限公司 | 一种数据加载方法、终端和计算集群 |
Non-Patent Citations (5)
Title |
---|
刘博伟等: "《基于HBase的金融时序数据存储系统》", 《中国科技论文》, vol. 11, no. 20, pages 3188 * |
吴仁彪;刘超;屈景怡;: "基于HBase和Hive的航班延误平台的存储方法", 计算机应用, no. 05, 9 January 2018 (2018-01-09) * |
唐长城等: "《一种基于HBase的数据持久性和可用性研究》", 《计算机系统应用》, vol. 22, no. 10, pages 176 * |
陈亮等: "《面向家庭物联网的云计算架构》", 《计算机应用研究》, vol. 30, no. 12, pages 3687 - 3688 * |
高金标等: "《基于分布式存储系统的Hive与Hbase 的研究》", 《工业控制计算机》, vol. 28, no. 12, pages 47 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113312414A (zh) * | 2020-07-30 | 2021-08-27 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置、设备和存储介质 |
CN113312414B (zh) * | 2020-07-30 | 2023-12-26 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置、设备和存储介质 |
CN112395345A (zh) * | 2020-12-04 | 2021-02-23 | 江苏苏宁云计算有限公司 | HBase的全量数据导入方法、装置、计算机设备及存储介质 |
CN112905854A (zh) * | 2021-03-05 | 2021-06-04 | 北京中经惠众科技有限公司 | 数据处理方法、装置、计算设备及存储介质 |
CN113096284A (zh) * | 2021-03-19 | 2021-07-09 | 福建新大陆通信科技股份有限公司 | 一种ctid门禁授权信息的核验方法 |
CN113096284B (zh) * | 2021-03-19 | 2022-08-30 | 福建新大陆通信科技股份有限公司 | 一种ctid门禁授权信息的核验方法 |
CN113177090A (zh) * | 2021-04-30 | 2021-07-27 | 中国邮政储蓄银行股份有限公司 | 数据处理方法及装置 |
CN116049197A (zh) * | 2023-03-07 | 2023-05-02 | 中船重工奥蓝托无锡软件技术有限公司 | 一种基于HBase的数据均衡存储方法 |
CN116719822A (zh) * | 2023-08-10 | 2023-09-08 | 深圳市连用科技有限公司 | 一种海量结构化数据的存储方法及系统 |
CN116719822B (zh) * | 2023-08-10 | 2023-12-22 | 深圳市连用科技有限公司 | 一种海量结构化数据的存储方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111090645B (zh) | 2024-03-01 |
WO2021068351A1 (zh) | 2021-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111090645B (zh) | 基于云存储的数据传输方法、装置及计算机设备 | |
CN109831487B (zh) | 分片文件验证方法及终端设备 | |
JP6522008B2 (ja) | 散在ストレージ・ネットワークにおける多世代記憶されたデータの読取り | |
US20160154698A1 (en) | Coordinating storage of data in dispersed storage networks | |
US11627207B2 (en) | Systems and methods for data deduplication by generating similarity metrics using sketch computation | |
US20140304513A1 (en) | Storage drive processing multiple commands from multiple servers | |
US20120011101A1 (en) | Integrating client and server deduplication systems | |
US20150142756A1 (en) | Deduplication in distributed file systems | |
CN108121810A (zh) | 一种数据去重方法、系统、中心服务器及分布式服务器 | |
US11424760B2 (en) | System and method for data compaction and security with extended functionality | |
US11762557B2 (en) | System and method for data compaction and encryption of anonymized datasets | |
US11831343B2 (en) | System and method for data compression with encryption | |
US11675743B2 (en) | Web-scale distributed deduplication | |
CN110419029B (zh) | 在分布式存储网络中部分更新数据内容的方法 | |
US20190026043A1 (en) | Storage system of distributed deduplication for internet of things backup in data center and method for achieving the same | |
US12040820B2 (en) | System and method for data compression with homomorphic encryption | |
US20240072825A1 (en) | System and method for encrypted data compression | |
US20240113728A1 (en) | System and method for data compaction and security with extended functionality | |
US20230412192A1 (en) | System and method for data compression with intrusion detection | |
JP6113816B1 (ja) | 情報処理システム、情報処理装置、及びプログラム | |
US11700013B2 (en) | System and method for data compaction and security with extended functionality | |
Tian et al. | Sed‐Dedup: An efficient secure deduplication system with data modifications | |
US12057861B2 (en) | System and method for extracting data from a compressed and encrypted data stream | |
US20240329837A1 (en) | System and method for data compaction and encryption of anonymized data records | |
US11811428B2 (en) | System and method for data compression using genomic encryption techniques |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40020782 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |