Używamy Netezzy IBM. Mamy tabelę, która codziennie otrzymuje prawie 10 miliardów rekordów, które musimy przetworzyć. Jedno z pól tabeli identyfikuje użytkownika poprzez 38-znakowy ciąg numeryczny, nazwijmy go UserID. Mamy tę tabelę dystrybuowaną na UserID. Szukam optymalnej techniki pobierania próbek. Obecnie próbkujemy przy użyciu mod(UserID,SamplingRate) = 0, ale ponieważ ta tabela jest dystrybuowana na identyfikatorze użytkownika, myślę, że z pewnością musi istnieć lepszy sposób.
W Hive mamy pojęcie segmentów, w których możemy podzielić nasze tabele na kilka segmentów, a następnie pobrać jeden z segmentów, co zapewnia dobrą wydajność.
Aktualizacja: próbkując dane, mam na myśli uzyskanie losowych 500 milionów rekordów o równomiernym rozmieszczeniu. Liczbę rekordów, które chcę uzyskać, można określić na podstawie mojej częstotliwości próbkowania. Typ danych UserID to numeryczny(38). (Java: BigDecimal)
datatype
poleuserID
? - person Niederee   schedule 08.02.2014