Google bigquery RAND()在BigQuery中是如何工作的?

Google bigquery RAND()在BigQuery中是如何工作的?,google-bigquery,Google Bigquery,我试图在BigQuery中找到最佳的抽样实践。我的数据集相当大(11B行),但分布倾向于倾斜。到目前为止,我一直在探索这两种选择: 散列-在这里,我对某个值进行散列以选择样本。这是一种非常简单的方法,其背后的机制也很清楚。 我的问题是关于第二种选择: 使用RAND()函数。通过查看此处的BigQuery参考,我了解了如何使用它: 然而,我不知道这个函数到底是如何工作的 有没有人能对那里发生的背景情况多解释一下 非常感谢, 加洛里我的答案将适用于BigQuery。RAND()函数生成[0,1]范围

我试图在BigQuery中找到最佳的抽样实践。我的数据集相当大(11B行),但分布倾向于倾斜。到目前为止,我一直在探索这两种选择:

  • 散列-在这里,我对某个值进行散列以选择样本。这是一种非常简单的方法,其背后的机制也很清楚。 我的问题是关于第二种选择:
  • 使用RAND()函数。通过查看此处的BigQuery参考,我了解了如何使用它: 然而,我不知道这个函数到底是如何工作的
  • 有没有人能对那里发生的背景情况多解释一下

    非常感谢,
    加洛里

    我的答案将适用于BigQuery。RAND()函数生成[0,1]范围内FLOAT64类型的伪随机值,包括0,不包括1。使用它进行采样的方式与使用FARM_FINGERPRINT函数的方式类似,但不需要指定任何现有密钥。RAND()提供均匀分布,因此,如果某些列具有倾斜,则样本中预期会出现相同的倾斜。表中10%数据的采样示例:

    SELECT * FROM Table WHERE RAND() < 0.1
    
    从表中选择*,其中RAND()<0.1