我已经从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复制的最新记录。
有人能解释一下背后的原因吗?它适用于普通文本格式的表。
谢谢,
阿比
1条答案
按热度按时间zbwhf8kr1#
为了更快地获得记录计数之类的统计信息,hive现在从插入过程中更新的元数据中获取数据(唯一的例外是元数据没有填充计数)。如果要手动向配置单元表添加分区或文件,请确保运行如下所示的analyze命令。
另外,如果不是通过hive命令在外部手动添加分区,请运行repair table命令