ORCFILE,ParquetFile,CubeFile使用场景区别
这个其实是转自杭州第三次spark meetingup,华为的李昆大神的分享。
| OLAP分析场景 | ORC File | Parquet File | Cube File |
| Full scan one dimension | Fast | Fast | Median |
| (Low Cardinality) | (只扫需要的列) | (只扫需要的列) | (只扫需要的列,但MDK较大) |
| Full scan one dimension | Slow | Slow | Fast |
| (High Cardinality) | (Stripe Level字典编码,需要重复解码) | (Row Group Level字典编码,需要重复解码) | (全局字典编码,无重复解码) |
| Full scan multiple dimension aggregation | Slow | Slow | Fast |
| (读取多行并做join) | (读取多行并做join) | (星型模型转换后无需join) | |
| Filter single dimension | Slow | Very Slow | Fast |
| (需要全扫描单列,可利用min/max跳过Stripe) | (需要全扫描单列,无索引) | (利用多维索引) | |
| Filter multiple dimensions | Slow | Very Slow | Very Fast |
| Select Year,ServiceName, | (需要全扫描多列,可利用min/max跳过Stripe) | (需要全扫描多列,无索引) | (利用多维索引) |
| Filter on Measure | Slow | Slow | Slow |
| (需要全扫描,可利用min/max跳过Stripe) | (需要全扫描,无索引) | (度量上无索引,需要全扫描) |
排版有些乱,大家凑合看一下。
从这个比较来看,大基数的全量多维的查询,CubeFile的优势是很明显的。
个人感觉,最大原因是ORCFile和ParquetFile他们是分块索引数据的,而CubeFile是全量索引数据的。现在理解的还比较浅,等深入理解后再来论这个的区别和关系。
ORCFILE,ParquetFile,CubeFile使用场景区别的更多相关文章
- 从物联网防火墙himqtt源码谈哈希和红黑树的应用场景区别
从物联网防火墙himqtt源码谈哈希和红黑树的应用场景区别 himqtt是首款完整源码的高性能MQTT物联网防火墙 - MQTT Application FireWall,C语言编写,很多数据结构适合 ...
- java中List接口的实现类 ArrayList,LinkedList,Vector 的区别 list实现类源码分析
java面试中经常被问到list常用的类以及内部实现机制,平时开发也经常用到list集合类,因此做一个源码级别的分析和比较之间的差异. 首先看一下List接口的的继承关系: list接口继承Colle ...
- 事务以及MySQL事务隔离级别+MySQL引擎的区别
1.事务的基本要素:ACID 1.原子性(Atomicity): 事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节.事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有 ...
- Android onKeyDown、onKeyUp、dispatchKeyEvent的区别
1. onKeyDown.onKeyUp.dispatchKeyEvent的区别和使用场景 区别: 1.1 onKeyDown.onKeyUp是按键事件的回调接口(冒泡式调用),dispatchKey ...
- Gpon与Epon的区别
一.GPON Gpon(Gigabit-Capable pon)技术起源于ATMPON技术标准,现已形成基于ITU-TG.984.X标准的最新一代宽带无源光综合接入标准. 1.GPON技术特点: 1. ...
- 【HBase】与关系型数据库区别、行式/列式存储
[HBase]与关系型数据库区别 1.本质区别 mysql:关系型数据库,行式存储,ACID,SQL,只能存储结构化数据 事务的原子性(Atomicity):是指一个事务要么全部执行,要么不执行,也就 ...
- MySQL中的find_in_set()函数使用技巧心得与应用场景总结
Author:极客小俊 一个专注于web技术的80后 我不用拼过聪明人,我只需要拼过那些懒人 我就一定会超越大部分人! CSDN@极客小俊,CSDN官方首发原创文章 企业博客 CSDN.com 个人博 ...
- 华为云计算IE面试笔记-桌面云中的用户组、虚拟机模板、模板虚拟机、虚拟机组和桌面组的关系及区别。发放完整复制和链接克隆虚拟机时,步骤有什么区别,要怎么选择桌面组?
概念解释: 模板虚拟机:FC上创建的裸虚拟机,用于制作不同类型的虚拟机模板. 虚拟机模板:用于创建虚拟机的模板,对裸虚拟机(模板虚拟机)进行配置或自定义安装软件后,转为模板.虚拟机模板类型有完整复制, ...
- JSP模板继承功能实现
背景 最近刚入职新公司,浏览一下新公司项目,发现项目中大多数JSP页面都是独立的.完整的页面,因此许多页面都会有如下重复的代码: <%@ page language="java&quo ...
随机推荐
- 关于笔记本安装双系统windows and linux
ps1.安装完成后,补充下如何设在win7为默认启动系统, 大家也都知道,在linux 运行当软件都是以配置文件来设置参数当,当然grub菜单也不例外, 修改菜单可以进入grub.conf [root ...
- linux命令合集
序:介绍一些经常需要用到的Linux命令. 一.wget 作用:下载网络文件,将远程服务器文件恢复备份到本地. wget http://cn.wordpress.org/wordpress-3.1-z ...
- Sublime text 3 中文文件名显示方框怎么解决?
如图,中文文件名打开全是乱码,内容倒是装了converttoutf8没什么太大的问题. -------------------------------------------------------- ...
- <转>Npoi导入导出Excel操作<载>
//Datatable导出Excel private static void GridToExcelByNPOI(DataTable dt, string strExcelFileName) { tr ...
- Spring AOP使用整理:各种通知类型的介绍
2.PersonImpl类的源码 public class PersonImpl implements Person { private String name; private int age; p ...
- Android学习笔记之打钩显示输入的密码
利用EditText作为密码输入框是个不错的选择(只需设置输入类型为textPassword即可),保密且无需担心被盗取.但有时用户也不知道自己输入的是否正确,这时就应该提供一个“显示密码”的复选框, ...
- unity3d web.config设置
原地址:http://www.cnblogs.com/88999660/archive/2013/03/22/2976105.html <?xml version="1.0" ...
- python网络编程之最简单的单工通信
tcp_server.py from socket import * server = socket(AF_INET, SOCK_STREAM) server.bind(('',12345)) ser ...
- Linux and the Unix Philosophy (Linux/Unix设计思想)
http://www.iwangzheng.com/ 大约30年前,当美国人边开着大型轿车边享受着其他国家民众的羡慕目光时,大众汽车却在美国开展了一项主题为“小即是美”的广告营销活动.那时,美国人对大 ...
- Delphi开发Windows服务程序
开发步骤: 1.New->Other->Service Application 2.现在一个服务程序的框架已经搭起来了 打开Service1窗口,有几个属性说明一下: AllowPause ...