Aller au contenu principal

Choisissez une langue de développement

Databricks prend en charge l’utilisation de différents langages de programmation pour le développement et le Data Engineering. Cet article présente les options disponibles, les endroits où ces langages peuvent être utilisés et leurs limites.

Recommandations

Databricks recommande Python et SQL pour les nouveaux projets :

  • Le langage Python est un langage de programmation généraliste très populaire. Les PySpark DataFrames facilitent la création de transformations testables et modulaires. L'écosystème Python prend également en charge un large éventail de bibliothèques pour étendre votre solution.
  • **SQL** est un langage très populaire pour la gestion et la manipulation de datasets relationnels en effectuant des Opérations telles que l'interrogation, la mise à jour, l'insertion et la suppression de données. Le SQL est un bon choix si votre expérience est principalement dans les bases de données ou l'entreposage des données. SQL peut également être intégré à Python à l'aide de spark.sql.

Les langues suivantes disposent d'un support limité, Databricks ne les recommande donc pas pour les nouveaux projets d'ingénierie des données :

  • Scala est le langage utilisé pour le développement d'Apache Spark™.
  • R n'est entièrement pris en charge que dans les notebooks Databricks.

La prise en charge linguistique varie également en fonction des fonctionnalités utilisées pour créer des pipelines de données et d'autres solutions. Par exemple, les Lakeflow pipelines prennent en charge Python et SQL, tandis que les workflows vous permettent de créer des pipelines de données en utilisant Python, SQL, Scala et Java.

remarque

D'autres langages peuvent être utilisés pour interagir avec Databricks afin d'interroger les données ou d'effectuer des Transformations de données. Cependant, ces interactions s'inscrivent principalement dans le contexte des intégrations avec des systèmes externes. Dans ces cas, un développeur peut utiliser presque n'importe quel langage de programmation pour interagir avec Databricks via l'API REST de Databricks, les pilotes ODBC/JDBC, des langages spécifiques prenant en charge le connecteur Databricks SQL (Go, Python, Javascript/Node.js), ou des langages qui ont des implémentations de Spark Connect, tels que Go et Rust.

Développement de Workspace vs développement local

Vous pouvez développer des projets de données et des pipelines en utilisant le Workspace Databricks ou un IDE (environnement de développement intégré) sur votre machine locale, mais il est recommandé de démarrer de nouveaux projets dans le Workspace Databricks. Le Workspace est accessible à l'aide d'un navigateur web, il offre un accès facile aux données dans Unity Catalog, et il prend en charge de puissantes capacités de debugging et des fonctionnalités telles que le Genie Code.

Développez du code dans le Databricks Workspace à l'aide des notebooks Databricks ou de l'éditeur SQL. Les notebooks Databricks prennent en charge plusieurs langages de programmation, même au sein d'un même notebook, vous pouvez donc développer en utilisant Python, SQL et Scala.

Le développement de code directement dans le Databricks Workspace présente plusieurs avantages :

  • La boucle de rétroaction est plus rapide. Vous pouvez tester immédiatement le code écrit sur des données réelles.
  • Le Genie Code intégré et sensible au contexte peut accélérer le développement et aider à résoudre les problèmes.
  • Vous pouvez facilement planifier des Notebook et des query directement depuis le Databricks Workspace.
  • Pour le développement Python, vous pouvez structurer correctement votre code Python en utilisant des fichiers comme des packages Python dans un workspace.

Cependant, le développement local dans un IDE offre les avantages suivants :

  • Les IDEs disposent de meilleurs outils pour travailler sur des projets logiciels, tels que la navigation, la refactorisation du code et l'analyse statique du code.
  • Vous pouvez choisir comment vous contrôlez votre source, et si vous utilisez Git, des fonctionnalités plus avancées sont disponibles localement que dans le workspace avec des dossiers Git.
  • Il existe une plus large gamme de langues prises en charge. Par exemple, vous pouvez développer du code en utilisant Java et le déployer comme tâche JAR.
  • Un meilleur support est disponible pour le debugging du code.
  • Il existe une meilleure prise en charge pour travailler avec les tests unitaires.

Exemple de sélection de la langue

La sélection de la langue pour le Data Engineering est visualisée à l'aide de l'arbre de décision suivant :

Arbre de décision du langage Data engineering

Développement de code Python

Le langage Python bénéficie d'un support de première classe sur Databricks. Vous pouvez l'utiliser dans les notebooks Databricks, les LakeFlow Pipelines et les workflows, pour développer des UDF, et aussi le déployer comme script Python et comme roues.

Lorsque vous développez des projets Python dans le workspace Databricks, que ce soit sous forme de notebooks ou de fichiers, Databricks fournit des outils tels que la complétion de code, la navigation, la validation syntaxique, la génération de code à l’aide de Genie Code, le debugging interactif et plus encore. Le code développé peut être exécuté de manière interactive, déployé en tant que workflow Databricks ou Lakeflow Pipelines, ou même en tant que fonction dans Unity Catalog. Vous pouvez structurer votre code en le divisant en packages Python distincts qui pourront ensuite être utilisés dans plusieurs pipelines ou jobs.

Databricks fournit une extension pour Visual Studio Code et JetBrains propose un plug-in pour PyCharm qui vous permettent de développer du code Python dans un IDE, de synchroniser le code avec un Workspace Databricks, de l'exécuter dans le Workspace et d'effectuer du debugging pas à pas à l'aide de Databricks Connect. Le code développé peut ensuite être déployé à l'aide de Declarative Automation Bundles en tant que Job ou pipeline Databricks.

Développement de code SQL

Le langage SQL peut être utilisé dans des Notebook Databricks ou sous forme de query Databricks à l'aide de l'éditeur SQL. Dans les deux cas, un développeur a accès à des outils tels que la complétion de code, ainsi qu’à Genie Code contextuel qui peut être utilisé pour la génération de code et la correction de problèmes. Le code développé peut être déployé en tant que Job ou pipeline.

Les workflows Databricks permettent également d'exécuter du code SQL stocké dans un fichier. Vous pouvez utiliser un IDE pour créer ces fichiers et les upload dans le Workspace. Une autre utilisation populaire du SQL se trouve dans les pipelines de data engineering développés à l'aide de dbt (data build tool). Les workflows Databricks prennent en charge l'orchestration des projets dbt.

Développement de code Scala

Scala est le langage original d'Apache Spark™. C'est un langage puissant, mais sa courbe d'apprentissage est abrupte. Bien que Scala soit un langage pris en charge dans les notebooks Databricks, il existe des limitations liées à la manière dont les classes et objets Scala sont créés et maintenus, ce qui peut rendre le développement de pipelines complexes plus difficile. Généralement, les IDEs offrent un meilleur support pour le développement de code Scala, qui peut ensuite être déployé en utilisant des tâches JAR dans les workflows Databricks.

Ressources supplémentaires