阅读更多

1顶
0踩

编程语言

原创新闻 hive schema详解

2015-05-11 09:52 by 见习记者 超人学院 评论(0) 有6521人浏览

schema设计
hive pattern && hiveanti-pattern
1.Table by day 按照天分割数据,在relation中,这个参数不推荐,在hive中使用
create table supply(id int,partstring,quantity int) partitioned by (int day)
alter table supply add partition(day=20120102)
partition的负面影响:
1.namenode limition
但是partition产生的子目录,子文件都会保存在hdfs中,namenode会存在内存中,所以这得负面效果是namenode的filesystem的容量上限(hadoop has this upper limit on the total number of file,mapr andamazon s3 don't have this limitation)
2.一个job分解成几个task,每个task是一个jvm实例,每一个file对应一个独立的task,每个task是jvm中独立的一个实例(进程),过多的实例会给jvm压力(start up and tear down),这使得计算速度降低
因此不能有太多partition,每个文件要尽可能的大
一个好的table by day的设计,是设计出相似大小的数据在不同的时间间断,时间间断可以适当增大。同时保证每个file大于filesystem block size。目的是让partition足够的大。另一种方法,是用多维度的partition分解数据。
2.unique keys and normalization 主键,格式化数据
关系数据库最爱用地策略,但是在hive中没有这种概念。因为hive可以存储denormalized data非格式化的数据,如array,map,struct。这样可以避免one-to-many的关联关系,加快了io速度。但是也pay the penalty of denormalization,比如数据复制,数据不一致的概率
3.making multiple passes over the same data 同数据源的操作优化
insert overwrite table sales
select * from history whereaction='purchased';
insert overwrite table credits
select * from history where action='returned';
from history
insert overwrite sales select *where action='purchased'
insert overwrite credits select *where action = 'returned'
4.the case for partitioning every table
为了避免job fail而使得数据被删除,在insert数据的时候可以使用table pardae table1partition(day=20120102).但是需要删除这个中间换转者partition
5.bucketing table data storage
当table没有明显的partition特征时,或是减轻filesystem的负担,可以使用bucketing,他的优点是不会随着增加数据使得文件个数变动,而且对于取样sample是很容易的,对于一些joins操作也比较便利。
create table weblog(user_idint,url string,source_ip string) partition by (dt string) clustered by(user_id) into 96 buckets;
为了生成正确个数的reducer对应hash出得bucket
在查询的时候设置 sethive.enforce.bucketing=true;
from raw_logs或是设置reduce数直接等于bucket数set mapred.reduce.tasks=96
insert overwrite table weblogpartition(dt='2009-02-25') select user_id,url,source_ip where dt='2009-02-25'
6.adding colums to a table
hive是没有格式化的数据仓库,随着数据需求可以增加一列,数据少于期待列数,则填补null,数据多于,则舍弃。
create table weblogs(versionlong,url string) partitioned by (hit_data int) row format delimited fieldsterminated by '\t'
加载数据,可以用int补上缺少的数据
load data local inpath 'log1.txt'int weblogs partition(20110101)
7.(almost)always use compression
1
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 项目进度计划文档

    项目进度计划文档

  • 软件开发阶段及软件进度表模板

    软件开发阶段及软件进度表模板,用于项目管理,项目控制

  • 文档进度汇报

    今天主要进行了需求文档的更新工作,对以前的文档进行了较大的改动,自己心里不是很有底,需要和大家尽心一下讨论。

  • html5 shive,hive schema详解

    schema设计hive pattern && hiveanti-pattern1.Table by day按照天分割数据,在relation中,这个参数不推荐,在hive中使用create table supply(id int,partstring,quantity int) partitioned by (int day)...

  • Hive Metastore详解大全

    1、何为Hive MetaStore?

  • hive架构详解

    hive是facebook开源,并捐献给了apache组织,作为apache组织的顶级项目(hive.apache.org)。 hive是一个基于大数据技术的数据仓库(DataWareHouse)技术,主要是通过将用户书写的SQL语句翻译成MapReduce代码,然后发布...

  • hive参数详解

    hive的配置:hive.ddl.output.format:hive的ddl语句的输出格式,默认是text,纯文本,还有json格式,这个是0.90以后才出的新配置;hive.exec.script.wrapper:hive调用脚本时的包装器,默认是null,如果设置为...

  • Hive优化详解

    Hive学习也有一段时间了,今天来对Hive进行一个总结,谈谈自己的理解,作者还是个小白,有不对的地方请大家指出相互学习,共同进步。今天来谈一谈什么是Hive,产生背景,优势等一系列问题。 什么是Hive 先来谈谈自己...

  • Hive详解

    1)hive简介Hive:由 Facebook 开源用于解决海量结构化日志的数据统计工具。Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件 映射为一张表,并提供类SQL 查询功能。

  • Hive原理详解

    (一) Hive基础1.1 背景• 引入原因: – 对存在HDFS上的文件或HBase中的表进行查询时,是要手工写一堆MapReduce代码 select word, count(*) from ( select explode(split(sentence, ' ')) as word from article) t...

  • Hive安装与配置详解

    Hive安装与配置详解 hive安装和配置 hive的测试 hive安装和配置 安装 一:下载hive——地址:http://mirror.bit.edu.cn/apache/hive/ 这里以hive-2.1.1为例子,如图: 将hive解压到/usr/local下: [root@s100 ...

  • Hive 分区详解

    在Hive中处理数据时,当处理的一张表的数据量过大的时候,每次查询都是遍历整张表,显然对于计算机来说,是负担比较重的。所以我们可不可以针对数据进行分类,查询时只遍历该分类中的数据,这样就能...

  • Hive安装详解

    1.Hive官网地址 http://hive.apache.org/ 2.文档查看地址 https://cwiki.apache.org/confluence/display/Hive/GettingStarted 3.下载地址 http://archive.apache.org/dist/hive/ 安装地址: ...

  • hive知识简单全面详解

    1、认识Hive  1.1 Hive是建立在Hadoop上的数据仓库工具,可以借助提取、转化、加载技术存储、查询和分析查询在Hadoop中的大规模数据。使得开发人员使用相对简单的SQL语句,就可以操作Hadoop 处理海量数据。   ...

  • Apache Hive详解

    hive详细介绍

  • hive ddl语法使用详解

    hive ddl语法使用

  • Hive desc详解

    转载自:http://www.cnblogs.com/wwxbi/p/4676605.htmlDescribe Database1234hive> DESCRIBE DATABASE ... hdfs://ns1/user/hive/warehouse/test.db wx USERhive> DESCRIBE DATABASE EXTENDE...

  • hive详解

    一、Hive简介 hive是什么? “赖人改变世界”,这是我一直坚信的理念。并不是提倡大家偷懒,而是要有赖人的思想,要想尽一切办法来减少自己的工作量,减少重复劳动力,提高生产效率。没有hive之前,作为程序猿需要对...

  • Hive基础调优详解

    一、基于Hadoop的数据仓库Hive基础知识 二、HiveSQL语法 三、Hive性能优化 四、Hive性能优化之数据倾斜专题 五、HiveSQL优化十二板斧 六、Hive面试题(一) 七、Hive/Hadoop高频面试点...

Global site tag (gtag.js) - Google Analytics