hive分区表移动到另一个db

nzkunb0c  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(444)

我已经从hiveterminal创建了两个数据库db1和db2。
运行“usedb1”并创建了orc格式的表t1,该表的分区为年、月和日期,并加载了一些记录。
运行“usedb2”,在那里我使用ddl脚本创建了orc格式的表t2,它的结构与db1.t1相同。
我在db2.t2中插入了一些记录,以便在hdfs-hive仓库中为分区创建一些目录结构。
我运行了hadoop fs-cp/apps/hive/warehouse/db1.db/t1/*/apps/hive/warehouse/db2.db/t2
它复制了文件并在/apps/hi../db2.t2中构建剩余的目录结构。
问题是select count from db2.t2没有返回从db1.t1复制的最新记录。
有人能解释一下背后的原因吗?它适用于普通文本格式的表。
谢谢,
阿比

zbwhf8kr

zbwhf8kr1#

为了更快地获得记录计数之类的统计信息,hive现在从插入过程中更新的元数据中获取数据(唯一的例外是元数据没有填充计数)。如果要手动向配置单元表添加分区或文件,请确保运行如下所示的analyze命令。

analyze table t [partition p] compute statistics for [columns c,...];

另外,如果不是通过hive命令在外部手动添加分区,请运行repair table命令

MSCK REPAIR TABLE table_name;
or 
ALTER TABLE table_name RECOVER PARTITIONS;

相关问题