将数据插入greenplum物理表

ckocjqey  于 2021-05-29  发布在  Hadoop
关注(0)|答案(3)|浏览(351)

我正在尝试将greenplum外部表中的数据插入到物理(或普通表)表中。外部表指向一个包含大约1.32亿数据的配置单元文件。但是,当我的外部表只显示6600万个计数时。结果,当插入到物理表中时,我只插入了6600万条记录。为什么会这样?是否与外部表的表属性有关?如果是,怎么办?

h7wcgrx3

h7wcgrx31#

终于!这个问题似乎已经解决了。我继续对此进行研究,问题似乎是w.r.t数据冗余(正如丹尼斯在前面的回答中所建议的)。该表有重复的值(在所有列上重复)。每个记录都有另外一组11个重复记录(在我的情况下这是可以接受的)。为了避免冗余,我又添加了一列,可以作为主键(自动生成的代理键)。现在,当我尝试从外部表加载greenplum物理表时,我可以看到所有1.32亿条插入的记录,没有任何问题。
然而,虽然我的问题已经解决了,但是为了更深入的分析,问题仍然是关于阈值(6600万条记录)。一个新问题将发布在这个网站上。

wgxvkvu9

wgxvkvu92#

当通过Hive计算时,你会看到6600万条记录。假设你只是做了一个 count(*) 这应该足够严厉了。
现在你不满意这一点,因为你有1.32亿'数据',恰好是两倍。
我不担心任何只允许加载前6600万条记录的设置,所以让我们看看可能的嫌疑犯。
两个“数据”(行?)对应一个记录。
数据中有一些奇怪的东西,当你把它作为一个表来计算时,它会让你错过一半的记录(也许是6600万行之后的中断,也许是奇怪的行尾)
实际上,您并没有加载所有的输入文件
仔细的检查应该让你找到真正的罪犯。如果你不知道从哪里开始:
查看文件中的第一行和最后几行,并将它们的完整内容与表中的第一行和最后几行记录进行比较
检查输出中是否表示每个输入文件中的行
如果确定缺少某些数据,请尝试推断输入文件中应缺少的行,并查看是否可以在表中找到它。

nnt7mjpx

nnt7mjpx3#

你的Hive表分区了吗

相关问题