Puntos clave: Los procedimientos almacenados en Snowflake permiten a los usuarios ejecutar secuencias de comandos para procesamiento por lotes y gestión de eventos usando JavaScript para la gestión de variables y el manejo de errores. Un tutorial demuestra cómo crear procedimientos para actualizar los precios de los pedidos.
- Los procedimientos almacenados facilitan operaciones similares a lotes.
- JavaScript está necesario para crear procedimientos almacenados en Snowflake.
Snowflake soporta procedimientos almacenados. Los procedimientos almacenados permiten te escribir una serie de comandos y almacena los para su uso posterior.
Cuándo utilizar un procedimiento almacenado
Anteriormente hemos cubierto funciones definidas por el usuario (UDFs), que te utiliza en una columna. Un procedimiento almacenado se ejecuta solo. En otras palabras, se activa y "hace algo", como actualizar una tabla. Por eso los procedimientos almacenados son buenos para acciones tipo batch. te también pueden vincular condicionalmente procedimientos almacenados a eventos de base de datos, no muy diferente de lo que se llama disparador en otros productos de bases de datos. Los ingenieros de datos también pueden Haz una pipeline de datos con procedimientos almacenados. (Un tema que exploraremos en profundidad en las próximas publicaciones.)
JavaScript para procedimientos almacenados
Los procedimientos almacenados Snowflake deben escribirse en JavaScript. Tiene sentido que te deba utiliza un lenguaje de programación además de SQL, ya que SQL no soporta asignación de variables. te Crea variables para hacer cálculos, etc. No te preocupes si no te sabes JavaScript: te simplemente copiar código estándar y poner SQL en la ubicación correcta. SQL están realmente la única parte que varía, en su mayoría. Así que no están mucho te que necesite entender. JavaScript Snowflake están JavaScript básico. No permite importar te librerías que son externas al lenguaje. Así que te puede Crea arrays, variables, objetos simples y están gestión de errores. te Pero no podría, por ejemplo, utiliza funciones matemáticas de la biblioteca Math
Tutorial línea por línea: Procedimiento almacenado
Pondremos un ejemplo sencillo aquí y explicaremos cada línea del código. (Así que no te necesitas ningún dato de muestra.) Mira la función a continuación. Fíjate en lo siguiente:
- te poner parámetros en la función función nombre de la función (tipo de parámetros)
- te llamar a la función escribiendo llamar a la función nombre(parámetros).
- La función debe devolver algún valor, aunque solo están actualizando. De lo contrario, te Obtén el error NULL en una columna no nullable. Esto están porque el editor de hojas de cálculo en Snowflake necesita algo que muestre, incluso si es un valor nulo (Nan).
- El procedimiento básico están utiliza ejecutar() para ejecutar código SQL que te tener almacenado en una cadena. Los programadores de bases de datos saben que eso crea lo que están llama un conjunto de resultados. Así que te necesitas extraer el primer valor retornado al alcance llamando a next(). están Hay un conjunto de resultados con una sentencia select, eliminar, insertar e incluso actualizar, aunque te no esperaría que esos devolvieran valores.
- Si la sentencia SQL devuelve más de una fila, como en un SELECT, te utilizarías un tiempo (rs.next()) para recorrer los resultados en un bucle.
- Por alguna razón, los parámetros pueden ser minúsculas pero deben estar en mayúsculas dentro del código JavaScript. te Obtén un error si te intentas utiliza minúsculas.
create or replace procedure setprice(ORDERNUMBER varchar(100))
returns float
not null
language javascript
as
$$
sql_command = "update orders set price = 2 where ordernumber = " + ORDERNUMBER ;
var stmt = snowflake.createStatement(
{
sqlText: sql_command
}
);
var res = stmt.execute();
res.next()
price = res.getColumnValue(1);
return price;
$$
;
call setprice(489)
Recursos adicionales
Para más tutoriales como este, explora estos recursos:
Guía de copos de nieve
- Snowflake 101: Introducción a la Nube de Datos Snowflake
- Cómo importar datos de Amazon S3 a Snowflake
- Cómo consultar datos JSON en Snowflake
- Cargando archivos CSV de S3 a Snowflake
- Snowflake: Uso de Analítica y Funciones Estadísticas
- Funciones de la ventana copo de nieve: Partición por y orden por
- Función de retraso de copo de nieve y medias móviles
- Funciones agregadas SQL de Snowflake y uniones de tablas
- Funciones definidas por el usuario (UDFs) en Snowflake
- Creación y uso de arroyos de copos de nieve
- Uso de procedimientos almacenados en Snowflake
- Copo de nieve vs Redshift: ¿Cuál es la diferencia y cómo elegir?
Estas publicaciones son mías y no representan necesariamente la posición, estrategias u opinión de BMC.