Semana 10 – Difícil

Frosty Consulting tiene un cliente que quiere poder cargar datos desde un stage de forma manual pero dinámica. Para ser más específicos quieren ser capaces de:

  • ejecutar un único comando (procedimiento almacenado)
  • hacerlo manualmente, lo que significa que no se programará ni habrá Snowpipes
  • determinar dinámicamente el tamaño del warehouse, si un archivo es superior a 10KB quieren utilizar un wareouse small, cualquier cosa por debajo de ese tamaño debe ser manejado por un warehouse xsmall.

Haga clic para ver el script:

-- Cree los 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; 
-- Cree la tabla 
create or replace table <table_name> 
( 
date_time datetime, trans_amount double
 ); 
-- Cree el stage 
create or replace stage week_10_frosty_stage 
url = 's3://frostyfridaychallenges/challenge_10/' 
file_format = <enter_file_format>;

Utilice el script anterior, y añada el procedimiento almacenado.

RESULTADO

Cuando ejecute la última línea del script anterior «call dynamic_warehouse_data_load()» debería obtener el siguiente resultado.

Y al consultar el QUERY_HISTORY, debería ver que se utilizaron diferentes almacenes para diferentes archivos.

Recuerda que si quieres participar:

  1. Regístrate como miembro de Frosty Friday. Puedes hacerlo haciendo clic en la barra lateral, y luego yendo a ‘REGISTRARSE‘ (ten en cuenta que unirte a nuestra lista de correo no te da una cuenta de Frosty Friday)
  2. Publica tu código en GitHub y ponlo a disposición del público (consulta nuestra guía si no sabes cómo hacerlo aquí )
  3. Publica la URL en los comentarios del reto.

Si tienes alguna pregunta técnica que quieras plantear a la comunidad, puedes hacerlo aquí en nuestro hilo dedicado. –