Frosty Consulting a un client qui souhaite pouvoir charger des données à partir d’un stage de manière manuelle mais dynamique. Plus précisément, il veut être en mesure de :
- Exécuter une seule commande (procédure stockée)
- Le faire manuellement, ce qui signifie qu’elle ne sera pas planifié avec une tâche et qu’il n’y aura pas de Snowpipe à créer
- Déterminer dynamiquement la taille du warehouse en fonction du volume de données à ingérer: si un fichier dépasse 10 Ko, ils veulent utiliser un warehouse Small, tout ce qui est en dessous de cette taille devrait être traité par un warehouse XSmall.
Cliquez pour voir le squelette de script:
-- Create the warehouses
create warehouse if not exists my_xsmall_wh
with warehouse_size = XSMALL
auto_suspend = 120;
create warehouse if not exists my_small_wh
with warehouse_size = SMALL
auto_suspend = 120;
-- Create the table
create or replace table <table_name>
(
date_time datetime,
trans_amount double
);
-- Create the stage
create or replace stage week_10_frosty_stage
url = 's3://frostyfridaychallenges/challenge_10/'
file_format = <enter_file_format>;
-- Create the stored procedure
create or replace procedure dynamic_warehouse_data_load(stage_name string, table_name string)
<code goes here>
-- Call the stored procedure.
call dynamic_warehouse_data_load('week_10_frosty_friday_stage', '<table_name>');
Utilisez le squelette de script ci-dessus et ajoutez-y la procédure stockée.
RÉSULTAT
Lorsque vous exécutez la dernière ligne du script ci-dessus « call dynamic_warehouse_data_load() », vous devriez obtenir le résultat suivant :
Et lors de la requête sur QUERY_HISTORY, vous devriez voir que différentes warehouses ont été utilisés pour différents fichiers.
Et n’oubliez pas, si vous souhaitez participer aux défis:
1. Inscrivez-vous en tant que membre de Frosty Friday. –> Vous pouvez le faire en cliquant sur la barre latérale, puis en cliquant sur ‘REGISTER‘ (notez que s’inscrire à notre liste de diffusion ne vous donne pas de compte Frosty Friday).
2. Publiez votre code sur GitHub et rendez-le accessible au public (consultez notre guide si vous ne savez pas comment faire, disponible ici)
3. Postez l’URL dans les commentaires du défi.
Si vous avez des questions techniques que vous souhaitez poser à la communauté, vous pouvez les poser ici, sur notre thread dédié.
Laisser un commentaire
Vous devez vous connecter pour publier un commentaire.