我们正在使用IBM的Netezza。我们有一张表格,每天有近100亿条记录,我们需要处理。表中的一个字段通过38个字符的数字字符串标识用户,让我们称它为UserID。我们在UserID上分发了这张桌子。我正在寻找一种最佳的取样技术。目前,我们使用mod(UserID,SamplingRate) =0进行示例,但是由于这个表是分布在UserID上的,所以我认为肯定有更好的方法。
在Hive中,我们有一个桶的概念,在这个概念中,我们可以将我们的表分成几个桶,然后取一个能够提供良好性能的桶。
更新:通过采样数据,我的意思是随机获得5亿条记录,且分布均匀。我想要得到的记录的数量可以根据我的抽样率来确定。UserID的数据类型为数值(38)。(Java: BigDecimal)
发布于 2015-05-26 02:20:51
一个简单的随机样本在哪里呢?这在规划中得到了解决,因此它应该能够顺利运行,到目前为止rand()有统一的分布:
SELECT * FROM BIGTABLE WHERE RAND()< SAMPLE_SIZE/BIGTABLE_TOTAL;https://stackoverflow.com/questions/21625277
复制相似问题