Hoy, Databricks anuncia que el soporte para el lenguaje de scripting ANSI SQL/PSM está disponible de forma general.
SQL Scripting ya está disponible en Databricks, lo que permite incorporar lógica procedimental, como bucles y flujo de control, directamente en el SQL que ya conoces. La programación en Databricks se basa en estándares abiertos y es totalmente compatible con Apache Spark™.
Para los usuarios que priorizan SQL, esto facilita el trabajo directamente en el Lakehouse mientras aprovechan la escalabilidad y las capacidades de IA de Databricks.
Si ya usas Databricks, encontrarás que los scripts de SQL son especialmente útiles para crear lógica administrativa y tareas de ELT. Las características clave incluyen:
Basta de la lista de características. Veamos algunos ejemplos reales. Puedes usar este notebook para seguir el paso a paso.
Las tareas administrativas y la limpieza de datos son una constante en la gestión de datos empresariales: necesarias, rutinarias e imposibles de evitar. Deberás limpiar los registros históricos, estandarizar formatos mixtos, aplicar nuevas convenciones de nomenclatura, cambiar el nombre de las columnas, ampliar los tipos de datos y agregar máscaras de columna. Mientras más puedas automatizar estas tareas, más confiables y manejables serán tus sistemas con el tiempo. Un ejemplo común: aplicar un comportamiento que no distinga entre mayúsculas y minúsculas para todas las columnas de tipo STRING en una tabla.
Veamos cómo el SQL scripting puede hacer que este tipo de administración de esquemas sea repetible y sencilla.
En este ejemplo, queremos aplicar una nueva política para la ordenación y comparación de cadenas para cada columna aplicable en la tabla llamada employees. Usaremos un tipo de intercalación estándar, UTF8_LCASE, para garantizar que la ordenación y comparación de los valores de esta tabla no distinga mayúsculas de minúsculas. La aplicación de este estándar permite a los usuarios beneficiarse de las ventajas de rendimiento del uso de intercalaciones, y simplifica el código, ya que los usuarios ya no tienen que aplicar LOWER() en sus consultas.
Usaremos widgets para especificar qué tabla y tipo de intercalación alterar. Usando el esquema de información, luego encontraremos todas las columnas existentes de tipo STRING en esa tabla y alteraremos su intercalación. Recopilaremos los nombres de las columnas en un arreglo. Por último, recopilaremos nuevas estadísticas para las columnas modificadas, todo en un solo script.
Una extensión natural del script anterior es extenderlo a todas las tablas de un esquema y actualizar las vistas para que recojan el cambio de intercalación.
¿Hay algún problema más común en el mundo de los datos que los “datos sucios”? Los datos procedentes de diferentes sistemas, dispositivos y personas inevitablemente tendrán diferencias o errores que deben corregirse. Si los datos no se limpian, puedes obtener resultados incorrectos y pasar por alto información valiosa. Puedes esperar una respuesta basura si introduces basura en un LLM.
Veamos un ejemplo que incluye la pesadilla de toda publicación, incluido este blog: los errores de tipeo. Tenemos una tabla que incluye entradas de texto libre en una columna llamada description. Los problemas en el texto, que incluyen errores de ortografía y gramática, serían evidentes para cualquiera que sepa inglés. Dejar los datos en este estado sin duda generará problemas más adelante al intentar analizar o inspeccionar el texto. ¡Solucionémoslo con SQL Scripting! Primero, extraemos las tablas que contienen este nombre de columna del esquema de información. Luego, corregimos los errores de ortografía usando ai_fix_grammar(). Esta función no es determinista. Así que, usamos MERGE para lograr nuestro objetivo.
Una mejora interesante podría ser dejar que ai_classify() deduzca si una columna contiene texto de formato libre a partir del nombre de la columna o de los datos de muestra. Las secuencias de comandos SQL hacen que las tareas administrativas y la limpieza de datos desordenados sean eficientes y sencillas.
Los clientes usan SQL para ETL hoy en día. ¿Por qué? Porque SQL admite un sólido conjunto de capacidades de transformación de datos, que incluyen joins, agregaciones y filtrado, con una sintaxis intuitiva, lo que facilita que cualquier Data Engineer pueda ampliar, actualizar y mantener el código del pipeline. Ahora, con SQL Scripting, los clientes pueden simplificar enfoques que antes eran complejos o manejar una lógica más compleja con SQL puro.
Toda persona que vende productos físicos tiene un proceso para monitorear las ventas y rastrear los envíos. Un patrón típico de gestión de datos es modelar varias tablas para hacer un seguimiento de las transacciones, los envíos, las entregas y las devoluciones. El monitoreo de transacciones es fundamental para el negocio y, como cualquier proceso crítico, requiere el manejo de valores inesperados. Con SQL Scripting, es fácil aprovechar una instrucción CASE condicional para analizar las transacciones en su tabla correspondiente y, si se encuentra un error, capturar la excepción.
En este ejemplo, consideramos una tabla de transacciones sin procesar para la cual las filas deben enrutarse a un conjunto conocido de tablas de destino según el tipo de evento. Si el script encuentra un evento desconocido, se genera una excepción definida por el usuario. Una variable de sesión realiza un seguimiento de hasta dónde llegó el script antes de que finalizara o encontrara una excepción.
Este script de ejemplo podría ampliarse con un bucle externo que siga sondeando en busca de más datos. Con SQL Scripting, tienes tanto el poder como la flexibilidad para administrar y actualizar datos en todo tu entorno de datos. SQL Scripting te da el poder para abordar cualquier tarea de administración de datos y controlar de manera eficiente el flujo de procesamiento de datos.
Mantente atento al blog de Databricks y a las sesiones de SQL en el próximo Data + AI Summit, ya que nos preparamos para lanzar el soporte para tablas temporales, procedimientos almacenados de SQL ¡y mucho más!
Tanto si es un usuario de Databricks que realiza mantenimiento de rutina como si está orquestando una migración a gran escala, SQL Scripting es una funcionalidad que debería aprovechar. SQL Scripting se describe en detalle en SQL Scripting | Documentación de Databricks.
Puede probar estos ejemplos directamente en este cuaderno de scripting SQL. Para obtener más detalles, consulte la parte 2 de esta serie, que profundiza en las construcciones de scripting SQL y en cómo utilizarlas.
Produto
June 12, 2024/11 min de leitura

