CN110019558A - 基于Sqoop的数据传输方法、装置、计算机可读存储介质及设备 - Google Patents
基于Sqoop的数据传输方法、装置、计算机可读存储介质及设备 Download PDFInfo
- Publication number
- CN110019558A CN110019558A CN201711450704.9A CN201711450704A CN110019558A CN 110019558 A CN110019558 A CN 110019558A CN 201711450704 A CN201711450704 A CN 201711450704A CN 110019558 A CN110019558 A CN 110019558A
- Authority
- CN
- China
- Prior art keywords
- sqoop
- data
- rownum
- cutting
- data transmission
- 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
Links
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/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24532—Query optimisation of parallel queries
-
- 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
- G06F16/24556—Aggregation; Duplicate elimination
-
- 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/284—Relational databases
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种基于Sqoop的数据传输方法、装置、计算机可读存储介质及设备,其中,基于Sqoop的数据传输方法包括:在利用Sqoop将Oracle数据库的数据导入Hive数据库的过程中,设置Sqoop中的并行度参数‑m大于1;判断Oracle数据库的源表中是否存在用于均匀对列进行切分的主键;若不存在所述主键,利用Oracle数据库中的rownum,通过子查询语句生成rownum列,并对rownum进行数据的切分;Sqoop将单个查询导入语句,按照切分结果生成对应的多个查询语句,均匀地分布到各个机器节点上运行,最后进行合并操作。通过本申请实施例,大大提高了数据的导入速度。
Description
技术领域
本申请实施例涉及数据传输领域,尤其涉及基于Sqoop的数据传输方法、装置、计算机可读存储介质及设备。
背景技术
随着数字化进程的不断推进,税务机关在做好纳税服务,提高办税效率的同时,需要充分利用信息化手段,加强对增值税发票的后续监控管理,跟踪分析纳税人发票使用及纳税申报情况。
目前面对的困难是,每天都有大量的增值税发票开票信息,尤其是随着营改增的推进,增值税发票的数量更是陡然增加。传统的关系型数据库,已经难以满足对海量数据的分析功能。这时就需要借助大数据技术来对这些数据进行分析处理。但目前所有税务数据都是存储在关系型数据库Oracle中,所以首先需要做的就是将数据导入到大数据平台。这时就需要用到Sqoop技术,来进行数据的传输。但默认情况下,使用Sqoop导入的速度非常慢,严重影响整体系统的运行效率。
发明内容
有鉴于此,本发明实施例所解决的技术问题之一在于提供一种基于Sqoop的数据传输方法、装置、计算机可读存储介质及设备,用以克服现有技术中基于Sqoop的数据传输方法速度慢的缺陷,提高传输效率。
根据本申请实施例的一个方面,提供了一种基于Sqoop的数据传输方法,包括:在利用Sqoop将Oracle数据库的数据导入Hive数据库的过程中,设置Sqoop中的并行度参数-m大于1;判断Oracle数据库的源表中是否存在用于均匀对列进行切分的主键;若不存在所述主键,利用Oracle数据库中的rownum,通过子查询语句生成rownum列,并对rownum进行数据的切分;Sqoop将单个查询导入语句,按照切分结果生成对应的多个查询语句,均匀地分布到各个机器节点上运行,最后进行合并操作。
根据本申请实施例的另一个方面,提供了一种基于Sqoop的数据传输装置,包括:设置单元,用于在利用Sqoop将Oracle数据库的数据导入Hive数据库的过程中,设置Sqoop中的并行度参数-m大于1;切分单元,用于判断Oracle数据库的源表中是否存在用于均匀对列进行切分的主键;若不存在所述主键,利用Oracle数据库中的rownum,通过子查询语句生成rownum列,并对rownum进行数据的切分;并行单元,用于通过Sqoop将单个查询导入语句,按照rownum生成对应的多个查询语句,均匀地分布到各个机器节点上运行,最后进行合并操作。
根据本申请实施例的再一个方面,提供了一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述程序被处理器执行时实现如上所述基于Sqoop的数据传输方法的步骤。
根据本申请实施例的又一个方面,提供了一种计算机设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述基于Sqoop的数据传输方法的步骤。
本申请实施例的基于Sqoop的数据传输方法、装置、计算机可读存储介质及设备通过-m增加导入的并行度,从而提高数据的导入速度,对于无法对列进行恰当拆分,从而导致数据倾斜的情况,可以利用rownum来达到数据均匀拆分的效果,使数据导入的运行过程均匀地分布在各机器节点上,增大处理的并行度,从而大大提高数据的导入速度。
附图说明
后文将参照附图以示例性而非限制性的方式详细描述本申请实施例的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:
图1是根据本申请实施例一个实施例的基于Sqoop的数据传输方法的流程图;
图2是根据本申请实施例一个实施例的基于Sqoop的数据传输装置的结构示意图。
具体实施方式
实施本发明实施例的任一技术方案必不一定需要同时达到以上的所有优点。
为了使本领域的人员更好地理解本发明实施例中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明实施例一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本发明实施例保护的范围。
下面结合本发明实施例附图进一步说明本发明实施例具体实现。
图1是根据本申请实施例的基于Sqoop的数据传输方法的流程图。该基于Sqoop的数据传输方法包括:
首先,在利用Sqoop将Oracle数据库的数据导入Hive数据库的过程中,设置Sqoop中的并行度参数-m大于1。
其次,判断Oracle数据库的源表中是否存在用于均匀对列进行切分的主键;
再次,若不存在所述主键,利用Oracle数据库中的rownum,通过子查询语句生成rownum列,并对rownum进行数据的切分。
即:对于源表中,没有单列主键的,当设置并行度大于1时,从Oracle数据库导入到Hive数据库会出现问题。此时需要通过-split-by<column-name>来设置对哪列进行拆分,从而避免数据倾斜。在实际业务中,有些表没有恰当的主键来均匀地对列进行拆分,会导致数据不均匀从而降低导入数据的速度甚至任务的失败,这时可以利用Oracle中的rownum,通过子查询语句生成rownum列,并对rownum进行数据的切分。
最后,Sqoop将单个查询导入语句,按照rownum生成对应的多个查询语句,均匀地分布到各个机器节点上运行,最后进行合并操作。即:此时Sqoop内部会将原来的单个查询导入语句,按照rownum生成对应的多个查询语句,均匀地分布到各个机器节点上运行,最后进行合并操作。以此大幅提高数据导入速度。
具体操作时,基于Sqoop的数据传输方法还包括:若存在所述主键,则根据所述主键对列进行切分。
优选地,所述Oracle数据库中的数据先经过压缩处理,再利用Sqoop将压缩后的数据导入Hive数据库。通过对数据进行压缩处理,减少数据传输量,从而提高数据导入速度。
优选地,所述Oracle数据库与所述Hive数据库直接连接。使用数据直连的方式,而不是JDBC的方式来进行数据的连接,可以提高数据处理速度。
本实施例通过针对Sqoop数据导入进行优化,具体地:通过在导入过程中通过-m设置并行度来增加数据处理速度,利用相关工具的内部原理,结合业务实际,使数据导入的运行过程均匀地分布在各机器节点上,增大处理的并行度,从而大大提高数据的导入速度;此外,通过对数据进行压缩,减少数据传输量,使用数据直连的方式取代JDBC连接数据库,提高数据处理速度,通过上述各种优化手段可以将数据从Oracle数据库通过Sqoop导入到大数据平台的导入速度提升2倍。
图2是根据本申请实施例一个实施例的基于Sqoop的数据传输装置的结构示意图。图1所示实施例可以用于解释本实施例。如图2所示:
设置单元,用于在利用Sqoop将Oracle数据库的数据导入Hive数据库的过程中,设置Sqoop中的并行度参数-m大于1;
切分单元,用于判断Oracle数据库的源表中是否存在用于均匀对列进行切分的主键;若不存在所述主键,利用Oracle数据库中的rownum,通过子查询语句生成rownum列,并对rownum进行数据的切分;
并行单元,用于通过Sqoop将单个查询导入语句,按照rownum生成对应的多个查询语句,均匀地分布到各个机器节点上运行,最后进行合并操作。
具体操作时,所述切分单元还用于:若存在所述主键,则根据所述主键对列进行切分。
优选地,基于Sqoop的数据传输装置还包括:压缩单元,用于将所述Oracle数据库中的数据进行压缩处理之后再利用Sqoop将压缩后的数据导入Hive数据库。
优选地,所述Oracle数据库与所述Hive数据库直接连接。
本发明实施例针对从Oracle导入到大数据平台,在Sqoop过程中,通过设置并行度,对数据进行恰当的切分防止数据倾斜,并对数据进行压缩处理,从而提高整体的运行速度。
本发明还提供一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述程序被处理器执行时实现上述方法的步骤。
本发明还提供一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法的步骤。
由于上述计算机可读存储介质及计算机设备具有上述方法相应的技术效果,在此不再赘述。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,所述计算机可读记录介质包括用于以计算机(例如计算机)可读的形式存储或传送信息的任何机制。例如,机器可读介质包括只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质、闪速存储介质、电、光、声或其他形式的传播信号(例如,载波、红外信号、数字信号等)等,该计算机软件产品包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请实施例的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
本领域的技术人员应明白,本发明实施例的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
Claims (10)
1.一种基于Sqoop的数据传输方法,其特征在于,包括:
在利用Sqoop将Oracle数据库的数据导入Hive数据库的过程中,设置Sqoop中的并行度参数-m大于1;
判断Oracle数据库的源表中是否存在用于均匀对列进行切分的主键;
若不存在所述主键,利用Oracle数据库中的rownum,通过子查询语句生成rownum列,并对rownum进行数据的切分;
Sqoop将单个查询导入语句,按照切分结果生成对应的多个查询语句,均匀地分布到各个机器节点上运行,最后进行合并操作。
2.根据权利要求1所述的基于Sqoop的数据传输方法,其特征在于,还包括:
若存在所述主键,则根据所述主键对列进行切分。
3.根据权利要求1或2所述的基于Sqoop的数据传输方法,其特征在于,
所述Oracle数据库中的数据先经过压缩处理,再利用Sqoop将压缩后的数据导入Hive数据库。
4.根据权利要求3所述的基于Sqoop的数据传输方法,其特征在于,所述Oracle数据库与所述Hive数据库直接连接。
5.一种基于Sqoop的数据传输装置,其特征在于,包括:
设置单元,用于在利用Sqoop将Oracle数据库的数据导入Hive数据库的过程中,设置Sqoop中的并行度参数-m大于1;
切分单元,用于判断Oracle数据库的源表中是否存在用于均匀对列进行切分的主键;若不存在所述主键,利用Oracle数据库中的rownum,通过子查询语句生成rownum列,并对rownum进行数据的切分;
并行单元,用于通过Sqoop将单个查询导入语句,按照rownum生成对应的多个查询语句,均匀地分布到各个机器节点上运行,最后进行合并操作。
6.根据权利要求5所述的基于Sqoop的数据传输装置,其特征在于,所述切分单元还用于:若存在所述主键,则根据所述主键对列进行切分。
7.根据权利要求5或6所述的基于Sqoop的数据传输装置,其特征在于,还包括:
压缩单元,用于将所述Oracle数据库中的数据进行压缩处理之后再利用Sqoop将压缩后的数据导入Hive数据库。
8.根据权利要求7所述的基于Sqoop的数据传输装置,其特征在于,所述Oracle数据库与所述Hive数据库直接连接。
9.一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述程序被处理器执行时实现权利要求1至4中任意一项所述方法的步骤。
10.一种计算机设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1至4中任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711450704.9A CN110019558A (zh) | 2017-12-27 | 2017-12-27 | 基于Sqoop的数据传输方法、装置、计算机可读存储介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711450704.9A CN110019558A (zh) | 2017-12-27 | 2017-12-27 | 基于Sqoop的数据传输方法、装置、计算机可读存储介质及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110019558A true CN110019558A (zh) | 2019-07-16 |
Family
ID=67187079
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711450704.9A Pending CN110019558A (zh) | 2017-12-27 | 2017-12-27 | 基于Sqoop的数据传输方法、装置、计算机可读存储介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110019558A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111177220A (zh) * | 2019-12-26 | 2020-05-19 | 中国平安财产保险股份有限公司 | 基于大数据的数据分析方法、装置、设备及可读存储介质 |
CN111198847A (zh) * | 2019-12-30 | 2020-05-26 | 广东奡风科技股份有限公司 | 一种适用于大数据集的数据并行处理方法、装置及系统 |
CN112612811A (zh) * | 2020-12-24 | 2021-04-06 | 航天信息股份有限公司 | 一种数据导入方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106250477A (zh) * | 2016-07-29 | 2016-12-21 | 厦门天锐科技股份有限公司 | 一种分表数据的分页方法 |
CN106326222A (zh) * | 2015-06-16 | 2017-01-11 | 阿里巴巴集团控股有限公司 | 一种数据处理方法和装置 |
CN107016115A (zh) * | 2017-04-18 | 2017-08-04 | 网易(杭州)网络有限公司 | 数据导出方法、装置、计算机可读存储介质及电子设备 |
CN107045512A (zh) * | 2016-02-05 | 2017-08-15 | 北京京东尚科信息技术有限公司 | 一种数据交换方法及系统 |
-
2017
- 2017-12-27 CN CN201711450704.9A patent/CN110019558A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106326222A (zh) * | 2015-06-16 | 2017-01-11 | 阿里巴巴集团控股有限公司 | 一种数据处理方法和装置 |
CN107045512A (zh) * | 2016-02-05 | 2017-08-15 | 北京京东尚科信息技术有限公司 | 一种数据交换方法及系统 |
CN106250477A (zh) * | 2016-07-29 | 2016-12-21 | 厦门天锐科技股份有限公司 | 一种分表数据的分页方法 |
CN107016115A (zh) * | 2017-04-18 | 2017-08-04 | 网易(杭州)网络有限公司 | 数据导出方法、装置、计算机可读存储介质及电子设备 |
Non-Patent Citations (2)
Title |
---|
胡美芳: "面向云环境的大数据迁移和部署研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
邓安远: "《电子商务技术》", 30 June 2015 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111177220A (zh) * | 2019-12-26 | 2020-05-19 | 中国平安财产保险股份有限公司 | 基于大数据的数据分析方法、装置、设备及可读存储介质 |
CN111198847A (zh) * | 2019-12-30 | 2020-05-26 | 广东奡风科技股份有限公司 | 一种适用于大数据集的数据并行处理方法、装置及系统 |
CN112612811A (zh) * | 2020-12-24 | 2021-04-06 | 航天信息股份有限公司 | 一种数据导入方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11762882B2 (en) | System and method for analysis and management of data distribution in a distributed database environment | |
CN106897322B (zh) | 一种数据库和文件系统的访问方法和装置 | |
US10498355B2 (en) | Searchable, streaming text compression and decompression using a dictionary | |
US9773029B2 (en) | Generation of a data model | |
US8943482B2 (en) | Incrementally constructing executable code for component-based applications | |
CN108536761A (zh) | 报表数据查询方法及服务器 | |
CN110019558A (zh) | 基于Sqoop的数据传输方法、装置、计算机可读存储介质及设备 | |
WO2018075817A1 (en) | Streamlined creation and updating of olap analytic databases | |
CN112579625A (zh) | 多源异构数据治理方法及装置 | |
US10474675B2 (en) | Explain tool for optimizing SPARQL queries | |
CN103309904A (zh) | 一种生成数据仓库etl 代码的方法及装置 | |
CN104536987B (zh) | 一种查询数据的方法及装置 | |
CN111914066B (zh) | 多源数据库全局搜索方法及系统 | |
US20190324768A1 (en) | Generating an execution script for configuration of a system | |
US10776359B2 (en) | Abstractly implemented data analysis systems and methods therefor | |
Li et al. | Challenges and trends of big data analytics | |
CN112163017B (zh) | 一种知识挖掘系统及方法 | |
CN111078761A (zh) | 数据探查方法、装置、设备及存储介质 | |
CN106708972B (zh) | 一种基于hana数据库利用slt组件对abap程序优化的方法 | |
CN107943482A (zh) | 基于规则的流式数据处理方法统一监控平台 | |
CN114238379A (zh) | 基于sql生成器的报表查询方法和系统 | |
CN104346378B (zh) | 一种实现复杂数据处理的方法、装置及系统 | |
WO2019111188A1 (en) | Job management in data processing system | |
US20150278255A1 (en) | System and method for optimizing database definitions for a new database | |
KR101772333B1 (ko) | 이종 NoSQL 데이터베이스들간의 지능적 조인 전략 제공 방법 및 시스템 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190716 |
|
RJ01 | Rejection of invention patent application after publication |