Ir al contenido principal

Presentamos el soporte para scripting de SQL en Databricks, parte 1

Un panorama general de la lógica procedural, en ANSI SQL

sql-scripting-welcome-og
Updated: December 17, 2025
Publicado: May 5, 2025
Producto10 min de lectura

Summary

  • Automatiza la administración de esquemas de bases de datos con scripts SQL
  • Combina la IA y los scripts SQL para limpiar datos de texto desordenados
  • Divide y gestiona las transacciones entrantes en varias tablas

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:

  • Variables locales de ámbito
  • Manejo de excepciones nativo basado en condiciones de error simbólicas
  • Compatibilidad con IF-THEN-ELSE y CASE
  • Múltiples construcciones de bucle, incluidos los bucles FOR sobre consultas
  • Control de bucles con ITERATE y LEAVE
  • Ejecución dinámica de SQL mediante EXECUTE IMMEDIATE
  • Todas las subconsultas y sentencias anidadas aparecen en el Query Profile para facilitar la depuración.

Basta de la lista de características. Veamos algunos ejemplos reales. Puedes usar este notebook para seguir el paso a paso.

Gestión de datos

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.

Administración de esquemas: hacer que todas las columnas STRING de una tabla no distingan entre mayúsculas y minúsculas

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. 

Limpieza de datos: corrige la gramática en los campos de texto de formato libre

¿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.

ETL

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.

Actualización de varias tablas

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! 

¿Qué hacer a continuación?

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. 

 

No te pierdas ninguna publicación de Databricks.

Suscríbete a nuestro blog y recibe las últimas publicaciones en tu bandeja de entrada.

¿Qué sigue?

Introducing AI/BI: Intelligent Analytics for Real-World Data

Produto

June 12, 2024/11 min de leitura

Apresentando o AI/BI: analítica inteligente para dados do mundo real

DeepSeek R1 on Databricks

Anúncios

January 31, 2025/3 min de leitura

DeepSeek R1 no Databricks