Hoje, a Databricks anuncia suporte para a linguagem de script ANSI SQL/PSM!
O Scripting SQL agora está disponível no Databricks, trazendo lógica procedural como looping e controle de fluxo diretamente para o SQL que você já conhece. O scripting no Databricks é baseado em padrões abertos e totalmente compatível com o Apache Spark™.
Para usuários que priorizam SQL, isso facilita o trabalho diretamente no Lakehouse, aproveitando a escalabilidade e as capacidades de IA do Databricks.
Se você já usa o Databricks, vai achar o script SQL especialmente útil para construir lógica administrativa e tarefas ELT. As principais características incluem:
Chega de lista de recursos - vamos passar por alguns exemplos reais. Você pode usar este notebook para acompanhar.
Tarefas administrativas e limpeza de dados são uma constante na gestão de dados empresariais - necessárias, rotineiras e impossíveis de evitar. Você precisará limpar registros históricos, padronizar formatos mistos, aplicar novas convenções de nomenclatura, renomear colunas, ampliar tipos de dados e adicionar máscaras de coluna. Quanto mais você puder automatizar essas tarefas, mais confiáveis e gerenciáveis serão seus sistemas ao longo do tempo. Um exemplo comum: impondo comportamento insensível a maiúsculas e minúsculas para todas as colunas STRING em uma tabela.
Vamos ver como o script SQL pode tornar esse tipo de administração de esquema repetível e direto.
Neste exemplo, queremos aplicar uma nova política para ordenação e comparação de strings para cada coluna aplicável na tabela chamada funcionários. Usaremos um tipo de ordenação padrão, UTF8_LCASE, para garantir que a ordenação e a comparação dos valores nesta tabela sempre sejam insensíveis a maiúsculas e minúsculas. A aplicação deste padrão permite que os usuários se beneficiem dos benefícios de desempenho do uso de ordenações, e simplifica o código, pois os usuários não precisam mais aplicar LOWER() em suas consultas.
Usaremos widgets para especificar qual tabela e tipo de collation alterar. Usando o esquema de informações, vamos então encontrar todas as colunas existentes do tipo STRING nessa tabela e alterar sua ordenação. Vamos coletar os nomes das colunas em um array. Finalmente, coletaremos novas estatísticas para as colunas alteradas, tudo em um único script.
Uma extensão natural do script acima é estendê-lo a todas as tabelas em um esquema e atualizar as visualizações para captar a mudança de ordenação.
Existe algum problema mais comum no mundo dos dados do que 'dados sujos'? Dados de diferentes sistemas, dispositivos e humanos, inevitavelmente terão diferenças ou erros que devem ser corrigidos. Se os dados não forem limpos, você pode ter resultados errados e perder uma percepção importante. Você pode esperar uma resposta inútil se alimentar lixo em um LLM.
Vamos olhar para um exemplo que inclui o flagelo de toda publicação, incluindo este blog: erros de digitação. Temos uma tabela que inclui entradas de texto livre em uma coluna chamada descrição. Os problemas no texto, que incluem erros de ortografia e gramática, seriam aparentes para qualquer pessoa que conheça inglês. Deixar os dados neste estado certamente levará a problemas mais tarde se tentar analisar ou inspecionar o texto. Vamos corrigi-lo com Script SQL! Primeiro, extraímos tabelas que contêm este nome de coluna do esquema de informações. Em seguida, corrigimos quaisquer erros de ortografia usando ai_fix_grammar(). Esta função é não determinística. Então usamos MERGE para alcançar nosso objetivo.
Uma melhoria interessante poderia ser permitir que ai_classify() deduza se uma coluna contém texto de forma livre a partir do nome da coluna ou dados de amostra. A programação SQL torna as tarefas administrativas e a limpeza de dados desorganizados eficientes e diretas.
Os clientes usam SQL para ETL hoje. Por quê? Porque o SQL suporta um robusto conjunto de capacidades de transformação de dados, incluindo junções, agregações, filtragem, com sintaxe intuitiva, tornando o código do pipeline fácil para qualquer Engenheiro de Dados estender, atualizar e manter. Agora, com o Script SQL, os clientes podem simplificar abordagens anteriormente complexas ou lidar com lógicas mais complexas com SQL puro.
Qualquer pessoa que venda produtos físicos terá um processo para monitorar as vendas e rastrear as remessas. Um padrão típico de gerenciamento de dados é modelar várias tabelas para rastrear transações, remessas, entregas e devoluções. O monitoramento de transações é crítico para os negócios e, como qualquer processo crítico, requer o manuseio de valores inesperados. Com a programação SQL, é fácil aproveitar uma instrução CASE condicional para analisar transações em sua tabela apropriada, e se um erro for encontrado, para capturar a exceção.
Neste exemplo, consideramos uma tabela de transações brutas para as quais as linhas devem ser direcionadas para um conjunto conhecido de tabelas de destino com base no tipo de evento. Se o script encontrar um evento desconhecido, uma exceção definida pelo usuário é levantada. Uma variável de sessão rastreia até onde o script chegou antes de terminar ou encontrar uma exceção.
Este script de exemplo poderia ser estendido com um loop externo que continua a sondar por mais dados. Com o Script SQL, você tem tanto o poder quanto a flexibilidade para gerenciar e atualizar dados em todo o seu patrimônio de dados. O Script SQL dá a você o poder de lidar com qualquer tarefa de gerenciamento de dados e controlar eficientemente o fluxo de processamento de dados.
Fique ligado no blog do Databricks e nas sessões SQL no próximo Data + AI Summit, enquanto nos preparamos para lançar suporte para Tabelas Temporárias, Procedimentos Armazenados SQL e mais!
Se você é um usuário existente do Databricks fazendo manutenção de rotina ou orquestrando uma migração em grande escala, a criação de scripts SQL é uma capacidade que você deve explorar. A programação em SQL é descrita em detalhes em Programação em SQL | Documentação Databricks.
Você pode experimentar esses exemplos diretamente neste Notebook de Script SQL. Para mais detalhes, fique ligado para a Parte 2 desta série, que mergulha nas construções de Script SQL e como usá-las.
(This blog post has been translated using AI-powered tools) Original Post