?
我正在尝试从雅典娜获取N
行的随机样本。但是由于我想从中绘制此样本的表格很大,因此天真
SELECT
id
FROM mytable
ORDER BY RANDOM()
LIMIT 100
运行需要很长时间,大概是因为ORDER BY
要求将所有数据发送到单个节点,然后对数据进行随机排序。
我知道TABLESAMPLE
但这允许人们采样一定百分比的行而不是其中的一些行。有没有更好的方法
雅典娜实际上落后于普雷斯托。您可以使用 TABLESAMPLE 获取表的随机样本。
假设你想要 10% 的表样本,你的查询将是这样的:
SELECT id FROM mytable TABLESAMPLE BERNOULLI(10)
请注意,有伯努利和系统采样。这是它的文档。