我正在尝试在BigQuery中找到最佳的采样实践。我的数据集很大(11B行),但分布往往是倾斜的。到目前为止,我一直在探索这两个选项:
任何人都可以更多地了解那里正在发生的背景吗?
非常感谢, Gallory
答案 0 :(得分:6)
我的回答将适用于BigQuery Standard SQL。 RAND()函数生成FLOAT64类型的伪随机值,范围为[0,1),包括0和1的排除。使用它进行采样的方式类似于使用FARM_FINGERPRINT函数的方式,但是您不需要指定任何现有密钥。 RAND()提供均匀分布,因此如果某些列具有偏斜,则样本中预计会出现相同的偏斜。对表中10%的数据进行采样的示例:
SELECT * FROM Table WHERE RAND() < 0.1