Datengenerierungsfunktionen¶
Mit Datengenerierungsfunktionen können Sie Daten generieren. Snowflake unterstützt zwei Arten von Datengenerierungsfunktionen:
Zufällig. Vor allem für Testzwecke verwendbar.
Diese Funktionen erzeugen jedes Mal einen zufälligen Wert. Jeder Wert ist unabhängig von den anderen Werten, die von anderen Aufrufen der Funktion generiert werden. Der zugrunde liegende Algorithmus erzeugt Pseudozufallswerte, und somit sind die Werte nicht wirklich zufällig oder unabhängig. Ohne Kenntnis des Algorithmus sind die Werte jedoch im Wesentlichen unvorhersehbar, normalerweise gleichmäßig verteilt (wenn die Stichprobengröße groß ist) und voneinander pseudo-unabhängig.
Kontrollierte Verteilung. Dies kann nützlich sein, um eindeutige ID-Zahlen für Datensätze bereitzustellen, die noch keine eindeutigen Bezeichner haben.
Diese Funktionen erzeugen Werte, die nicht unabhängig sind. Die Funktion NORMAL gibt beispielsweise Werte zurück, die eine annähernd „normale“ (glockenförmige) Verteilung haben, basierend auf einem angegebenen Mittelwert und einer Standardabweichung. Daher wird jeder neu generierte Wert zumindest indirekt durch zuvor generierte Werte beeinflusst, da die Funktion versucht, die angegebene Verteilung beizubehalten. Als weiteres Beispiel gibt die Funktionsfamilie SEQ eine Folge von Werten zurück.
Bemerkung
Die Funktion UNIFORM wird als kontrollierte Verteilungsfunktion aufgeführt, ist aber für das Generieren gleichmäßig verteilter Werte vorgesehen. Mit anderen Worten agiert sie wie eine „zufällige“ Funktion, aber wir bezeichnen sie dennoch als kontrollierte Verteilungsfunktion, da die Verteilung explizit angegeben wird und Sie eine Datengenerierungsfunktion auswählen können, die über einen große Stichprobengröße ungleichmäßige Werte erzeugt.
Unter diesem Thema:
Liste der Funktionen¶
Funktionsname |
Anmerkungen |
---|---|
Zufällig |
|
Gibt eine pseudozufällige 64-Bit-Ganzzahl zurück. |
|
Gibt eine zufällige Zeichenfolge angegebener Länge zurück. |
|
Gibt eine zufällige RFC 4122-kompatible UUID als formatierte Zeichenfolge zurück. |
|
Kontrollierte Verteilung |
|
Gibt eine normalverteilte Gleitkommazahl mit angegebenem Mittelwert und angegebener Standardabweichung zurück. |
|
Gibt eine einheitliche Zufallszahl innerhalb des angegebenen Bereichs zurück. |
|
Gibt eine Zipf-verteilte Ganzzahl zurück. |
|
Gibt eine Folge von monoton zunehmenden Ganzahlen zurück. |
Nutzungshinweise¶
Zufallsverteilungsfunktionen sind deterministisch.
Jede Zufallsverteilungsfunktion verwendet als letztes Argument den Generatorausdruck
gen
. Der Generatorausdruckgen
kann konstant oder variabel sein:Wenn konstant, dann ist das Ergebnis der Zufallsverteilungsfunktion konstant (es sei denn, es gibt andere, variable Argumente, die derzeit nur für die Funktion RANDSTR unterstützt werden).
Wenn variabel, dann ist das Ergebnis der Zufallsverteilungsfunktion variabel.
Generatorausdrücke müssen eine 64-Bit-Ganzzahl sein, obwohl implizite Konvertierungen erlaubt sind. Jeder Ausdruck, der in eine 64-Bit-Ganzzahl umgewandelt werden kann, kann als Generatorausdruck verwendet werden.
Die Zufälligkeit einer beliebigen Zufallsverteilungsfunktion ist direkt mit der Zufälligkeit ihres Generatorausdrucks verbunden. Für die meisten praktischen Zwecke ist die Datengenerierungsfunktion RANDOM die beste Wahl für zufällig generierte Ganzzahlenwerte.
Für Sequenzen, die durch Datengenerierungsfunktionen generiert werden, kann nicht garantiert werden, dass sie geordnet und lückenlos sind. Dies liegt daran, dass die Nummern parallel und unsynchronisiert generiert werden können.
Weitere Informationen zu Sequenzen in Snowflake finden Sie unter Verwenden von Sequenzen.