Présentation

Bienvenue dans ce guide Quickstart Tasty Bytes Débuter avec Snowflake sur la collaboration ! Dans ce guide, nous allons vous montrer comment vous pouvez enrichir vos données internes avec des données météorologiques tierces via la Marketplace Snowflake. La Marketplace Snowflake vous permet de trouver, d'essayer et d'acheter des applications et données tierces, sans avoir à configurer d'ETL, de pipelines de données ou d'intégrations.

Conditions préalables

Vous allez apprendre :

Vous allez :

Présentation

Dans ce guide Quickstart, vous allez suivre une histoire de Tasty Bytes via une feuille de calcul SQL Snowsight. Cette page, qui fait office de guide étape par étape, comprend également des commentaires, des images et des liens vers de la documentation.

Cette section vous explique comment vous connecter à Snowflake, comment créer une nouvelle feuille de calcul et la renommer, mais aussi comment copier le fichier SQL que nous allons utiliser dans ce guide Quickstart depuis GitHub et le coller.

Étape 1 – Accéder à Snowflake via une URL

Étape 2 – Se connecter à Snowflake

Étape 3 – Accéder aux feuilles de calcul

Étape 4 – Créer une feuille de calcul

Étape 5 – Renommer une feuille de calcul

Étape 6 – Accéder au fichier SQL de ce guide Quickstart dans GitHub

tb_zts_collaboration.sql

Étape 7 – Copier le fichier de configuration SQL depuis GitHub

Étape 8 – Coller le fichier de configuration SQL depuis GitHub dans une feuille de calcul Snowflake

Étape 9 – Cliquer sur Next (Suivant) –>

Présentation

Après analyse des données de cette année par rapport à celles de l'année dernière, les analystes financiers de Tasty Bytes nous ont fait savoir que certains jours, dans plusieurs villes, leurs camionnettes n'enregistraient aucune vente et qu'ils n'y voyaient aucune explication. Ils nous ont donné l'exemple de la ville de Hambourg, en Allemagne, en février 2022.

Étape 1 – Interroger les données des points de ventes pour identifier des tendances

Commençons par exécuter trois requêtes pour définir le contexte de notre rôle et de notre entrepôt sur tasty_data_engineer et tasty_de_wh. Une fois le contexte défini, nous interrogerons notre vue d'analyse orders_v pour fournir un jeu de résultats des ventes pour la ville de Hambourg, en Allemagne, en 2022.

USE ROLE tasty_data_engineer; 
USE WAREHOUSE tasty_de_wh;

SELECT 
    o.date, 
    SUM(o.price) AS daily_sales 
FROM frostbyte_tasty_bytes.analytics.orders_v o 
WHERE 1=1 
    AND o.country = 'Germany' 
    AND o.primary_city = 'Hamburg' 
    AND DATE(o.order_ts) BETWEEN '2022-02-10' AND '2022-02-28' 
GROUP BY o.date 
ORDER BY o.date ASC; 

Selon ce que nous observons ci-dessus, nous sommes d'accord avec les analystes pour dire qu'il manque les chiffres des ventes quotidiennes de certains jours du mois de février, ce qui prouve qu'ils ont bien repéré une anomalie. Voyons si nous pouvons en découvrir les raisons dans la section suivante.

Étape 2 – Cliquer sur Next (Suivant) –>

Présentation

D'après ce que nous avons vu dans la section précédente, il semble qu'il manque les chiffres des ventes du 16 au 21 février pour la ville de Hambourg, en Allemagne. Il n'y a pas grand-chose de plus dans nos données internes que nous pouvons utiliser pour y voir plus clair, mais il doit bien y avoir une explication.

En exploitant la Marketplace Snowflake, nous pouvons immédiatement vérifier les conditions météorologiques extrêmes en consultant l'annonce publique gratuite de Weather Source.

Étape 1 – Se procurer les données Weather Source LLC: frostbyte sur la Marketplace Snowflake

La Marketplace Snowflake vous permet de trouver, d'essayer et d'acheter les applications et données dont vous avez besoin pour créer des solutions professionnelles innovantes. Dans cette étape, nous allons accéder à l'annonce Weather Source LLC: frostbyte pour analyser plus en détail le recul de nos ventes à Hambourg.

