0
我有一個好奇心。 我想知道蜂羣分區和多個表的區別。 我已經知道分區的目的是爲了減少查詢對象。 我在分區和多個表之間這是相同的。 有什麼區別?Hive分區vs多個表,有什麼區別?
我有一個好奇心。 我想知道蜂羣分區和多個表的區別。 我已經知道分區的目的是爲了減少查詢對象。 我在分區和多個表之間這是相同的。 有什麼區別?Hive分區vs多個表,有什麼區別?
分區和「並行」表非常相似。實際上,SQL Server具有使用"partitioned views"的分區實現,它將多個表合併到一個視圖中。分區表和多個表合併成一個表的差別既微妙又明顯,但歸結爲:表是表是表是表。
這有什麼影響?首先,用戶不需要知道分區就可以使用表格。對於存儲在多個表中的數據,用戶需要知道表名,因爲SQL需要FROM
子句中的名稱。
其次,數據庫引擎知道分區,但不一定是如何組合多個表。使用分區的查詢在WHERE
子句中選擇它們,而不是FROM
子句。理解數據結構的負擔從用戶轉移到編譯器。
還有其他的區別。分區通常具有相同的列和類型。分區通常具有相同的索引和集羣屬性。分區可以根據數據的內容動態添加。可以在不影響現有查詢的情況下添加和刪除分區。
我想你太年輕了,不知道Oracle在其8i版本(大約2000年)中引入了分區的時間。但是Hive中的基本原理完全相同:您可以在不鎖定整個表的情況下填充/截斷每個分區;您可以使用不同的選項壓縮舊數據和新數據;您不必關心查詢中的不同表名。等等。 –