Étape 2. Interrogation de données¶
Dans cette section, vous explorez les instructions SELECT pour interroger les données JSON.
Récupérez
device_type
.SELECT src:device_type FROM raw_source;
La requête renvoie le résultat suivant :
+-----------------+ | SRC:DEVICE_TYPE | |-----------------| | "server" | +-----------------+
La requête utilise la notation
src:device_type
pour spécifier le nom de la colonne et le nom de l’élément JSON à récupérer. Cette notation est similaire à la notation familière SQLtable.column
. Snowflake vous permet de spécifier une sous-colonne à l’intérieur d’une colonne parent, que Snowflake dérive dynamiquement de la définition de schéma incorporée dans les données JSON. Pour plus d’informations, reportez-vous à Interrogation de données semi-structurées.Note
Le nom de la colonne n’est pas sensible à la casse, mais les noms des éléments JSON le sont.
Récupérez la valeur
device_type
sans les guillemets.La requête précédente renvoie la valeur des données JSON entre guillemets. Vous pouvez supprimer les guillemets en transformant les données en un type de données spécifique, dans cet exemple une chaîne.
Cette requête peut également attribuer un nom à la colonne en utilisant un alias.
SELECT src:device_type::string AS device_type FROM raw_source;
La requête renvoie le résultat suivant :
+-------------+ | DEVICE_TYPE | |-------------| | server | +-------------+
Récupérez les clés
f
répétitives imbriquées dans le tableau d’objets d’événements.Les données JSON d’exemple comprennent le tableau
events
. Chaque objet d’événement dans le tableau a le champf
comme indiqué.{ "device_type": "server", "events": [ { "f": 83, .. } { "f": 1000083, .. } ]}
Pour récupérer ces clés imbriquées, vous pouvez utiliser la fonction FLATTEN. La fonction aplatit les événements dans des lignes distinctes.
SELECT value:f::number FROM raw_source , LATERAL FLATTEN( INPUT => SRC:events );
La requête renvoie le résultat suivant :
+-----------------+ | VALUE:F::NUMBER | |-----------------| | 83 | | 1000083 | +-----------------+
Notez que
value
est une des colonnes que la fonction FLATTEN renvoie. L’étape suivante fournit plus de détails sur l’utilisation de la fonction FLATTEN.
Suivant : Étape 3. Aplatissement de données