2016-02-29 39 views
0

我想用HDFS中的國家代碼和名稱等靜態數據創建表。我將使用csv將數據加載到系統中。我放棄表格和數據並不重要,因爲這是您可以在Internet上輕鬆找到的信息。外部和內部表格性能之間的區別?

對於這種類型的數據,是否有任何關於外部/內部表的性能考慮?我應該堅持像這個post說的所有人一樣的外部桌子嗎?

+1

表現明智,應該沒有區別。在帖子中,你鏈接的人指出了主要的區別 - 當你刪除一個表,並且外部表不會刪除數據,而內部表會。 –

回答

0

正如Stephen ODonnell在評論中指出的那樣,內部/外部實際上更關注數據的位置和管理數據的位置。

我想說還有其他重要的性能因素需要考慮,例如表格格式和是否使用壓縮。

以下是來自HDP的角度;對於Cloudera的一般的概念是相同的,但具體情況可能會有所不同。)

例如,您可以定義表中ORC格式,它提供了許多優化,如謂詞下推,允許被在被添加到SQL處理層之前,要在存儲層優化行。 More details就可以了。

另一種選擇是您是否要指定壓縮比如Snappy,這是一種平衡速度和壓縮比的壓縮算法(請參閱上面的ORC鏈接獲取更多信息)。

一般來說,我對待HDFS數據作爲源,並sqoop它變成蜂巢管理(內部)表與ORC格式並啓用活潑的壓縮。我發現,提供了任何ETL可以做到這個數據,而不用原始源數據方面在HDFS,因爲它是sqoop期間複製到蜂巢額外的好處良好的性能。

這當然需要額外的空間,這可能是一個考慮因素,具體取決於您的環境和/或特定用例。

相關問題