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:
Basta con l'elenco delle funzioni: vediamo alcuni esempi reali. Puoi usare questo Notebook per seguirci.
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.
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.
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.
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.
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!
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.
Produto
June 12, 2024/11 min de leitura

