Passa al contenuto principale

Introduzione al supporto per lo scripting SQL in Databricks, parte 1

Una panoramica della logica procedurale in ANSI SQL

sql-scripting-welcome-og
Updated: December 17, 2025
Published: May 5, 2025
Prodotto10 min di lettura

Summary

  • Automatizzare l'amministrazione dello schema del database con script SQL
  • Combinare AI e scripting SQL per la pulizia di dati di testo non strutturati
  • Suddividere e gestire le transazioni in entrata su più tabelle

Oggi, Databricks annuncia che il supporto per il linguaggio di scripting ANSI SQL/PSM è disponibile a livello generale.

Lo scripting SQL è ora disponibile in Databricks e introduce la logica procedurale, come i cicli e il controllo del flusso, direttamente nell'SQL che già conosci.  Lo scripting in Databricks si basa su standard aperti ed è completamente compatibile con Apache Spark™.

Per gli utenti SQL-first, questo rende più facile lavorare direttamente sul Lakehouse, sfruttando la scalabilità e le funzionalità di AI di Databricks.

Se usi già Databricks, troverai lo scripting SQL particolarmente utile per creare logiche amministrative e attività ELT. Le caratteristiche principali includono:

  • Variabili locali con ambito
  • Gestione nativa delle eccezioni basata su condizioni di errore simboliche
  • Supporto per IF-THEN-ELSE e CASE
  • Molteplici costrutti di loop, inclusi i loop FOR sulle query
  • Controllo del ciclo con ITERATE e LEAVE
  • Esecuzione di SQL dinamico tramite EXECUTE IMMEDIATE
  • Tutte le subquery e le istruzioni nidificate vengono visualizzate nel profilo della query per semplificare il debug

Basta con l'elenco delle funzioni: vediamo alcuni esempi reali. Puoi usare questo Notebook per seguirci.

Gestione dei dati

Le attività amministrative e la pulizia dei dati sono una costante nella gestione dei dati aziendali: necessarie, di routine e impossibili da evitare. Dovrai ripulire i record storici, standardizzare formati misti, applicare nuove convenzioni di denominazione, rinominare le colonne, ampliare i tipi di dati e aggiungere maschere di colonna.  Più puoi automatizzare queste attività, più i tuoi sistemi saranno affidabili e gestibili nel tempo. Un esempio comune: imporre un comportamento senza distinzione tra maiuscole e minuscole per tutte le colonne STRING di una tabella.

Vediamo come lo scripting SQL può rendere questo tipo di amministrazione dello schema ripetibile e semplice.

Amministrazione dello schema: rendi tutte le colonne STRING in una tabella senza distinzione tra maiuscole e minuscole

In questo esempio, vogliamo applicare una nuova policy per l'ordinamento e il confronto delle stringhe per ogni colonna applicabile nella tabella denominata employees. Utilizzeremo un tipo di collation standard, UTF8_LCASE, per garantire che l'ordinamento e il confronto dei valori in questa tabella non facciano mai distinzione tra maiuscole e minuscole. L'applicazione di questo standard consente agli utenti di beneficiare dei <a href=\" \"> vantaggi in termini di prestazioni derivanti dall'uso delle collation e semplifica il codice, poiché gli utenti non devono più applicare LOWER() nelle loro query.

Useremo i widget per specificare la tabella e il tipo di fascicolazione da modificare. Utilizzando lo schema di informazioni, troveremo tutte le colonne esistenti di tipo STRING in quella tabella e ne modificheremo la collation. Raccoglieremo i nomi delle colonne in un array. Infine, raccoglieremo nuove statistiche per le colonne modificate, il tutto in un unico script.

Un'estensione naturale dello script di cui sopra è estenderlo a tutte le tabelle di uno schema e refresh le viste per applicare la modifica della collation. 

Pulizia dei dati: correzione della grammatica nei campi di testo libero

