Chargement de données structurées et semi-structurées

Architecture de Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Le flux de chargement

Flux de chargement montrant des fichiers allant vers le stage puis chargés dans Snowflake

  • Les fichiers arrivent dans le stage, exécutez COPY INTO pour les charger
Architecture de Snowflake

Qu’est-ce qu’un stage ?

Stage = emplacement de stockage temporaire

Schéma « Qu’est-ce qu’un stage » de Snowflake

Créer un stage interne

CREATE STAGE snowy_peak_stage;

Créer un stage externe

CREATE STAGE my_s3_stage
  STORAGE_INTEGRATION = s3_int
  URL = 's3://snowy-peak-data/raw/';
Architecture de Snowflake

Charger des données dans Snowflake

COPY INTO

  • Chargement en masse depuis un stage
  • Données structurées et semi-structurées
  • Scalable

INSERT

  • Idéal pour peu de lignes sans stage
  • Ajouts ponctuels ou petites modifications

Interface Snowsight

  • Utilisateurs non techniques et charges ad hoc rapides
Architecture de Snowflake

Inspection d’un stage avec LIST

snowflake_list_stage.png

Architecture de Snowflake

Charger des données structurées avec COPY INTO

Requête

CREATE OR REPLACE FILE FORMAT csv_format
  TYPE = CSV
  SKIP_HEADER = 1;

COPY INTO orders
FROM @snowy_peak_stage/orders.csv
FILE_FORMAT = (FORMAT_NAME = csv_format);
Architecture de Snowflake

Charger et interroger des données semi-structurées

Chargement

Le JSON se charge dans un type de colonne Snowflake spécial nommé VARIANT.

CREATE TABLE events (raw_event VARIANT);

COPY INTO events
FROM @snowy_peak_stage/events.json
FILE_FORMAT = (TYPE = JSON);

Interroger

Utilisez la notation par deux-points pour parcourir la structure JSON,

SELECT 
raw_event:user_id::STRING AS user_id,
raw_event:event_type::STRING 
AS event_type
FROM events;
Architecture de Snowflake

Chargement via l’interface

Capture d’écran de l’interface Snowflake

Architecture de Snowflake

Passons à la pratique !

Architecture de Snowflake

Preparing Video For Download...