Esta semana, FrostyFarms está buscando crear un conjunto de tareas encadenadas, ¡dos para ser exactos! Las fincas tienen muchas vacas que nos producen leche, y de ahí, parte de esa leche se convertirá en leche desnatada/semi-desnatada. Queremos que nuestros datos se editen para reflejar el hecho de que el porcentaje de grasa de la leche determinará cómo deben verse los datos.
La leche desnatada pasa por el proceso de reducción de grasa en una centrífuga, por lo tanto, las filas de leche entera no necesitarán columnas relacionadas con ese proceso, pero las filas de leche desnatada sí.
Cree una tarea principal y secundaria que realizará diferentes acciones en las diferentes filas de datos según el porcentaje de grasa de la leche.
Aquí puedes encontrar el esqueleto del script
-- Establecer la base de datos y el esquema
use database <insert_db_name_here>
use schema <insert_schema_name_here>
-- Crea el escenario que apunta a los datos.
create stage week_11_frosty_stage
url = 's3://frostyfridaychallenges/challenge_11/'
file_format = <insert_csv_file_format;
-- Cree la tabla como una sentencia CTAS.
create or replace table frosty_friday.challenges.week11 as
select m.$1 as milking_datetime,
m.$2 as cow_number,
m.$3 as fat_percentage,
m.$4 as farm_code,
m.$5 as centrifuge_start_time,
m.$6 as centrifuge_end_time,
m.$7 as centrifuge_kwph,
m.$8 as centrifuge_electricity_used,
m.$9 as centrifuge_processing_time,
m.$10 as task_used
from @week_11_frosty_stage (file_format => '<insert_csv_file_format>', pattern => '.*milk_data.*[.]csv') m;
-- TAREA 1: Elimine todas las fechas de centrifugado y los kwph de centrifugado y sustitúyalos por NULLs
WHERE fat = 3.
-- Añadir nota a task_used.
create or replace task whole_milk_updates
schedule = '1400 minutes'
as
<insert_sql_here>
-- TAREA 2: Calcular el tiempo de procesamiento de la centrifugadora (diferencia entre la hora de inicio y la hora final)
WHERE fat != 3.
-- Añadir nota a task_used.
create or replace task skim_milk_updates
after frosty_friday.challenges.whole_milk_updates
as
<insert_sql_here>
-- Ejecutar manualmente la tarea.
execute task whole_milk_updates;
-- Comprueba que los datos son correctos.
select * from week11;
-- Comprueba que los números son correctos.
select task_used, count(*) as row_count from week11 group by task_used;
Resultado:
Cuando ejecuta la primera consulta, los datos del 3% deberían verse como
Y las filas que no son del 3% deberían verse como
Mientras que la segunda consulta debería producir algo como
Recuerda que si deseas participar:
- 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 proporcionará una cuenta de Frosty Friday).
- Publica tu código en GitHub y asegúrate de que sea de acceso público (consulta nuestra guía si no sabes cómo hacerlo).
- Publica la URL en los comentarios del desafío.
Si tienes alguna pregunta técnica que te gustaría plantear a la comunidad, puedes hacerlo aquí, en nuestro hilo dedicado a estos retos.
Deja una respuesta
Lo siento, debes estar conectado para publicar un comentario.