Conditions préalables

Le tutoriel suppose les éléments suivants :

  • Vous disposez d’un compte Snowflake configuré pour utiliser Amazon AWS et d’un utilisateur avec un rôle qui accorde les privilèges nécessaires pour créer une base de données, des tables et des objets d’entrepôt virtuel.

  • Vous avez installé SnowSQL (CLI client).

Le tutoriel Snowflake en 20 minutes fournit les instructions étape par étape nécessaires pour répondre à ces exigences.

Snowflake fournit des fichiers de données d’exemple dans un compartiment S3 public à utiliser dans ce tutoriel. Mais avant de commencer, vous devez créer une base de données, des tables, un entrepôt virtuel et une zone de préparation externe pour ce tutoriel. Ce sont les objets Snowflake de base nécessaires pour la plupart des activités Snowflake.

Téléchargez le fichier de données d’exemple.

Pour ce tutoriel, vous utilisez les données d’application JSON d’exemple fournies dans un compartiment S3 public.

{
"device_type": "server",
"events": [
  {
    "f": 83,
    "rv": "15219.64,783.63,48674.48,84679.52,27499.78,2178.83,0.42,74900.19",
    "t": 1437560931139,
    "v": {
      "ACHZ": 42869,
      "ACV": 709489,
      "DCA": 232,
      "DCV": 62287,
      "ENJR": 2599,
      "ERRS": 205,
      "MXEC": 487,
      "TMPI": 9
    },
    "vd": 54,
    "z": 1437644222811
  },
  {
    "f": 1000083,
    "rv": "8070.52,54470.71,85331.27,9.10,70825.85,65191.82,46564.53,29422.22",
    "t": 1437036965027,
    "v": {
      "ACHZ": 6953,
      "ACV": 346795,
      "DCA": 250,
      "DCV": 46066,
      "ENJR": 9033,
      "ERRS": 615,
      "MXEC": 0,
      "TMPI": 112
    },
    "vd": 626,
    "z": 1437660796958
  }
],
"version": 2.6
}
Copy

Les données représentent des événements d’exemple que les applications chargent vers S3. Une variété de dispositifs et d’applications, tels que des serveurs, des téléphones portables et des navigateurs, publient des événements. Dans un scénario commun de collecte de données, un point de terminaison Web évolutif collecte des données POSTed de différentes sources, et les écrit dans un système de file d’attente. Un service/utilitaire d’ingestion écrit ensuite les données dans un compartiment S3 à partir duquel vous pouvez charger les données dans Snowflake.

Les données d’exemple illustrent les concepts suivants :

  • Les applications peuvent choisir de grouper les événements par lots. Un lot est un conteneur qui contient des informations d’en-tête communes à tous les événements du lot. Par exemple, le JSON précédent est un lot de deux événements ayant des informations d’en-tête communes : device_type et version qui ont généré ces événements.

  • Amazon S3 prend en charge l’utilisation du concept de dossiers pour organiser un compartiment. Les applications peuvent tirer parti de cette fonctionnalité pour partitionner des données d’événements. Les schémas de partitionnement identifient généralement des détails, tels que l’application ou l’emplacement qui a généré l’événement, ainsi qu’une date d’événement lorsqu’il a été écrit dans S3. Un tel schéma de partitionnement vous permet de copier n’importe quelle fraction des données partitionnées vers Snowflake avec une seule commande COPY. Par exemple, vous pouvez copier des données d’événements par heure, par données, par mois ou par année lorsque vous remplissez initialement les tables.

    Par exemple :

    s3://bucket_name/application_a/2016/07/01/11/

    s3://bucket_name/application_b/location_c/2016/07/01/14/

    Notez que application_a, application_b, location_c, etc., identifient les détails de la source de toutes les données dans le chemin. Les données peuvent être organisées en fonction de la date à laquelle elles ont été écrites. Un répertoire optionnel de 24 heures réduit la quantité de données dans chaque répertoire.

    Note

    S3 transmet une liste de répertoires avec chaque instruction COPY utilisée par Snowflake. Par conséquent, réduire le nombre de fichiers dans chaque répertoire améliore la performance de vos instructions COPY. Vous pouvez même envisager de créer des dossiers par incréments de 10 à 15 minutes par heure.

    Les données d’exemple fourni dans le compartiment S3 utilisent un schéma de partitionnement similaire. Dans une commande COPY, vous indiquerez un chemin de dossier spécifique pour copier les données d’événements.

Création de la base de données, de la table, de l’entrepôt et de la zone de préparation externe

Exécutez les instructions suivantes pour créer une base de données, une table, un entrepôt virtuel et une zone de préparation externe nécessaires pour ce tutoriel. Après avoir terminé le tutoriel, vous pouvez détruire ces objets.

CREATE OR REPLACE DATABASE mydatabase;

USE SCHEMA mydatabase.public;

CREATE OR REPLACE TABLE raw_source (
  SRC VARIANT);

CREATE OR REPLACE WAREHOUSE mywarehouse WITH
  WAREHOUSE_SIZE='X-SMALL'
  AUTO_SUSPEND = 120
  AUTO_RESUME = TRUE
  INITIALLY_SUSPENDED=TRUE;

USE WAREHOUSE mywarehouse;

CREATE OR REPLACE STAGE my_stage
  URL = 's3://snowflake-docs/tutorials/json';
Copy

Remarques :

  • L’instruction CREATE DATABASE crée une base de données. La base de données comprend automatiquement un schéma nommé « public ».

  • L’instruction USE SCHEMA spécifie une base de données et un schéma actifs pour la session utilisateur actuelle. Le fait de spécifier une base de données vous permet maintenant d’effectuer votre travail dans cette base de données sans avoir à fournir le nom chaque fois qu’il est demandé.

  • L’instruction CREATE TABLE crée une table cible pour les données JSON.

  • L’instruction CREATE WAREHOUSE crée un entrepôt initialement suspendu. L’instruction définit également AUTO_RESUME = true, qui démarre l’entrepôt automatiquement lorsque vous exécutez des instructions SQL qui nécessitent des ressources de calcul. L’instruction USE WAREHOUSE spécifie l’entrepôt que vous avez créé comme entrepôt actif pour la session utilisateur actuelle.

  • L’instruction CREATE STAGE crée une zone de préparation externe qui pointe vers le compartiment S3 contenant le fichier d’exemple pour ce tutoriel.

Suivant : Étape 1. Copie de données dans la table cible