Мы используем IBM Netezza. У нас есть таблица, которая ежедневно получает почти 10 миллиардов записей, которые нам нужно обработать. Одно из полей таблицы идентифицирует пользователя через 38-символьную цифровую строку, назовем ее UserID. У нас эта таблица распределена по UserID. Я ищу оптимальную технику выборки. В настоящее время мы сэмплируем, используя mod(UserID,SamplingRate) = 0, но поскольку эта таблица распределяется по UserID, я думаю, что наверняка должен быть лучший способ.
В Hive у нас есть понятие сегментов, где мы можем разделить наши таблицы на несколько сегментов, а затем получить один из сегментов, что дает хорошую производительность.
Обновление: под выборкой данных я подразумеваю получение случайным образом 500 миллионов записей с равномерным распределением. Количество записей, которые я хочу получить, можно определить на основе моей частоты дискретизации. Тип данных для UserID — числовой (38). (Java: BigDecimal)
datatype
является полемuserID
? - person Niederee   schedule 08.02.2014