2016-03-08 39 views
0

我正在尋找將數據存儲到Hive中以在pas個月(〜100GB /天)上運行分析。基於字段的第一個字符的分區配置單元

我行包含看起來像一個日期(STRING)字段:2016-03-06T04:31:59.933012793 + 08:00

我想根據日期來劃分基於這個領域,但只有(2016 -03-06) - 我不在乎時區。有沒有辦法在不改變原始格式的情況下實現這一目標?

分區的原因是性能和能夠刪除舊的日子有一個滾動窗口的數據。

謝謝

+0

爲什麼您將日期存儲爲字符串而不是本機數據類型? –

+0

由於時間價值,據我所見,配置單元中沒有DATETIME字段。 –

+0

的確,你通常會使用'timestamp'。 –

回答

0

您可以通過插入帶動態分區的覆蓋表來實現此目的。

您可以在日期時間列上應用子字符串或regexp_extract函數,並以所需格式獲取值。 以下是我的示例查詢,其中通過在分區列上應用函數來加載分區表。

CREATE TABLE base2(id int, name String) 
PARTITIONED BY (state string); 

INSERT OVERWRITE TABLE base2 PARTITION (state) 
SELECT id, name, substring(state,0,1) 

這裏我正在應用一些轉換分區列。希望這可以幫助。 FROM base;

相關問題