2016-02-29 75 views
0

我想用HDFS中的国家代码和名称等静态数据创建表。我将使用csv将数据加载到系统中。我放弃表格和数据并不重要,因为这是您可以在Internet上轻松找到的信息。外部和内部表格性能之间的区别?

对于这种类型的数据,是否有任何关于外部/内部表的性能考虑?我应该坚持像这个post说的所有人一样的外部桌子吗?

+1

表现明智,应该没有区别。在帖子中,你链接的人指出了主要的区别 - 当你删除一个表,并且外部表不会删除数据,而内部表会。 –

回答

0

正如Stephen ODonnell在评论中指出的那样,内部/外部实际上更关注数据的位置和管理数据的位置。

我想说还有其他重要的性能因素需要考虑,例如表格格式和是否使用压缩。

以下是来自HDP的角度;对于Cloudera的一般的概念是相同的,但具体情况可能会有所不同。)

例如,您可以定义表中ORC格式,它提供了许多优化,如谓词下推,允许被在被添加到SQL处理层之前,要在存储层优化行。 More details就可以了。

另一种选择是您是否要指定压缩比如Snappy,这是一种平衡速度和压缩比的压缩算法(请参阅上面的ORC链接获取更多信息)。

一般来说,我对待HDFS数据作为源,并sqoop它变成蜂巢管理(内部)表与ORC格式并启用活泼的压缩。我发现,提供了任何ETL可以做到这个数据,而不用原始源数据方面在HDFS,因为它是sqoop期间复制到蜂巢额外的好处良好的性能。

这当然需要额外的空间,这可能是一个考虑因素,具体取决于您的环境和/或特定用例。

相关问题