Depuis votre compte Snowflake, suivez les étapes et la vidéo ci-dessous pour acquérir les données de cette annonce.

Étape 2 – Harmoniser des données internes et tierces

Une fois la base de données partagée frostbyte_weathersource en place, exécutez la requête suivante pour créer une vue harmonized.daily_weather_v associant les deux tables Weather Source et notre table sur les pays et les villes dans lesquels opèrent les food trucks de Tasty Bytes.

CREATE OR REPLACE VIEW frostbyte_tasty_bytes.harmonized.daily_weather_v
    AS
SELECT 
    hd.*,
    TO_VARCHAR(hd.date_valid_std, 'YYYY-MM') AS yyyy_mm,
    pc.city_name AS city,
    c.country AS country_desc
FROM frostbyte_weathersource.onpoint_id.history_day hd
JOIN frostbyte_weathersource.onpoint_id.postal_codes pc
    ON pc.postal_code = hd.postal_code
    AND pc.country = hd.country
JOIN frostbyte_tasty_bytes.raw_pos.country c
    ON c.iso_country = hd.country
    AND c.city = hd.city_name;

Comme nous le voyons dans la définition de la vue ci-dessus, nous associons deux des tables frostbyte_weathersource dans le schéma onpoint_id, puis nous les harmonisons avec la table country de notre base de données frostbyte_tasty_bytes et notre schéma raw_pos.

Nous trouvons généralement ce type d'opération dans la couche harmonisée (également appelée zone Silver).

Étape 3 – Visualiser les températures quotidiennes

Avec la vue daily_weather_v de notre schéma harmonisé en place, jetons un œil à la température quotidienne moyenne à Hambourg en février 2022 en exécutant la requête suivante.

Nous allons aussi exploiter les fonctions AVG, YEAR et MONTH.

SELECT 
    dw.country_desc,
    dw.city_name,
    dw.date_valid_std,
    AVG(dw.avg_temperature_air_2m_f) AS avg_temperature_air_2m_f
FROM frostbyte_tasty_bytes.harmonized.daily_weather_v dw
WHERE 1=1
    AND dw.country_desc = 'Germany'
    AND dw.city_name = 'Hamburg'
    AND YEAR(date_valid_std) = '2022'
    AND MONTH(date_valid_std) = '2'
GROUP BY dw.country_desc, dw.city_name, dw.date_valid_std
ORDER BY dw.date_valid_std DESC;

Pour étudier plus en détail les tendances, utilisons des graphiques Snowsight pour créer un graphique linéaire de la température moyenne au fil du temps.

Selon ce que nous avons vu avant, il n'existe aucune raison évidente qui explique les jours sans vente de nos camionnettes. Voyons quelle raison nous pouvons trouver pour expliquer cette situation dans la section suivante.

Étape 4 – Rassembler les données sur le vent

Comme nous l'avons vu à l'étape précédente, la température quotidienne moyenne ne semble pas être la raison de nos jours sans vente à Hambourg. Heureusement, Weather Source fournit d'autres indicateurs météorologiques sur lesquels nous pouvons également nous pencher.

Exécutez la requête suivante qui va exploiter notre vue harmonisée pour rassembler des indicateurs relatifs au vent. Cette requête va utiliser la fonction MAX.

SELECT 
    dw.country_desc,
    dw.city_name,
    dw.date_valid_std,
    MAX(dw.max_wind_speed_100m_mph) AS max_wind_speed_100m_mph
FROM frostbyte_tasty_bytes.harmonized.daily_weather_v dw
WHERE 1=1
    AND dw.country_desc IN ('Germany')
    AND dw.city_name = 'Hamburg'
    AND YEAR(date_valid_std) = '2022'
    AND MONTH(date_valid_std) = '2'
GROUP BY dw.country_desc, dw.city_name, dw.date_valid_std
ORDER BY dw.date_valid_std DESC;

De nouveau, il se peut qu'un graphique Snowsight soit plus efficace pour dégager les tendances de ce type de données. Suivez les flèches figurant sur les captures d'écran ci-dessous pour passer de l'onglet Results (Résultats) à l'onglet Charts (Graphiques).

