CN108319604B - 一种hive中大小表关联的优化方法 - Google Patents
一种hive中大小表关联的优化方法 Download PDFInfo
- Publication number
- CN108319604B CN108319604B CN201710032231.4A CN201710032231A CN108319604B CN 108319604 B CN108319604 B CN 108319604B CN 201710032231 A CN201710032231 A CN 201710032231A CN 108319604 B CN108319604 B CN 108319604B
- Authority
- CN
- China
- Prior art keywords
- data
- data table
- hive
- mapreduce
- association
- 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
Links
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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/2282—Tablespace storage structures; Management thereof
Abstract
本发明公开了一种hive中大小表关联的优化方法,属于大数据处理技术领域,解决了针对Hive大小表关联时大表存在索引的场景下效率低下的问题;本发明利用大表的索引特性,降低传输和分析的数据量,进而提升大小表关联分析的效率。
Description
技术领域
本发明属于大数据处理技术领域。
背景技术
随着数据量的增长和大数据技术的发展,如何快速有效地找出蕴藏在海量数据中的信息成为大数据时代面临的难题,基于分布式技术的多表关联分析(简称多表关联)是业界常用的一种从海量数据中发掘数据价值的手段。在实际应用中多表关联可分为大数据表与大数据表关联分析(简称大大表关联)和大数据表与小数据表关联分析(简称大小表关联),多表关联的效率成为衡量分布式处理框架的一个重要指标。
Hadoop是当前大数据处理领域中常用的分布式技术;Hive是一款构建于Hadoop之上的数据仓库工具,对外提供HQL(类SQL)接口,底层借助MapReduce或者Spark分析存储在HDFS上的大规模数据集。此外,Hive也能分析其他存储系统中的数据,例如HBase、RDB、MongoDB等。
Hive中大大表关联和大小表关联的底层实现分别对应MapReduce计算框架中的Reduce-side join和Map-side join。
Reduce-side join存在以下缺点:需要两个阶段的Task;需要将Map Task的结果进行存储并传输到Reduce Task端,对网络或者磁盘I/O、内存等的开销很大;在关联字段分布严重不均匀的情况下容易导致部分Reduce Task出现数据倾斜,从而使得关联速度缓慢,效率极低。
Map-side join存在以下缺点:对大表做全表扫描,需要传输和分析的数据量仍然很大;耗费的集群资源(比如CPU/存储)仍然较多。
目前,对于Hive大小表关联分析时,虽然Map-side join相对于Reduce-side join而言在性能上有所提升,但仍然需要对大表进行全表扫描,没有结合大表自身的一些特点,如索引等,效率仍然较低。
发明内容
本发明的目的是提供一种hive中大小表关联的优化方法,解决了针对Hive大小表关联时大表存在索引的场景下效率低下的问题。
为实现上述目的,本发明采用以下技术方案:
一种hive中大小表关联的优化方法,包括如下步骤:
步骤1:建立由多个服务器组成的服务器集群,在服务器集群的基础上建立Hadoop框架结构;
步骤2:在Hadoop框架结构上搭建hive数据仓库工具,Hive数据仓库工具对外提供HQL接口,Hive数据仓库工具将存储在HDFS或其他存储介质上的大规模数据集映射为数据表,所述数据表根据数据量的大小分为大数据表和小数据表;
步骤3:Hive客户端通过Hive数据仓库工具底层借助Mapreduce完成对数据表的分析;
步骤4:以MapReduce计算框架作为hive的执行引擎,hive客户端执行多表关联任务触发MapReduce job任务执行实际的关联任务,所述MapReducejob任务包括数个MapTask,在Map Task中对大数据表和小数据表根据关联字段进行关联分析;
步骤5:在执行MapReduce job任务之前,首先判断大小数据表的数据量是否满足要求:是,则执行步骤6;否,则执行步骤10;
步骤6:判断大数据表是否含有索引字段:是,则执行步骤7;否,则执行步骤10;
步骤7:判断大数据表关联字段是否是索引字段,是,则执行步骤8;否,则执行步骤10;
步骤8:MapReduce根据小数据表的数据量和关联字段的特点对小数据表的数据进行分区,生成数个小数据表分区,每个小数据表分区均由一个Map Task处理;
步骤9:在每个Map Task阶段,MapReduce遍历小数据表分区的数据,构造索引条件查询大数据表的数据,然后生成大小表关联分析结果,执行步骤12;
步骤10:MapReduce根据大数据表的数据量将大数据表的数据进行切分,生成数个大数据表分区,每个大数据表分区由一个Map Task处理;
步骤11:在每个Map Task阶段中,MapReduce对相应的大数据表分区的数据进行扫描,并与小数据表的数据做等值关联,生成大小表关联分析结果;
步骤12:MapReduce将大小表关联分析结果最终输出至Hive客户端或HDFS中。
所述Hive数据仓库工具对外还提供SQL接口。
所述Hadoop框架结构包括HDFS和MapReduce两大组件。
所述数据源存储介质包括HDFS、HBase、RDB和MongoDB存储系统。
所述大小表关联分析的执行引擎包括MapReduce和Spark执行引擎。
本发明所述的一种hive中大小表关联的优化方法,解决了针对Hive大小表关联时大表存在索引的场景下效率底下的问题;本发明利用大表的索引特性,降低传输和分析的数据量,进而提升大小表关联分析的效率。
附图说明
图1是本发明的流程图;
图2是本发明的大小表关联分析结果的优化前后性能比对图。
具体实施方式
如图1和图2所示的一种hive中大小表关联的优化方法,包括如下步骤:
步骤1:建立由多个服务器组成的服务器集群,在服务器集群的基础上建立Hadoop框架结构;
步骤2:在Hadoop框架结构上搭建hive数据仓库工具,Hive数据仓库工具对外提供HQL接口,Hive数据仓库工具将存储在HDFS或其他存储介质上的大规模数据集映射为数据表,所述数据表根据数据量的大小分为大数据表和小数据表;
步骤3:Hive客户端通过Hive数据仓库工具底层借助Mapreduce完成对数据表的分析;
步骤4:以MapReduce计算框架作为hive的执行引擎,hive客户端执行多表关联任务触发MapReduce job任务执行实际的关联任务,所述MapReducejob任务包括数个MapTask,在Map Task中对大数据表和小数据表根据关联字段进行关联分析;
步骤5:在执行MapReduce job任务之前,首先判断大小数据表的数据量是否满足要求:是,则执行步骤6;否,则执行步骤10;
步骤6:判断大数据表是否含有索引字段:是,则执行步骤7;否,则执行步骤10;
步骤7:判断大数据表关联字段是否是索引字段,是,则执行步骤8;否,则执行步骤10;
步骤8:MapReduce根据小数据表的数据量和关联字段的特点对小数据表的数据进行分区,生成数个小数据表分区,每个小数据表分区均由一个Map Task处理;
步骤9:在每个Map Task阶段,MapReduce遍历小数据表分区的数据,构造索引条件查询大数据表的数据,然后生成大小表关联分析结果,执行步骤12;
步骤10:MapReduce根据大数据表的数据量将大数据表的数据进行切分,生成数个大数据表分区,每个大数据表分区由一个Map Task处理;
步骤11:在每个Map Task阶段中,MapReduce对相应的大数据表分区的数据进行扫描,并与小数据表的数据做等值关联,生成大小表关联分析结果;
步骤12:MapReduce将大小表关联分析结果最终输出至Hive客户端或HDFS中。
所述Hive数据仓库工具对外还提供SQL接口。
所述Hadoop框架结构包括HDFS和MapReduce两大组件。
所述数据源存储介质包括HDFS、HBase、RDB和MongoDB存储系统。
所述大小表关联分析的执行引擎包括MapReduce和Spark执行引擎。
HDFS作为分布式文件系统,负责海量数据的存储;MapReduce作为分布式计算框架,负责分析任务的调度和容错。
本发明中的MapReduce也可以替换为Spark,Spark是一款新兴的基于内存计算和迭代计算的分布式计算平台。
本发明中所涉及的大小表数据源存储介质可以是HDFS、HBase、RDB、MongoDB等多种数据源存储系统。
本发明利用大表的索引特性,将全表扫描转化为索引查询,加快数据的查询速度;
本发明大大减小了传输的数据量,降低资源使用率,节省宝贵的集群资源(CPU、内存、磁盘空间等),提升大小表关联分析的效率。
以数据总大小为160GB并且数据条数为230000000条的大数据表和数据总大小为小于10MB并且数据条数为530条的小数据表为例,如图2和表1所示,经本发明所述的一种hive中大小表关联的优化方法之后,CPU耗时较优化前提升了约70倍,mapreduce作业耗时较优化前提升了约5倍。
表1
如图2和表1中的Map为MapReducejob任务。
本发明所述的一种hive中大小表关联的优化方法,解决了针对Hive大小表关联时大表存在索引的场景下效率低下的问题;本发明利用大表的索引特性,降低传输和分析的数据量,进而提升大小表关联分析的效率。
Claims (3)
1.一种Hive中大小表关联的优化方法,其特征在于:包括如下步骤:
步骤1:建立由多个服务器组成的服务器集群,在服务器集群的基础上建立Hadoop框架结构;所述Hadoop框架结构包括HDFS和MapReduce两大组件;
步骤2:在Hadoop框架结构上搭建Hive数据仓库工具,Hive数据仓库工具对外提供HQL接口,Hive数据仓库工具将存储在HDFS或其他存储介质上的大规模数据集映射为数据表,所述数据表根据数据量的大小分为大数据表和小数据表;
步骤3:Hive客户端通过Hive数据仓库工具底层借助Mapreduce完成对数据表的分析;
步骤4:以MapReduce计算框架作为Hive数据仓库工具的执行引擎,Hive客户端执行多表关联任务触发MapReduce job任务执行实际的关联任务,所述MapReducejob任务包括数个Map Task,在Map Task中对大数据表和小数据表根据关联字段进行关联分析;
步骤5:在执行MapReduce job任务之前,首先判断大小数据表的数据量是否满足要求:是,则执行步骤6;否,则执行步骤10;
步骤6:判断大数据表是否含有索引字段:是,则执行步骤7;否,则执行步骤10;
步骤7:判断大数据表关联字段是否是索引字段,是,则执行步骤8;否,则执行步骤10;
步骤8:MapReduce根据小数据表的数据量和关联字段的特点对小数据表的数据进行分区,生成数个小数据表分区,每个小数据表分区均由一个Map Task处理;
步骤9:在每个Map Task阶段,MapReduce遍历小数据表分区的数据,构造索引条件查询大数据表的数据,然后生成大小表关联分析结果,执行步骤12;
步骤10:MapReduce根据大数据表的数据量将大数据表的数据进行切分,生成数个大数据表分区,每个大数据表分区由一个Map Task处理;
步骤11:在每个Map Task阶段中,MapReduce对相应的大数据表分区的数据进行扫描,并与小数据表的数据做等值关联,生成大小表关联分析结果;
步骤12:MapReduce将大小表关联分析结果最终输出至Hive客户端或HDFS中。
2.如权利要求1所述的一种Hive中大小表关联的优化方法,其特征在于:所述Hive数据仓库工具对外还提供SQL接口。
3.如权利要求1所述的一种Hive中大小表关联的优化方法,其特征在于:所述大小表关联分析的执行引擎包括MapReduce和Spark执行引擎。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710032231.4A CN108319604B (zh) | 2017-01-16 | 2017-01-16 | 一种hive中大小表关联的优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710032231.4A CN108319604B (zh) | 2017-01-16 | 2017-01-16 | 一种hive中大小表关联的优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108319604A CN108319604A (zh) | 2018-07-24 |
CN108319604B true CN108319604B (zh) | 2021-10-19 |
Family
ID=62891108
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710032231.4A Active CN108319604B (zh) | 2017-01-16 | 2017-01-16 | 一种hive中大小表关联的优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108319604B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109857997B (zh) * | 2019-02-02 | 2019-10-29 | 杭州费尔斯通科技有限公司 | 一种离线表关联方法 |
CN110442594A (zh) * | 2019-07-18 | 2019-11-12 | 华东师范大学 | 一种面向Spark SQL聚集算子的动态执行方法 |
CN112732715B (zh) * | 2020-12-31 | 2023-08-25 | 星环信息科技(上海)股份有限公司 | 一种数据表关联方法、设备以及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103646051A (zh) * | 2013-11-27 | 2014-03-19 | 武汉邮电科学研究院 | 一种基于列存储的大数据并行处理系统及方法 |
CN103646073A (zh) * | 2013-12-11 | 2014-03-19 | 浪潮电子信息产业股份有限公司 | 一种基于HBase表的条件查询优化方法 |
CN104462351A (zh) * | 2014-12-05 | 2015-03-25 | 河海大学 | 一种面向MapReduce范型的数据查询模型与方法 |
CN105117433A (zh) * | 2015-08-07 | 2015-12-02 | 北京思特奇信息技术股份有限公司 | 一种基于Hive解析HFile统计查询HBase的方法和系统 |
CN106326361A (zh) * | 2016-08-10 | 2017-01-11 | 中国农业银行股份有限公司 | 一种基于HBase数据库的数据查询方法及装置 |
CN108255838A (zh) * | 2016-12-28 | 2018-07-06 | 航天信息股份有限公司 | 一种建立用于大数据分析的中间数据仓库的方法及系统 |
-
2017
- 2017-01-16 CN CN201710032231.4A patent/CN108319604B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103646051A (zh) * | 2013-11-27 | 2014-03-19 | 武汉邮电科学研究院 | 一种基于列存储的大数据并行处理系统及方法 |
CN103646073A (zh) * | 2013-12-11 | 2014-03-19 | 浪潮电子信息产业股份有限公司 | 一种基于HBase表的条件查询优化方法 |
CN104462351A (zh) * | 2014-12-05 | 2015-03-25 | 河海大学 | 一种面向MapReduce范型的数据查询模型与方法 |
CN105117433A (zh) * | 2015-08-07 | 2015-12-02 | 北京思特奇信息技术股份有限公司 | 一种基于Hive解析HFile统计查询HBase的方法和系统 |
CN106326361A (zh) * | 2016-08-10 | 2017-01-11 | 中国农业银行股份有限公司 | 一种基于HBase数据库的数据查询方法及装置 |
CN108255838A (zh) * | 2016-12-28 | 2018-07-06 | 航天信息股份有限公司 | 一种建立用于大数据分析的中间数据仓库的方法及系统 |
Non-Patent Citations (1)
Title |
---|
"hive两大表关联优化试验";yijichangkong;《https://blog.csdn.net/yijichangkong/article/details/51441944》;20160518;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108319604A (zh) | 2018-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ji et al. | Big data processing in cloud computing environments | |
Ji et al. | Big data processing: Big challenges and opportunities | |
US20120011144A1 (en) | Aggregation in parallel computation environments with shared memory | |
CN103646073A (zh) | 一种基于HBase表的条件查询优化方法 | |
CN109815283B (zh) | 一种异构数据源可视化查询方法 | |
CN105824957A (zh) | 分布式内存列式数据库的查询引擎系统及查询方法 | |
CN103440288A (zh) | 一种大数据存储方法及装置 | |
CN106599052B (zh) | 一种基于Apache Kylin的数据查询系统及其方法 | |
EP2469423A1 (en) | Aggregation in parallel computation environments with shared memory | |
CN110659278A (zh) | 基于cpu-gpu异构架构的图数据分布式处理系统 | |
CN103699656A (zh) | 一种基于GPU的面向海量多媒体数据的MapReduce平台 | |
CN108319604B (zh) | 一种hive中大小表关联的优化方法 | |
CN114356971A (zh) | 数据处理方法、装置以及系统 | |
CN106599190A (zh) | 基于云计算的动态Skyline查询方法 | |
WO2020211717A1 (zh) | 一种数据处理方法、装置及设备 | |
CN110955732A (zh) | 一种用于在Spark环境中实现分区负载均衡的方法和系统 | |
CN104239470A (zh) | 一种面向分布式环境的空间数据复合处理系统和方法 | |
CN113568938A (zh) | 数据流处理方法、装置、电子设备及存储介质 | |
CN116756150B (zh) | 一种Mpp数据库大表关联加速方法 | |
CN106776810B (zh) | 一种大数据的数据处理系统及方法 | |
CN116431635A (zh) | 基于湖仓一体的配电物联网数据实时处理系统及方法 | |
CN107562943B (zh) | 一种数据计算的方法及系统 | |
CN115982230A (zh) | 数据库的跨数据源查询方法、系统、设备及存储介质 | |
Lou et al. | Research on data query optimization based on SparkSQL and MongoDB | |
CN114138831A (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210922 Address after: 210000 No. 739 Shengan Road, Binjiang Economic Development Zone, Jiangning District, Nanjing, Jiangsu. Applicant after: NANJING FENGHUO TIANDI COMMUNICATION TECHNOLOGY Co.,Ltd. Address before: 210000 Fenghuo technology building, No. 88, yunlongshan Road, Nanjing, Jiangsu Applicant before: NANJING FIBERHOME SOFTWARE TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |