Aujourd'hui, Databricks annonce la disponibilité générale de la prise en charge du langage de script ANSI SQL/PSM.
Le script SQL est désormais disponible dans Databricks, intégrant une logique procédurale telle que les boucles et le flux de contrôle directement dans le SQL que vous connaissez déjà. Le scripting dans Databricks repose sur des standards ouverts et est entièrement compatible avec Apache Spark™.
Pour les utilisateurs privilégiant le SQL, il est ainsi plus facile de travailler directement sur le Lakehouse tout en profitant de la scalabilité et des capacités d'IA de Databricks.
Si vous utilisez déjà Databricks, vous trouverez les scripts SQL particulièrement utiles pour créer une logique administrative et des tâches ELT. Les fonctionnalités clés sont les suivantes :
Assez parlé des fonctionnalités — passons à des exemples concrets. Vous pouvez utiliser ce notebook pour suivre les étapes.
Les tâches administratives et le nettoyage des données sont une constante dans la gestion de données d'entreprise — nécessaire, routinière et impossible à éviter. Vous devrez nettoyer les enregistrements historiques, standardiser les formats mixtes, appliquer de nouvelles conventions de nommage, renommer les colonnes, élargir les types de données et ajouter des masques de colonne. Plus vous pourrez automatiser ces tâches, plus vos systèmes seront fiables et faciles à gérer au fil du temps. Un exemple courant : appliquer un comportement insensible à la casse pour toutes les colonnes de type STRING dans une table.
Découvrons comment les scripts SQL peuvent rendre ce type d'administration de schémas répétable et simple.
Dans cet exemple, nous voulons appliquer une nouvelle politique de tri et de comparaison de chaînes pour chaque colonne applicable de la table nommée employees. Nous utiliserons un type de collationnement standard, UTF8_LCASE, pour garantir que le tri et la comparaison des valeurs dans cette table soient toujours insensibles à la casse. L'application de cette norme permet aux utilisateurs de bénéficier des avantages en matière de performances liés à l'utilisation des collationnements, et simplifie le code, car les utilisateurs n'ont plus besoin d'appliquer LOWER() dans leurs queries.
Nous utiliserons des widgets pour spécifier la table et le type de collation à modifier. En utilisant le schéma d'information, nous trouverons ensuite toutes les colonnes existantes de type STRING dans cette table et nous modifierons leur collation. Nous collecterons les noms de colonnes dans un tableau. Enfin, nous collecterons de nouvelles statistiques pour les colonnes modifiées, le tout dans un seul script.
Une extension naturelle du script ci-dessus consiste à l'étendre à toutes les tables d'un schéma, et à refresh les vues pour prendre en compte le changement de classement.
Existe-t-il un problème plus courant dans le monde des données que celui des « données sales » ? Les données provenant de différents systèmes, appareils et humains présenteront inévitablement des différences ou des erreurs qui doivent être corrigées. Si les données ne sont pas nettoyées, vous risquez d'obtenir des résultats erronés et de passer à côté d'un insight important. Vous pouvez vous attendre à une réponse de piètre qualité si vous fournissez des données de piètre qualité à un LLM.
Prenons un exemple qui inclut le fléau de toute publication, y compris ce blog : les fautes de frappe. Nous avons une table qui contient des entrées de texte libre dans une colonne appelée description. Les problèmes dans le texte, qui comprennent des fautes d'orthographe et de grammaire, seraient évidents pour quiconque connaît l'anglais. Laisser les données dans cet état entraînera sans aucun doute des problèmes plus tard si l'on essaie d'analyser ou d'inspecter le texte. Corrigeons cela avec le script SQL ! Tout d'abord, nous extrayons les tables contenant ce nom de colonne du schéma d'information. Ensuite, nous corrigeons les fautes d'orthographe à l'aide de ai_fix_grammar(). Cette fonction est non déterministe. Nous utilisons donc MERGE pour atteindre notre objectif.
Une amélioration intéressante pourrait être de laisser ai_classify() déduire si une colonne contient du texte libre à partir du nom de la colonne ou d'un échantillon de données. Les scripts SQL permettent d'effectuer les tâches administratives et de nettoyer les données désordonnées de manière efficace et simple.
Aujourd'hui, les clients utilisent SQL pour l'ETL. Pourquoi ? Car SQL prend en charge un ensemble robuste de fonctionnalités de transformation de données, notamment les jointures, les agrégations et le filtrage, avec une syntaxe intuitive, il est facile pour n'importe quel Data Engineer d'étendre, de mettre à jour et de maintenir le code du pipeline. Désormais, avec SQL Scripting, les clients peuvent simplifier des approches auparavant complexes ou gérer une logique plus complexe avec du SQL pur.
Toute personne qui vend des produits physiques dispose d'un processus pour le monitoring des ventes et suivre les expéditions. Un modèle de gestion de données typique consiste à modéliser plusieurs tables pour suivre les transactions, les expéditions, les livraisons et les retours. Le monitoring des transactions est essentiel pour l'entreprise et, comme tout processus critique, il nécessite la gestion des valeurs inattendues. Avec le scripting SQL, il est facile d'exploiter une instruction CASE conditionnelle pour analyser les transactions et les insérer dans leur table appropriée et, si une erreur est rencontrée, de capturer l'exception.
Dans cet exemple, nous considérons une table de transactions brutes dont les lignes doivent être acheminées vers un ensemble connu de tables cibles en fonction du type d'événement. Si le script rencontre un événement inconnu, une exception définie par l'utilisateur est levée. Une variable de session permet de suivre la progression du script avant qu'il ne se termine ou ne rencontre une exception.
Cet exemple de script pourrait être étendu avec une boucle externe qui continue d'interroger pour obtenir plus de données. Avec le SQL Scripting, vous disposez à la fois de la puissance et de la flexibilité pour gérer et mettre à jour les données sur l'ensemble de votre patrimoine de données. Le scripting SQL vous permet de gérer n'importe quelle tâche de gestion de données et de contrôler efficacement le flux de leur traitement.
Restez à l'écoute du blog Databricks et des sessions SQL lors du prochain Data + AI Summit, car nous nous préparons à lancer la prise en charge des tables temporaires, des procédures stockées SQL et plus encore !
Que tu sois un utilisateur existant de Databricks effectuant une maintenance de routine ou orchestrant une migration à grande échelle, SQL Scripting est une capacité que tu devrais exploiter. Le script SQL est décrit en détail dans SQL Scripting | Databricks Documentation.
Vous pouvez essayer ces exemples directement dans ce Notebook de script SQL. Pour en savoir plus, consultez la deuxième partie de cette série, qui traite des constructions de script SQL et de la manière de les utiliser.
Produto
June 12, 2024/11 min de leitura

