雅典娜大小为N的随机样本

Roy*_*lTS 5 presto amazon-athena

我正试图N从雅典娜那里获得随机的行样本.但是,因为我想从中抽取这个样本的表格是天真的

SELECT
id
FROM mytable
ORDER BY RANDOM()
LIMIT 100
Run Code Online (Sandbox Code Playgroud)

需要永远运行,大概是因为ORDER BY需要将所有数据发送到单个节点,然后对数据进行混洗和排序.

我知道TABLESAMPLE但是这样可以让人们抽取一定比例的行而不是一些行.有没有更好的方法呢?

Ita*_*ana 14

雅典娜实际上是Presto的幕后推手.您可以使用TABLESAMPLE获取表格的随机样本.

让我们说你想要10%的表样本,你的查询将是这样的:

SELECT id FROM mytable TABLESAMPLE BERNOULLI(10)

注意有BERNOULLI和SYSTEM采样. 是它的文档.

  • Athena 仅支持“BERNOULLI”采样。控制台测试显示“TABLESAMPLE SYSTEM”是无操作的。 (2认同)