分区 & 分桶

都是把数据划分成块。分区是粗粒度的划分,桶是细粒度的划分,这样做为了可以让查询发生在小范围的数据上以提高效率。

  • 分区之后,分区列都成了文件目录,从而查询时定位到文件目录,子数据集而提高查询效率。

  1. 创建:
create table zyy_table (id int,name string)
clustered by (id) into 4 buckets;

clustered by (...) into (...)  buckets  声明分桶列和桶的个数。

hive会计算记录的哈希值,对桶的个数取模,来决定记录属于哪个桶 。

set hive.enforce.bucketing=true –- 必须设置这个数据,hive才会按照你设置的桶的个数去生成数据

hive> dfs -ls /user/hive/warehouse/zyy_table;    -- 可以查询桶文件

drwxrwxr-x+  1 hive hive        111 2016-07-28 19:30 /user/hive/warehouse/test.db/zyy_table/000000_0
drwxrwxr-x+ 2 hive hive 120 2016-07-28 19:41 /user/hive/warehouse/test.db/zyy_table/000000_1
-rwxrwxr-x+ 3 hive hive 148 2016-07-28 19:41 /user/hive/warehouse/test.db/zyy_table/000000_2

对示例数据进行查询:

— 带桶的表
select * from zyy_table tablesample(bucket 1 out of 4 on id);

tablesample 可以让查询发生在一部分桶上,而不是普通表的查询(使用rand() 函数,在整个数据集上检索)

parquet

http://www.infoq.com/cn/articles/in-depth-analysis-of-parquet-column-storage-format/

面向分析型业务的列式存储格式。

列式存储相比于行式存储的优势:

1. 可以跳过不符合条件的数据,降低IO

2. 压缩编码,节省空间。同一列数据类型一样,可以高效压缩。

3. 只读取需要的列,支持向量运算,扫描更有效率。

Parquet的优势:

日志结构是复杂的嵌套数据类型,而不同的计算框架需要对这些数据做分析和挖掘,存储和访问很重要。paquet就是既支持关系型数据类型,又能支持嵌套类型的存储格式,

同时适配多种数据处理框架(MapReduce, Hive, Pig)。

关系型数据的列式存储很简单,一列列排列下来;

嵌套型的列存储有些复杂。一个record中的column可以是Int Long,String 也可以是List, Map,Set 这样。(具体需深入)

最新文章

  1. Hyper-v 安装CentOS 7 (其他虚拟机一样参考)
  2. org.dbunit.database.ambiguoustablenameexception
  3. 点击不同按钮生成不同窗体到某个panel上面,类似Frame用法--不错
  4. 深入理解C++的动态绑定和静态绑定【转】
  5. selenium之xpath定位和input文本
  6. HDU 2993 MAX Average Problem(斜率优化)
  7. POJ 2421 Constructing Roads
  8. DOS 全集
  9. Cookie、LocalStorge、SesstionStorge 的区别和用法
  10. Cocos2dx-Android 之Makefile通用高级写法
  11. Memcached启动脚本
  12. zhenai
  13. JavaScript中的设计模式:策略模式
  14. MySQL存储过程/存储过程与自定义函数的区别
  15. 一例完全理解vue 2.0 的slots 和 functional render
  16. Java—SSH(MVC)
  17. 学习python笔记 协程
  18. poj3253 Fence Repair(贪心+哈夫曼 经典)
  19. Vue的介绍及基础指令
  20. python中装饰器修复技术

热门文章

  1. css3结构性伪类选择器
  2. TFS命令tf:undo(强制签入签出文件)
  3. js双层动画幻灯
  4. ASP.NET中处理自定义错误的最佳方式
  5. sublime配置文件
  6. oracle: job使用
  7. hadoop家族之pig入门
  8. 如何优化 FineUI 控件库的性能,减少 80% 的数据上传量!
  9. 用c#操作Mongodb(附demo)
  10. ArcGIS支持MongoDB数据源