Ah ! Les jours où nous n'avons enregistré aucune vente, la ville a connu des vents de force ouragan. Cette information peut expliquer pourquoi nos camionnettes n'ont rien vendu ces jours-là. Toutefois, étant donné que nous avons effectué cette analyse dans la vue harmonisée, mettons ces informations à disposition dans la vue d'analyse afin que nos analystes puissent y accéder eux-mêmes.

Étape 5 – Cliquer sur Next (Suivant) –>

Présentation

Nous avons déterminé que des vents de force ouragan ont probablement exercé une influence sur les jours sans vente, une tendance dont nos analystes financiers nous ont fait part.

Mettons désormais ce type de recherche à disposition de l'ensemble des membres de notre organisation en déployant une vue d'analyse à laquelle tous les employés de Tasty Bytes pourront accéder.

Étape 1 – Créer des fonctions SQL

En tant qu'entreprise internationale, commençons par créer deux fonctions SQL pour convertir les degrés Fahrenheit en degrés Celsius et les pouces en millimètres.

Exécutez les deux requêtes de cette étape l'une après l'autre pour créer nos fonctions fahrenheit_to_celsius et inch_to_millimeter, qui utilisent la commande CREATE FUNCTION.

CREATE OR REPLACE FUNCTION frostbyte_tasty_bytes.analytics.fahrenheit_to_celsius(temp_f NUMBER(35,4))
RETURNS NUMBER(35,4)
AS
$$
    (temp_f - 32) * (5/9)
$$;

CREATE OR REPLACE FUNCTION frostbyte_tasty_bytes.analytics.inch_to_millimeter(inch NUMBER(35,4))
RETURNS NUMBER(35,4)
    AS
$$
    inch * 25.4
$$;

Étape 2 – Créer une fonction SQL pour une vue

Avant de déployer notre vue d'analyse, créons la fonction SQL que nous allons utiliser dans celle-ci pour combiner les données relatives aux ventes quotidiennes et les données météorologiques, mais exploitons aussi nos fonctions de conversion SQL.

Exécutez la requête suivante qui filtre la ville de Hambourg, en Allemagne, et qui exploite des fonctions que nous n'avons pas encore vues, à savoir ZEROIFNULL, ROUND et DATE.

SELECT 
    fd.date_valid_std AS date,
    fd.city_name,
    fd.country_desc,
    ZEROIFNULL(SUM(odv.price)) AS daily_sales,
    ROUND(AVG(fd.avg_temperature_air_2m_f),2) AS avg_temperature_fahrenheit,
    ROUND(AVG(frostbyte_tasty_bytes.analytics.fahrenheit_to_celsius(fd.avg_temperature_air_2m_f)),2) AS avg_temperature_celsius,
    ROUND(AVG(fd.tot_precipitation_in),2) AS avg_precipitation_inches,
    ROUND(AVG(frostbyte_tasty_bytes.analytics.inch_to_millimeter(fd.tot_precipitation_in)),2) AS avg_precipitation_millimeters,
    MAX(fd.max_wind_speed_100m_mph) AS max_wind_speed_100m_mph
FROM frostbyte_tasty_bytes.harmonized.daily_weather_v fd
LEFT JOIN frostbyte_tasty_bytes.harmonized.orders_v odv
    ON fd.date_valid_std = DATE(odv.order_ts)
    AND fd.city_name = odv.primary_city
    AND fd.country_desc = odv.country
WHERE 1=1
    AND fd.country_desc = 'Germany'
    AND fd.city = 'Hamburg'
    AND fd.yyyy_mm = '2022-02'
GROUP BY fd.date_valid_std, fd.city_name, fd.country_desc
ORDER BY fd.date_valid_std ASC;

Les résultats que nous venons de recevoir semblent optimum. Nous pouvons maintenant insérer cette fonction SQL dans une vue lors de la prochaine étape.

Étape 3 – Déployer une vue d'analyse

À l'aide de la requête précédente, nous allons devoir supprimer les filtres de la clause WHERE, ajouter une fonction COMMENT et la promouvoir dans notre schéma analytics en tant que vue daily_city_metrics_v.

