Semana 52 - Tablas Dinámicas y Streams

En el último Snowflake Summit , la Tabla Dinámica fue uno de los grandes anuncios. Este tipo de tabla añade otra opción a la lista de Streams y Materialized Views.

Nos gustaría que utilizara nuestra función de inicio para afrontar este reto a toda velocidad. La función crea una tabla si aún no existe y la llena de datos si ya existe. Perfecta para nuestro reto (y una función decente en la que "inspirarse")

CREATE OR REPLACE PROCEDURE check_and_generate_data(tableName STRING) RETURNS STRING LANGUAGE JAVASCRIPT EXECUTE AS CALLER AS $$ try { var tableName = TABLENAME; var command1 = `SELECT count(*) as count FROM information_schema.tables WHERE table_schema = CURRENT_SCHEMA() AND table_name = '${tableName.toUpperCase()}'`; var statement1 = snowflake.createStatement({sqlText: command1}); var result_set1 = statement1.execute(); result_set1.next(); var count = result_set1.getColumnValue('COUNT'); if (count == 0) { var command2 = `CREATE TABLE ${tableName} (payload VARIANT, ingested_at TIMESTAMP_NTZ default CURRENT_TIMESTAMP())`; var statement2 = snowflake.createStatement({sqlText: command2}); statement2.execute(); return `Table ${tableName} has been created.`; } else { for(var i=0; i<40; i++) { var jsonObject = { "id": i, "name": "Name_" + i, "address": "Address_" + i, "email": "email_" + i + "@example.com", "transactionValue": Math.floor(Math.random() * 10000) + 1 }; var jsonString = JSON.stringify(jsonObject); var command3 = `INSERT INTO ${tableName} (payload) SELECT PARSE_JSON(column1) FROM VALUES ('${jsonString}')`; var statement3 = snowflake.createStatement({sqlText: command3}); statement3.execute();    }     return `40 records have been inserted into the ${tableName} table.`; } } catch (err) { return "Failed: " + err; } $$;

El reto de esta semana consiste en utilizar una tabla dinámica para crear los siguientes resultados:

A screenshot of a white sheetDescription automatically generated

Recuerda que si deseas 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 proporcionará una cuenta de Frosty Friday).
  2. 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).
  3. 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.

Previous
Previous

Semana 51 - Apps Nativas y Marketplace

Next
Next

Semana 51 – Avanzado