我试图从雅典娜那里获得N
行的随机样本。但是,由于我想从中抽取这个样本的表格是天真的
SELECT
id
FROM mytable
ORDER BY RANDOM()
LIMIT 100
需要永远运行,大概是因为ORDER BY
要求将所有数据发送到单个节点,然后对数据进行随机排序和排序。
我知道TABLESAMPLE
但是这样可以让人们抽取一定比例的行而不是一些行。有没有更好的方法呢?
答案 0 :(得分:9)
Athena实际上是Presto的幕后推手。您可以使用TABLESAMPLE获取表格的随机样本。
假设您想要10%的表格样本,您的查询将类似于:
SELECT id FROM mytable TABLESAMPLE BERNOULLI(10)
注意有BERNOULLI和SYSTEM采样。 Here是它的文档。