4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

BigQuery で簡単に再現性のあるランダムサンプリング

Last updated at Posted at 2023-12-14

本記事は ZOZO Advent Calendar 2023 シリーズ 7 の 15 日目の記事です。

結論

BigQuery で簡単に再現性のあるランダムサンプリングをしたい時は Legacy SQL を使う。

▼ 1% のデータをランダムサンプリングしたい時

#legacySQL
SELECT * FROM [bigquery-public-data.ml_datasets.penguins]
WHERE rand(42) < 0.01

▼ 20% のデータをランダムサンプリングしたい時

#legacySQL
SELECT * FROM [bigquery-public-data.ml_datasets.penguins]
WHERE rand(42) < 0.2

BigQuery では SQL の先頭で #legacySQL を宣言すると Legacy SQL を使用できます。
デフォルトで使用される Standard SQL では rand 関数に seed 値を指定できません。
一方で Legacy SQL では rand 関数に seed 値を与えられるため、簡単に再現性のあるランダムサンプリングができます。
なお Standard SQL と記法が異なる点に注意してください。

⚠️ 公式の推奨は Standard SQL なので場合に応じて以下の方法などと使い分けてください。

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?