Étape 2. Interrogation de données¶
Interrogeons les données JSON dans la colonne SRC
.
Commencez par interroger le type d’appareil :
SELECT src:device_type FROM raw_source; +-----------------+ | SRC:DEVICE_TYPE | |-----------------| | "server" | +-----------------+
Où :
src
Le nom de colonne dans la table
RAW_SOURCE
.type_appareil
Un élément du schéma JSON.
- src:type_appareil
Notation indiquant quel élément de la colonne
SRC
choisir. Cette notation est similaire à la notation SQLtable.colonne
. Snowflake vous permet d’indiquer efficacement une colonne dans la colonne (c’est-à-dire une sous-colonne), qui est dérivée dynamiquement en fonction de la définition du schéma intégrée dans les données JSON.
Note
Le nom de colonne n’est pas sensible à la casse, mais les noms des éléments, ou clés, sont sensibles à la casse.
Pour supprimer les guillemets autour des données de votre sortie, convertissez les données comme un autre type de données. Dans ce cas, vous pouvez convertir la valeur en tant que chaîne.
En outre, vous pouvez donner un alias à la colonne, comme vous le feriez pour n’importe quelle colonne normale :
SELECT src:device_type::string AS device_type FROM raw_source; +-------------+ | DEVICE_TYPE | |-------------| | server | +-------------+
Vous pouvez interroger les valeurs clés imbriquées en aplatissant les valeurs.
Interrogeons la valeur de répétition
f
dans les données d’exemple. Cette valeur de répétition est imbriquée dans des objets d’événement :{ "device_type": "server", "events": [ { "f": 83, .. } { "f": 1000083, .. } ]}
L’instruction
SELECT
inclut la fonction FLATTEN :SELECT value:f::number FROM raw_source , LATERAL FLATTEN( INPUT => SRC:events ); +-----------------+ | VALUE:F::NUMBER | |-----------------| | 83 | | 1000083 | +-----------------+
Pour en savoir plus sur la fonction FLATTEN, passez à l’étape suivante.
Suivant : Étape 3. Aplatissement de données