2014-02-07 51 views
1

我們正在使用IBM的Netezza。我們有一張桌子,每天有近100億條記錄需要處理。表中的一個字段通過38個字符的數字字符串標識用戶,我們稱之爲UserID。我們有這張表分佈在UserID上。我正在尋找最佳的抽樣技術。目前,我們使用mod(UserID,SamplingRate)= 0進行了示例,但由於此表分佈在UserID上,因此我認爲肯定有更好的方法。Netezza /大型數據庫的採樣數據技術

在Hive中,我們有桶的概念,在這裏我們可以將我們的表分成一些桶,然後完全取出桶中的一個,從而獲得良好的性能。

更新: 通過抽樣數據,我的意思是隨機獲得5億份均勻分佈的記錄。我想獲得的記錄數可以根據我的採樣率來確定。 UserID的數據類型是數字(38)。 (Java:BigDecimal)

+0

你是什麼意思的抽樣?你只是想要一個100億記錄的隨機子集? – Niederee

+0

什麼'datatype'是'userID'字段? – Niederee

+0

用更多信息更新了描述。 –

回答

0

怎麼樣在一個簡單的隨機樣本條件?在計劃中解決,所以它應該平穩運行,到目前爲止rand()具有均勻分佈:

SELECT * FROM BIGTABLE WHERE RAND()< SAMPLE_SIZE/BIGTABLE_TOTAL;