德鲁伊数据库的随机抽样

时间:2013-10-15 21:26:00

标签: r random dataset druid

我刚开始使用德鲁伊,特别是RDruid,因为我们的数据集很大,我想从数据库中提取一个较小的随机样本。

使用RDruid我有一个看起来像的查询:

res2 = druid.query.groupBy(
  url = druid.url("hostname", port=8080),
  dataSource   = "playback",
  intervals    = interval(
    fromISO("2013-09-20T00:00:00"),
    now()
  ),
  dimensions = list(dimension("platformInfo_deviceType"), dimension("isp")),
  granularity="hour",
  aggregations = list(
    sum(metric("streamStartCount"))
  )
)

我想让它在基础数据的随机部分上构建每小时/每分钟汇总。

这甚至可能吗?也许我可以尝试将一个随机的4位数字/字符串分配给基础数据记录,并应用一个仅使用匹配规则汇总记录的过滤器。

E.g。如果随机字符串是> 8888然后它将选择8889和9999之间的所有记录。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

 sample.big.n <- function(n, max) trunc(runif(n, max=max+1))

 sample.big.n(5, 1e9)
[1] 960118066 734686176 291924461 238165419 195301121
 sample.big.n(5, 1e9)
[1] 682097669 519657711 435974111 420722901 266094914
 sample.big.n(5, 1e9)
[1] 134806446 281796597 595062788 551378278 648440525

添加1到最大值以使最后一条记录与其余记录具有相同的机会。应该有runif的概率接近0(或至少不大于1e-16)返回间隔的终点。