Étape 2. Interrogation de données

Interrogeons les données JSON dans la colonne SRC.

  1. 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 SQL table.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.

  2. 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, nous allons 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      |
    +-------------+
    
  3. 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