商业智能BI产品更多介绍:https://www.smartbi.com.cn/
商业智能BI产品更多介绍:点击前往
传统的ETL工具比如Kettle、Talend、Informatica等,可视化操作,上手比较快,但是对于数据量上升导致性能出问题,可优化的空间就不是很大了,毕竟底层人家都已经帮你封装好了。
写Mapreduce进行数据处理,需要利用java、python等语言进行开发调试,没有可视化操作界面来的那么方便,在性能优化方面,常见的有在做小表跟大表关联的时候,可以先把小表放到缓存中(通过调用Mapreduce的api),另外可以通过重写Combine跟Partition的接口实现,压缩从Map到reduce中间数据处理量达到提高数据处理性能。
在没有出现下面要说的Spark之前,Hive可谓独占鳌头,涉及离线数据的处理基本都是基于Hive来做的,早期的阿里的云梯1就是充分利用Hive的特性来进行数据处理Hive采用sql的方式底层基于Hadoop的Mapreduce计算框架进行数据处理,所以他的优化方案很多,常见的场景比如数据倾斜,当多表关联其中一个表比较小,可以采用mapjoin,或者设置set hive.groupby.skewindata=true等,当碰到数据量比较大的时候,可以考虑利用分桶,分区(分为静态分区,动态分区)进行数据重新组织存储,这样在利用数据的时候就不需要整表去扫描,比如淘宝常常对一个业务场景利用不同算法进行营销活动,每个算法的营销活动可以存放到不同的分桶中,这样统计数据的时候就会提高效率。对于hive的性能优化我后面会有一个专题进行介绍,这里只简单提一下常用的场景。
Spark基于内存计算的准Mapreduce,在离线数据处理中,一般使用Spark sql进行数据清洗,目标文件一般是放在hdf或者nfs上,在书写sql的时候,尽量少用distinct,group by reducebykey 等之类的算子,要防止数据倾斜。在优化方面主要涉及配置每台集群每台机器运行task的进程个数,内存使用大小,cpu使用个数等。从我个人的角度来看,我觉得spark sql跟上面所说的hive sql差不多,只不过spark sql更加倾向于内存处理。但是他不具有较强的模板话,如果修改里面逻辑要重新编译调试运行,比较适合改动比较小的业务场景,比如数据仓库模型中ods,dwd层的数据处理。因为这两层都是宽表级别的粗处理,目的很简单旨在数据最优存储支撑上层ads层报表开发。
更聪明的大数据分析软件,快速挖掘企业数据价值!
最新上架
麦粉市场集合了海量可视化大屏模板,会员可下载到本地使用物业大数据分析平台
【最新】人力资源(HR)应用 【最热】公司总体薪酬分析银行风险管理
【最新】集团项目管理应用 【最热】银行经营分析电网大数据分析平台
【最新】销售营销应用模板 【最热】房地产经营运营应用电话:
邮箱: