分享

每天都要做动态分区插入的动作吗

mjjian0 发表于 2014-12-15 22:46:06 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 3 14505
本帖最后由 pig2 于 2014-12-16 00:49 编辑

我flume 采集到 hdfs上的数据格式:





ip                         date                status

10.0.2.137                2014-11-26        302
10.0.2.117                2014-11-26        200
10.0.2.146                2014-11-26        404


然后 对应有一张hive表:


merchant_center_data 字段类型

  ip:String
  date: String
status: String


我要怎么建分区 才能让当hdfs上 有数据时 hive自动以日期分区啊
我要重新建议张分区表吗?

已有(3)人评论

跳转到指定楼层
mjjian0 发表于 2014-12-15 22:55:08
我知道 有一种可以建一张分区表,然后用动态分区插入的方式去做,但是,如果过一天,hdfs又有新的数据,那不还要重新再来一次动态分区吗?有没有什么好的方法
回复

使用道具 举报

desehawk 发表于 2014-12-16 01:13:03

回帖奖励 +10 云币

mjjian0 发表于 2014-12-15 22:55
我知道 有一种可以建一张分区表,然后用动态分区插入的方式去做,但是,如果过一天,hdfs又有新的数据,那 ...
无论是动态,还是静态都是需要创建的

动态分区,它并不会自动创建分区

动态分区与静态分区还有一个细微的差别是,静态分区一 定会创建分区,不管SELECT语句的结果有没有数据。而动态分区,只有在SELECT结果的记录数>0的时候,才会创建分区。因此在不同的业务场景下,可能会选择不同的方案。

创建动态分区:
  1. set hive.exec.dynamic.partition=true;
  2. set hive.exec.dynamic.partition.mode=nostrick;
  3. INSERT OVERWRITE TABLE dw_stage.ds_info_msg partition(cal_dt)
  4. SELECT id   
  5. ,ip
  6.        ,date
  7.        ,status
  8. FROM   dw_stage.tiny_info_msg07;
复制代码




回复

使用道具 举报

hahaxixi 发表于 2014-12-16 09:32:40
动态分区不可以吗??
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条