C'è un problema più comune nel mondo dei dati dei "dati sporchi"? I dati provenienti da sistemi, dispositivi e persone diverse conterranno inevitabilmente differenze o errori che devono essere corretti. Se i dati non vengono puliti, si potrebbero ottenere risultati errati e perdere un approfondimento importante. Puoi aspettarti una risposta spazzatura se dai in pasto spazzatura a un LLM. 

Diamo un'occhiata a un esempio che include il cruccio di ogni pubblicazione, compreso questo blog: gli errori di battitura. Abbiamo una tabella che include voci di testo libero in una colonna chiamata 'description'. Gli errori nel testo, inclusi quelli di ortografia e grammatica, sarebbero evidenti a chiunque conosca l'inglese. Lasciare i dati in questo stato porterà senza dubbio a problemi in seguito, se si tenta di analizzare o ispezionare il testo. Correggiamolo con lo scripting SQL!  Per prima cosa, estraiamo le tabelle che contengono questo nome di colonna dall'informazioni schema. Quindi, correggiamo eventuali errori di ortografia utilizzando ai_fix_grammar(). Questa funzione è non deterministica. Quindi, usiamo MERGE per raggiungere il nostro obiettivo. 

Un miglioramento interessante potrebbe essere lasciare che ai_classify() deduca se una colonna contiene testo libero dal nome della colonna o dai dati di esempio. Lo scripting SQL rende le attività amministrative e la pulizia di dati disordinati efficienti e semplici.

etl

Oggi i clienti utilizzano SQL per l'ETL. Perché? Poiché SQL supporta un solido set di funzionalità di trasformazione dei dati, tra cui join, aggregazioni e filtri, con una sintassi intuitiva, il codice della pipeline è facile da estendere, aggiornare e gestire per qualsiasi Data Engineer. Ora, con SQL Scripting, i clienti possono semplificare approcci precedentemente complessi o gestire logiche più complesse con puro SQL.

Aggiornamento di più tabelle

Chiunque venda prodotti fisici avrà un processo per il monitoraggio delle vendite e tracciare le spedizioni. Un pattern tipico di gestione dei dati consiste nel modellare più tabelle per tracciare transazioni, spedizioni, consegne e resi. Il monitoraggio delle transazioni è di importanza critica per il business e, come ogni processo critico, richiede la gestione di valori imprevisti. Con lo scripting SQL, è facile sfruttare un'istruzione CASE condizionale per eseguire il parsing delle transazioni nella tabella appropriata e, in caso di errore, per catturare l'eccezione. 

In questo esempio, consideriamo una tabella di transazioni non elaborate le cui righe devono essere instradate in un set noto di tabelle di destinazione in base al tipo di evento. Se lo script rileva un evento sconosciuto, viene sollevata un'eccezione definita dall'utente. Una variabile di sessione tiene traccia del punto a cui è arrivato lo script prima di terminare o riscontrare un'eccezione.

Questo script di esempio potrebbe essere esteso con un loop esterno che continua a eseguire il polling di altri dati. Con SQL Scripting, hai la potenza e la flessibilità necessarie per gestire e aggiornare i dati in tutto il tuo data estate. SQL Scripting ti dà la potenza per affrontare qualsiasi attività di gestione dei dati e controllare in modo efficiente il flusso dell'elaborazione dei dati. 

Rimanete sintonizzati sul blog di Databricks e sulle sessioni SQL del prossimo Data + AI Summit: stiamo per lanciare il supporto per tabelle temporanee, stored procedure SQL e molto altro! 

Passaggi successivi

Sia che tu sia un utente Databricks esistente che esegue la manutenzione ordinaria o che stia orchestrando una migrazione su larga scala, SQL Scripting è una funzionalità che dovresti sfruttare. Lo scripting SQL è descritto in dettaglio in Scripting SQL | Documentazione di Databricks.

Puoi provare questi esempi direttamente in questo notebook di scripting SQL. Per maggiori dettagli, consulta la Parte 2 di questa serie, che approfondisce i costrutti di scripting SQL e come utilizzarli. 

 

Non perdere mai un post di Databricks

Iscriviti al nostro blog e ricevi gli ultimi post direttamente nella tua casella di posta elettronica.

Cosa succederà adesso?

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