CN108319604B - 一种hive中大小表关联的优化方法 - Google Patents

一种hive中大小表关联的优化方法 Download PDF

Info

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
Application number
CN201710032231.4A
Other languages
English (en)
Other versions
CN108319604A (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.)
NANJING FENGHUO TIANDI COMMUNICATION TECHNOLOGY Co.,Ltd.
Original Assignee
Nanjing Fenghuo Tiandi Communication 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 Nanjing Fenghuo Tiandi Communication Technology Co ltd filed Critical Nanjing Fenghuo Tiandi Communication Technology Co ltd
Priority to CN201710032231.4A priority Critical patent/CN108319604B/zh
Publication of CN108319604A publication Critical patent/CN108319604A/zh
Application granted granted Critical
Publication of CN108319604B publication Critical patent/CN108319604B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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

Abstract

本发明公开了一种hive中大小表关联的优化方法,属于大数据处理技术领域,解决了针对Hive大小表关联时大表存在索引的场景下效率低下的问题;本发明利用大表的索引特性,降低传输和分析的数据量,进而提升大小表关联分析的效率。

Description

一种hive中大小表关联的优化方法
技术领域
本发明属于大数据处理技术领域。
背景技术
随着数据量的增长和大数据技术的发展,如何快速有效地找出蕴藏在海量数据中的信息成为大数据时代面临的难题,基于分布式技术的多表关联分析(简称多表关联)是业界常用的一种从海量数据中发掘数据价值的手段。在实际应用中多表关联可分为大数据表与大数据表关联分析(简称大大表关联)和大数据表与小数据表关联分析(简称大小表关联),多表关联的效率成为衡量分布式处理框架的一个重要指标。
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倍。
Figure BDA0001210342940000051
表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执行引擎。
CN201710032231.4A 2017-01-16 2017-01-16 一种hive中大小表关联的优化方法 Active CN108319604B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 航天信息股份有限公司 一种建立用于大数据分析的中间数据仓库的方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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