Maintenant que nous vous avons détaillé comment choisir votre data warehouse dans le cloud nous vous proposons la découverte de quelques unes du marché:
Vous pouvez revenir aux critères de sélection des data warehouse dans le cloud.
Nous avons voulu tester nous-même ces data warehouses pour nous en faire notre propre idée.
Étant habitués aux entrepôts de données et aux bases de données en général nous voulions surtout nous rendre compte à quel point il était simple de se lancer dans un projet.
En guise d’introduction
Fondé en 2012, Snowflake a été conçu par une équipe dirigée par d’anciens architectes Oracle pour fournir de l’analytique dans le cloud. La solution a été construite de zéro. Contrairement à certains autres fournisseurs ayant migré des solutions “on premise” vers le cloud, Snowflake a pu présenter des solutions architecturales assez novatrices et exploiter les avantages potentiels d’un système bâti nativement pour le cloud.
Déployé en tant que solution multi-cluster avec une séparation complète du calcul et du stockage, Snowflake fournit une solution qui exécute des traitements complètement indépendantes sur une infrastructure partagée sans conflit, et passe à l’échelle avec une grande flexibilité.
Scénario de prise en main
Nous avons poussé des données dans AWS S3, créé une table alimentée par des fichiers issues de ces données et exécuté des requêtes.
Création de la table
create table public.trips_csv (
trip_id NUMBER AUTOINCREMENT,
vendor_id VARCHAR(3),
pickup_datetime TIMESTAMP,
dropoff_datetime TIMESTAMP,
passenger_count SMALLINT,
trip_distance DECIMAL(6,3),
pickup_longitude DECIMAL(18,14),
pickup_latitude DECIMAL(18,14),
rate_code SMALLINT,
store_and_fwd_flag VARCHAR(1),
dropoff_longitude DECIMAL(18,14),
dropoff_latitude DECIMAL(18,14),
payment_type VARCHAR(3),
fare_amount DECIMAL(6,2),
surcharge DECIMAL(6,2),
mta_tax DECIMAL(6,2),
tip_amount DECIMAL(6,2),
tolls_amount DECIMAL(6,2),
total_amount DECIMAL(6,2)
) ;
Une telle requête SQL est largement maîtrisée de tous. C’est là où Snowflake a misé sur ce langage : pour piloter Snowflake juste besoin de SQL.
Chargement des données
copy into public.trips_csv (vendor_id,pickup_datetime,dropoff_datetime,passenger_count,trip_distance,pickup_longitude,pickup_latitude,rate_code,store_and_fwd_flag,dropoff_longitude,dropoff_latitude,payment_type,fare_amount,surcharge,mta_tax,tip_amount,tolls_amount,total_amount)
from 's3://<>/csv/yellow_tripdata_2012-10.csv' credentials=(
AWS_KEY_ID= '<>'
AWS_SECRET_KEY= '<>'
)
file_format = (
TYPE = csv
RECORD_DELIMITER = '\n',
FIELD_DELIMITER= ','
FIELD_OPTIONALLY_ENCLOSED_BY = '"',
SKIP_HEADER = 2,
EMPTY_FIELD_AS_NULL = TRUE,
ERROR_ON_COLUMN_COUNT_MISMATCH=false
VALIDATE_UTF8= false
);
Comme vous pouvez le constater, charger des données dans un data warehouse Snowflake est très simple, si la donnée est présente dans un stockage distribué c’est très simple… Avec votre solution ETL vous pourrez aussi charger vos données.
Exécution des requêtes
Vous pouvez noter que lors de l’exécution de la requête, on peut choisir le data warehouse (c’est-à-dire le cluster d’exécution) que l’on souhaite employer ! C’est vraiment formidable car on peut passer d’un environnement à un autre. Ici, vous pouvez utiliser un cluster pour un échantillon, ou un cluster bien plus important pour traverser toutes vos données.
Bonus
Changer la taille de son data warehouse simple comme une requête SQL :
ALTER WAREHOUSE "ETL_WH" SET WAREHOUSE_SIZE = 'XLARGE' AUTO_SUSPEND = 5 MIN_CLUSTER_COUNT = 1 MAX_CLUSTER_COUNT = 3 SCALING_POLICY = 'STANDARD';
Avec une pareille requête et en fonction du volume de données à parcourir, et en s’appuyant sur l’API, on peut même imaginer des scénarios où l’on fait grandir son cluster à la volée spécialement pour telle ou telle requête.
Ce qui est impressionnant, c’est l’écosystème qui s’est bâti autour de Snowflake en un rien de temps.
Appréciation générale
Snowflake a été conçu pour être facile à utiliser et élimine le besoin d’administrateurs de base de données hautement qualifiée. Les développeurs et architectes se concentrent donc sur la conception et le développement fonctionnel et ne passent pas leur temps à tuner.
Quand bien même la sécurité est pensée pour s’inscrire dans l’écosystème des fournisseurs d’infrastructure cloud.
Malgré son large écosystème de partenaires, Snowflake manquera de solutions à portée de clics comme GCP, Azure, AWS pourront l’offrir !