SparkSQL本质上是基于DAG模型的MPP.而Kylin核心是Cube(多维立方体).关于MPP和Cube预处理的差异,重复如下: > MPP [1] 的基本思路是增加机器来并行计算,从而提高查询速度.比如扫描8亿记录一台机器要处理1小时,但如果用100台机器来并行处理,就只要一分钟不到.再配合列式存储和一些索引,查询可以更快返回.要注意这里在线运算量并没有减小,8亿条记录还是要扫描一次,只是参与的机器多了,所以快了. > MOLAP Cube [2][3] 是一种预计算技术,基本思路是预…
SparkSQL本质上是基于DAG模型的MPP.而Kylin核心是Cube(多维立方体).关于MPP和Cube预处理的差异,重复如下: > MPP [1] 的基本思路是增加机器来并行计算,从而提高查询速度.比如扫描8亿记录一台机器要处理1小时,但如果用100台机器来并行处理,就只要一分钟不到.再配合列式存储和一些索引,查询可以更快返回.要注意这里在线运算量并没有减小,8亿条记录还是要扫描一次,只是参与的机器多了,所以快了. > MOLAP Cube [2][3] 是一种预计算技术,基本思路是预…
Spark SQL是Apache Spark最广泛使用的一个组件,它提供了非常友好的接口来分布式处理结构化数据,在很多应用领域都有成功的生产实践,但是在超大规模集群和数据集上,Spark SQL仍然遇到不少易用性和可扩展性的挑战.为了应对这些挑战,英特尔大数据技术团队和百度大数据基础架构部工程师在Spark 社区版本的基础上,改进并实现了自适应执行引擎.本文首先讨论Spark SQL在大规模数据集上遇到的挑战,然后介绍自适应执行的背景和基本架构,以及自适应执行如何应对Spark SQL这些问题,…
引言 Apache Spark 2.2 以及以上版本提供的三种 API - RDD.DataFrame 和 Dataset,它们都可以实现很多相同的数据处理,它们之间的性能差异如何,在什么情况下该选用哪一种呢? RDD 从一开始 RDD 就是 Spark 提供的面向用户的主要 API.从根本上来说,一个 RDD 就是你的数据的一个不可变的分布式元素集合,在集群中跨节点分布,可以通过若干提供了转换和处理的底层 API 进行并行处理. 在正常情况下都不推荐使用 RDD 算子 在某种抽象层面来说,使用…
背景   这一篇可以说是“Hive JSON数据处理的一点探索”的兄弟篇.   平台为了加速即席查询的分析效率,在我们的Hadoop集群上安装部署了Spark Server,并且与我们的Hive数据仓库共享元数据.也就是说,我们的用户即可以通过HiveServer2使用Hive SQL执行MapReduce分析数据,也可以使用SparkServer使用Spark SQL(Hive SQL)执行Spark Application分析数据.   两者除去MapReduce和Spark Applica…
[TOC] 背景 Spark SQL是Spark的一个模块,用于结构化数据的处理. ++++++++++++++ +++++++++++++++++++++ | SQL | | Dataset API | ++++++++++++++ +++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ | Spark SQL | +++++++++++++++++++++++++++++++++++++ 使用Spark SQL的方式有2种,可以…
内存计算平台spark在今年6月份的时候正式发布了spark2.0,相比上一版本的spark1.6版本,在内存优化,数据组织,流计算等方面都做出了较大的改变,同时更加注重基于DataFrame数据组织的MLlib,更加注重机器学习整个过程的管道化. 当然,作为使用者,特别是需要运用到线上的系统,大部分厂家还是会继续选择已经稳定的spark1.6版本,并且在spark2.0逐渐成熟之后才会开始考虑系统组件的升级.作为开发者,还是有必要先行一步,去了解spark2.0的一些特性和使用,及思考/借鉴一…
最近加入一个Spark项目,作为临时的开发人员协助进行开发工作.该项目中不存在测试的概念,开发人员按需求进行编码工作后,直接向生产系统部署,再由需求的提出者在生产系统检验程序运行结果的正确性.在这种原始的工作方式下,产品经理和开发人员总是在生产系统验证自己的需求.代码.可以想见,各种直接交给用户的错误导致了一系列的事故和不信任.为了处理各类线上问题,大家都疲于奔命.当工作进行到后期,每一个相关人都已经意气消沉,常常对工作避之不及. 为了改善局面,我尝试了重构部分代码,将连篇的SQL分散到不同的方…
现在的spark sql编程通常使用scala api 以及 java api的方式,相比于直接使用 spark sql语句,spark api灵活很多,毕竟可以基于dataset以及rdd两种方式进行操作,不过spark sql的坑就有点多了. 1,getClass.getResourceAsStream这个类,网上通常说的是不加"/"是从当前包读取,加了"/"是从根class路径读取,但是根路径并不是在idea或者文件下看到的诸如src/main/resourc…
转自infoQ! 根据 O’Reilly 2016年数据科学薪资调查显示,SQL 是数据科学领域使用最广泛的语言.大部分项目都需要一些SQL 操作,甚至有一些只需要SQL. 本文涵盖了6个开源领导者:Hive.Impala.Spark SQL.Drill.HAWQ 以及Presto,还加上Calcite.Kylin.Phoenix.Tajo 和Trafodion.以及2个商业化选择Oracle Big Data SQL 和IBM Big SQL,IBM 尚未将后者更名为“Watson SQL”.…