雅典娜大小为N的随机样本
问题描述:
我试图从雅典娜获得N
行的随机样本。但是,因为从中我要提请此示例表是巨大的天真雅典娜大小为N的随机样本
SELECT
id
FROM mytable
ORDER BY RANDOM()
LIMIT 100
需要永远跑,大概是因为ORDER BY
需要被发送到一个节点,然后慢腾腾的所有数据和订单数据。
我知道TABLESAMPLE
,但它允许一个样本的一些百分比而不是一些数量的行。有没有更好的方法来做到这一点?
答
雅典娜其实是普雷斯托的后面。您可以使用TABLESAMPLE获取表格的随机样本。
比方说,你希望你的表的10%的样本,你的查询将是这样的:
SELECT id FROM mytable TABLESAMPLE BERNOULLI(10)
注重有伯努利和系统取样。 Here是它的文档。
你使用什么类型的连接器?在蜂巢连接器上,每当我运行一个简单的'SELECT * FROM t LIMIT 10'时,我都会得到稍微不同的行。它偏向于更新的数据,我假设因为不同的节点赢得每次返回结果的“种族”。你的样本需要多少公正? –