导航:首页 > 数据处理 > 如何推送数据到有分区的表

如何推送数据到有分区的表

发布时间:2023-07-26 10:09:24

㈠ Hive:分区表表结构和数据复制

摘要: Hive , Shell

Hive复制表包括两种

对于非分区表如果要完全复制一张表到另一张表,直接使用CREATE TABLE ... AS语句即可,比如以下复制一个表的两个字段以及字段的值到另一个表

对于分区表如果使用CREATE TABLE ... AS语句则分区失效,但是可以执行不报错,且字段和数据都能完全复制

以上有一张分区表,以dt字段作为桐瞎分区,使用CREATE TABLE ... AS进行全表复制

检查表结构和表数据量都没有问题

检查分区,报错此表不是分区表,is not a partitioned table,但是在表结构中确实存在本来的分区字段dt,此时dt字段的分区功能失效,但是数据保留住了

分区表的全称复制且带有分区的操作方法需要使用 LIKE 语句复制到分区信息,具体步骤如下

第一步复制得到一张空表,具有原表的表源态结构和分区信息

下一步使用hdfs命令操作将原表在hdfs的存储路径复制到新表的路径, 一张表的存储路径是一个目录,该目录下还存在子目录,每一个子目录代表一个分区,在分区目录下就是数据文件,数据文件是part开头格式,由Hive的分桶策略将同一分区下的数据进行划分

复制语句采用 * 通配符将原表目录下所有文件复制到新表路径下,查看新表的hdfs路径下数据文件

此时新表虽然对应数仓目录下有数据文件,但是在Hive客户端还是查不到数据为空表, 因为一个个数据分区不存在在新表的元数据中,数据是以分区目录为单位聚合的,新表目前查不到一雹轮源个分区则自然查不到数据

下一步修复表的分区元数据,使用 MSCK REPAIR TABLE 命令

由输出的执行过程可见MSCK REPAIR TABLE命令先检查了表的分区信息是否存在在元数据,然后对不存在的分区信息进行修复,修复后该表即可正常使用

MSCK REPAIR TABLE 的作用是 只需要只用这一个命令就可以 快速 , 自动化 地添加(修复)全部分区 ,在Hive中如果先建分区表,并且以数据拷贝到对应HDFS目录这种方式作为初始化,需要手动添加分区才能使用,如果分区过多,使用 ALTER TABLE ADD PARTITION 极为不变,下面做一下测试看ALTER TABLE ADD PARTITION是否也能完成分区表的完全复制

下一步采用手动添加1个分区dt=�'

验证了手动分区能够完成, MSCK REPAIR TABLE只是自动化的扫描一遍数仓目录下的分区信息(dt=�' 到 dt=�') ,如果编写一个Shell脚本也能实现如下

运行这个Shell脚本后能达到同样的效果,但是这个脚本执行了15分钟,需要频繁启动和关闭Hive进程

阅读全文

与如何推送数据到有分区的表相关的资料

热点内容
怎么代理多喜爱家纺产品 浏览:600
哪个公司pos机有代理功能 浏览:13
华为全球推广片传出的信息是什么 浏览:16
信息软件删除了怎么恢复苹果 浏览:740
保险代理压金怎么退 浏览:431
葆婴补钙产品怎么样 浏览:353
任丘二踢脚市场怎么样 浏览:366
房地产发布信息平台有哪些 浏览:649
固态储氢技术的原理是什么 浏览:786
小程序开发哪里有聚顶科技行 浏览:753
上海橱柜市场在哪里 浏览:290
暗黑2单机和战网哪个能装备交易 浏览:956
大数据更新后怎么样 浏览:592
怎么根据交易去查对应的日志 浏览:476
产品经理培训有哪些模型 浏览:546
海康北京总代理有哪些 浏览:115
哪个交易所有比特币模拟盘 浏览:290
企业财务代理记账费用多少 浏览:270
如何具备自己的交易系统 浏览:514
瓦特交易所怎么设置昵称 浏览:821