Schritt 2: Daten abfragen¶
Im Folgenden sollen die JSON-Daten in der Spalte SRC
abgefragt werden.
Beginnen Sie mit der Abfrage des Gerätetyps:
SELECT src:device_type FROM raw_source; +-----------------+ | SRC:DEVICE_TYPE | |-----------------| | "server" | +-----------------+
Wobei:
Quelle
Der Spaltenname in der Tabelle
RAW_SOURCE
.Gerätetyp
Ein Element im JSON-Schema.
- src:Gerätetyp
Notation, die angibt, welches Element in der Spalte
SRC
ausgewählt werden soll. Diese Notation ähnelt der bekannten SQL-NotationTabelle.Spalte
. Snowflake ermöglicht es Ihnen, eine Spalte innerhalb der Spalte (d. h. eine Unterspalte) effektiv zu spezifizieren, die dynamisch auf Basis der in die JSON-Daten eingebetteten Schemadefinition abgeleitet wird.
Bemerkung
Der Spaltenname unterscheidet nicht zwischen Groß- und Kleinschreibung, aber bei den Elementnamen oder Schlüsseln ist die Groß-/Kleinschreibung relevant.
Die Anführungszeichen, die in der Ausgabe um die Daten gesetzt sind, lassen sich durch Verwenden eines anderen Datentyps beseitigen. In diesem Fall werden wir den Wert als Zeichenfolge ausgeben.
Gleichzeitig können Sie der Spalte wie jeder normalen Spalte einen Alias geben:
SELECT src:device_type::string AS device_type FROM raw_source; +-------------+ | DEVICE_TYPE | |-------------| | server | +-------------+
Sie können verschachtelte Schlüsselwerte abfragen, indem Sie die Werte vereinfachen.
Lassen Sie uns den sich wiederholenden
f
-Wert in den Beispieldaten abfragen. Dieser sich wiederholende Wert ist in Ereignisobjekten geschachtelt:{ "device_type": "server", "events": [ { "f": 83, .. } { "f": 1000083, .. } ]}
Die
SELECT
-Anweisung beinhaltet die FLATTEN-Funktion:SELECT value:f::number FROM raw_source , LATERAL FLATTEN( INPUT => SRC:events ); +-----------------+ | VALUE:F::NUMBER | |-----------------| | 83 | | 1000083 | +-----------------+
Erfahren Sie im nächsten Schritt mehr über die FLATTEN-Funktion.
Nächstes Thema: Schritt 3: Daten vereinfachen