Pour ce faire, exécutez la dernière requête de cette section.

CREATE OR REPLACE VIEW frostbyte_tasty_bytes.analytics.daily_city_metrics_v
COMMENT = 'Daily Weather Source Metrics and Orders Data for our Cities'
    AS
SELECT 
    fd.date_valid_std AS date,
    fd.city_name,
    fd.country_desc,
    ZEROIFNULL(SUM(odv.price)) AS daily_sales,
    ROUND(AVG(fd.avg_temperature_air_2m_f),2) AS avg_temperature_fahrenheit,
    ROUND(AVG(frostbyte_tasty_bytes.analytics.fahrenheit_to_celsius(fd.avg_temperature_air_2m_f)),2) AS avg_temperature_celsius,
    ROUND(AVG(fd.tot_precipitation_in),2) AS avg_precipitation_inches,
    ROUND(AVG(frostbyte_tasty_bytes.analytics.inch_to_millimeter(fd.tot_precipitation_in)),2) AS avg_precipitation_millimeters,
    MAX(fd.max_wind_speed_100m_mph) AS max_wind_speed_100m_mph
FROM frostbyte_tasty_bytes.harmonized.daily_weather_v fd
LEFT JOIN frostbyte_tasty_bytes.harmonized.orders_v odv
    ON fd.date_valid_std = DATE(odv.order_ts)
    AND fd.city_name = odv.primary_city
    AND fd.country_desc = odv.country
WHERE 1=1
GROUP BY fd.date_valid_std, fd.city_name, fd.country_desc;

Incroyable ! Nous avons désormais démocratisé ce type d'informations pour l'organisation Tasty Bytes. Rassemblons toutes ces informations dans la section suivante pour valider notre travail.

Étape 4 – Cliquer sur Next (Suivant) –>

Présentation

Les données de ventes et météorologiques étant disponibles pour toutes les villes où nos food trucks opèrent, voyons comment nous avons raccourci le délai d'analyse des analystes financiers.

Étape 1 – Simplifier l'analyse

Auparavant, nous devions associer manuellement les données des points de vente et celles de Weather Source pour examiner les problèmes de vente de la ville de Hambourg. Toutefois, nous avons simplifié ce processus via notre vue analytics.daily_city_metrics_v.

Exécutez la requête suivante, qui montre à quel point nous avons simplifié cette analyse en faisant d'elle une simple instruction Select depuis une seule et même vue.

SELECT 
    dcm.date,
    dcm.city_name,
    dcm.country_desc,
    dcm.daily_sales,
    dcm.avg_temperature_fahrenheit,
    dcm.avg_temperature_celsius,
    dcm.avg_precipitation_inches,
    dcm.avg_precipitation_millimeters,
    dcm.max_wind_speed_100m_mph
FROM frostbyte_tasty_bytes.analytics.daily_city_metrics_v dcm
WHERE 1=1
    AND dcm.country_desc = 'Germany'
    AND dcm.city_name = 'Hamburg'
    AND dcm.date BETWEEN '2022-02-01' AND '2022-02-26'
ORDER BY date DESC;

Oui ! Si ces données avaient été disponibles lors des recherches initiales des analystes financiers, ces derniers n'auraient pas eu besoin de faire appel aux équipes dédiées aux données puisque les informations auraient été à leur disposition.

Tout au long de ce guide Quickstart, nous avons vu comment notre travail nous permet d'optimiser réellement nos performances commerciales et à quel point il est facile d'utiliser la Marketplace Snowflake pour tirer davantage d'informations grâce aux données.

Étape 2 – Cliquer sur Next (Suivant) –>

Conclusion

Beau travail ! Vous avez terminé le guide Quickstart Tasty Bytes Débuter avec Snowflake sur la collaboration.

Vous avez :

Si vous voulez recommencer ce guide Quickstart, utilisez les scripts de réinitialisation en bas de votre feuille de calcul associée.

Prochaines étapes

Pour continuer à découvrir le Data Cloud Snowflake, cliquez sur le lien ci-dessous pour voir tous les autres guides Quickstart Powered by Tasty Bytes à votre disposition.