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»)
Código de inicio:
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:
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.