数据生成函数

数据生成函数允许您生成数据。Snowflake 支持两种类型的数据生成函数:

  • 随机型,这对于测试目的很有用。

    这些函数每次都会生成一个随机值。每个值都独立于由函数的其他调用所生成的其他值。底层算法产生伪随机值,因此这些值不是真正随机或独立的,但在不了解算法的情况下,这些值基本上是不可预测的,通常是均匀分布的(如果样本量很大),并且彼此伪独立。

  • 受控分布型,可用于为尚不具有唯一标识符的记录提供唯一 ID 编号。

    这些函数生成的值并非独立的。例如,NORMAL 函数返回的值具有基于指定均值和标准差的近似“正态”(钟形)分布。因此,当函数尝试保持指定的分布时,生成的每个新值至少都会间接受到先前生成值的影响。再举一个例子,SEQ 函数族返回一系列值。

备注

UNIFORM 函数被列为受控分布函数,但旨在生成均匀分布的值。换句话说,它就像一个“随机”函数,但我们将其称为受控分布函数,因为分布是显式指定的,并且因为您可以选择在大样本量上生成非均匀值的数据生成函数。

本主题内容:

函数列表

函数名称

备注

随机

返回伪随机 64 位整型。

返回指定长度的随机字符串。

返回一个随机 RFC 4122 兼容的 UUID,作为格式化字符串。

受控分布

返回一个正态分布的浮点数,并指定均值和标准差。

返回指定范围内均匀分布的随机数。

返回一个 Zipf 分布的整型。

返回单调递增的整数序列。

使用说明

  • 随机分布函数是确定性的。

  • 每个随机分布函数都采用一个生成器表达式 gen,作为其最后一个实参。生成器表达式 gen 可以是常量或变量:

    • 如果是常量,则随机分布函数的结果为常量(除非存在其他变量实参,该实参目前仅支持 RANDSTR 函数)。

    • 如果是变量,则随机分布函数的结果为变量。

  • 生成器表达式必须是 64 位整型类型,但允许隐式转换。任何可以转换为 64 位整型的表达式都可以用作生成器表达式。

  • 任何随机分布函数的随机性都与其生成器表达式的随机性直接相关。出于大多数实际目的,RANDOM 数据生成函数是随机生成的整型值的最佳选择。

  • 不能保证数据生成函数生成的序列是有序和无间隙的。这是因为这些数字可能以非同步的方式并行生成。

    有关 Snowflake 中的序列的更多详细信息,请参阅 使用序列

语言: 中文