HIVE的动态分区插入
2017-08-24 17:53
387 查看
一:以前版本的分区插入如下代码所示
为了插入到某一天按照国家分区,必须对分区的每一个country进行复制,麻烦
二;动态分区
在扫描输入数据的过程中动态地决定哪个分区该创建
好处是只有一条sql语句,所以只有一条mapreduce job 进行执行,所以可以显著提高性能
如下所示,country作为动态分区列,dt作为静态分区列
注意:仅允许动态分区列作为最后分区列,因为如果采用(dt,country= 'US')意味着你需要更新分区国家是US的所有日期的数据
尽量避免全部使用动态分区进行插入,防止发生分区的重写和覆盖,所以在使用动态分区的过程中尽量添加若干个惊天分区
FROM page_view_stg pvs INSERT OVERWRITE TABLE page_view PARTITION(dt='2008-06-08', country='US') SELECT pvs.viewTime, pvs.userid, pvs.page_url, pvs.referrer_url, null, null, pvs.ip WHERE pvs.country = 'US' INSERT OVERWRITE TABLE page_view PARTITION(dt='2008-06-08', country='CA') SELECT pvs.viewTime, pvs.userid, pvs.page_url, pvs.referrer_url, null, null, pvs.ip WHERE pvs.country = 'CA' INSERT OVERWRITE TABLE page_view PARTITION(dt='2008-06-08', country='UK') SELECT pvs.viewTime, pvs.userid, pvs.page_url, pvs.referrer_url, null, null, pvs.ip WHERE pvs.country = 'UK';
为了插入到某一天按照国家分区,必须对分区的每一个country进行复制,麻烦
二;动态分区
在扫描输入数据的过程中动态地决定哪个分区该创建
好处是只有一条sql语句,所以只有一条mapreduce job 进行执行,所以可以显著提高性能
如下所示,country作为动态分区列,dt作为静态分区列
FROM page_view_stg pvs INSERT OVERWRITE TABLE page_view PARTITION(dt='2008-06-08', country) SELECT pvs.viewTime, pvs.userid, pvs.page_url, pvs.referrer_url, null, null, pvs.ip, pvs.country
注意:仅允许动态分区列作为最后分区列,因为如果采用(dt,country= 'US')意味着你需要更新分区国家是US的所有日期的数据
尽量避免全部使用动态分区进行插入,防止发生分区的重写和覆盖,所以在使用动态分区的过程中尽量添加若干个惊天分区
相关文章推荐
- hive从查询中获取数据插入到表或动态分区
- Hive编程指南---动态分区插入
- hive从查询中获取数据插入到表或动态分区
- hive从查询中获取数据插入到表或动态分区
- hive从查询中获取数据插入到表或动态分区
- Hive动态分区与建表、插入数据操作
- hive动态分区插入实验
- hive向动态分区插入数据
- hive 分区partition表 创建 数据导入(动态分区插入、静态分区插入、动静态混合插入)
- hive从查询中获取数据插入到表或动态分区
- hive从查询中获取数据插入到表或动态分区
- hive从查询中获取数据插入到表或动态分区
- hive按当天日期建立分区表 | 动态往日期分区插入数据
- hive从查询中获取数据插入到表或动态分区
- HIVE动态分区插入数据
- hive从查询中获取数据插入到表或动态分区
- 大数据Hive的案例、参数、动态分区、分桶、视图、索引、运行方式、权限管理、Hive的优化_03_03
- hive中的动态分区和静态分区
- hive使用动态分区问题3
- 数据仓库(八)---hive的性能优化---hive动态分区