データ生成関数¶
データ生成関数を使用すると、データを生成できます。Snowflakeは、2種類のデータ生成機能をサポートしています。
ランダムは、テスト目的に役立ちます。
これらの関数は、毎回ランダムな値を生成します。各値は、関数への他の呼び出しによって生成される他の値から独立しています。基礎となるアルゴリズムは疑似ランダム値を生成するため、値は真にランダムまたは独立ではありませんが、アルゴリズムを知らないと、値は本質的に予測不能であり、通常は均等に分布され(サンプルサイズが大きい場合)、それぞれに疑似独立となります。
制御された分布は、一意の識別子を持たないレコードに一意の ID 番号を提供するのに役立ちます。
これらの関数は、独立していない値を生成します。たとえば、 NORMAL 関数は、指定された平均と標準偏差に基づいて、ほぼ「正規の」(ベル形)の分布を持つ値を返します。したがって、関数は指定された分布を維持しようとするため、生成される新しい各値は、少なくとも間接的に以前に生成された値の影響を受けます。別の例として、関数の SEQ ファミリーは値のシーケンスを返します。
注釈
UNIFORM 関数は制御分布関数としてリストされていますが、均等に分布した値を生成することを目的としています。言い換えると、「ランダム」関数のように機能しますが、分布が明示的に指定されているため、大規模なサンプルサイズわたって不均一な値を生成するデータ生成関数を選択できることから制御分布関数と呼びます。
このトピックの内容:
関数のリスト¶
関数名 |
注意 |
---|---|
ランダム |
|
擬似ランダム64ビット整数を返します。 |
|
指定された長さのランダムな文字列を返します。 |
|
ランダムな RFC 4122準拠の UUID をフォーマットされた文字列として返します。 |
|
制御分布 |
|
指定された平均と標準偏差で、正規分布の浮動小数点数を返します。 |
|
指定された範囲内で均一にランダムな数を返します。 |
|
Zipf分布整数を返します。 |
|
単調に増加する整数のシーケンスを返します。 |
使用上の注意¶
ランダム分布関数は確定的です。
各ランダム分布関数は、最後の引数としてジェネレーター式
gen
を取ります。ジェネレーター式gen
は、定数または変数にすることができます。定数の場合、ランダム分布関数の結果は定数になります(他に RANDSTR 関数でのみサポートされている変数引数がない場合に限る)。
変数の場合、ランダム分布関数の結果は変数です。
ジェネレーター式は64ビット整数型でなければなりませんが、暗黙的な変換は許可されます。64ビット整数に変換できる式はすべて、ジェネレーター式として使用できます。
ランダム分布関数のランダム性は、ジェネレーター式のランダム性に直接リンクしています。最も実用的な目的の場合、ランダムに生成された整数値には RANDOM データ生成関数が最適です。
データ生成関数によって生成されたシーケンスは、順序通りであることやギャップがないことは保証されません。これは、番号が並列かつ非同期に生成される可能性があるためです。
Snowflakeのシーケンスの詳細については、 シーケンスの使用 をご参照ください。