Partager via


Migrer des pipelines ETL vers Azure Databricks

Cet article fournit une vue d’ensemble des options de migration des pipelines ETL (extraction, transformation et chargement) s’exécutant sur d’autres systèmes de données vers Azure Databricks. Si vous effectuez la migration du code Apache Spark, consultez Adapter votre code Apache Spark pour Azure Databricks.

Pour des informations générales sur la transition d'un entrepôt de données d'entreprise vers un lakehouse, consultez Migrer votre entrepôt de données vers le lakehouse Databricks. Pour obtenir des informations sur la migration de Parquet vers Delta Lake, consultez Migrer un lac de données Parquet vers Delta Lake.

Peut-on exécuter des pipelines Hive sur Azure Databricks ?

La plupart des charges de travail Hive peuvent s’exécuter sur Azure Databricks avec une refactorisation minimale. La version de Spark SQL prise en charge par Databricks Runtime permet de nombreuses constructions HiveQL. Consultez Compatibilité avec Apache Hive. Azure Databricks inclut un metastore Hive par défaut. La plupart des migrations Hive doivent répondre à quelques problématiques principales :

  • Hive SerDe doit être mis à jour pour utiliser les codecs de fichiers natifs Azure Databricks. (Modifiez la valeur de DDL en remplaçant STORED AS par USING pour utiliser Azure Databricks SerDe.)
  • Les fonctions UDF Hive doivent être soit installées sur des clusters en tant que bibliothèques, soit refactorisées sur Spark natif. Étant donné que les fonctions UDF Hive sont déjà disponibles dans la machine virtuelle JVM, leurs performances peuvent être suffisantes pour de nombreuses charges de travail. Consultez Considérations relatives aux performances.
  • La structure de répertoires des tables doit être modifiée, car Azure Databricks utilise les partitions différemment de Hive. Consultez Quand partitionner des tables sur Azure Databricks ?.

Si vous choisissez de mettre à jour vos tables vers Delta Lake lors de votre migration initiale, un certain nombre d’instructions DDL et DML ne sont pas prises en charge. notamment :

  • ROWFORMAT
  • SERDE
  • OUTPUTFORMAT
  • INPUTFORMAT
  • COMPRESSION
  • STORED AS
  • ANALYZE TABLE PARTITION
  • ALTER TABLE [ADD|DROP] PARTITION
  • ALTER TABLE RECOVER PARTITIONS
  • ALTER TABLE SET SERDEPROPERTIES
  • CREATE TABLE LIKE
  • INSERT OVERWRITE DIRECTORY
  • LOAD DATA
  • Spécification de partitions cibles à l’aide de PARTITION (part_spec) dans TRUNCATE TABLE

Peut-on exécuter des pipelines ETL SQL sur Azure Databricks ?

La migration de charges de travail SQL d’autres systèmes vers Azure Databricks nécessite généralement très peu de refactorisation, selon de degré d’utilisation de protocoles spécifiques au système dans le code source. Azure Databricks utilise Delta Lake comme format de table par défaut, de sorte que les tables sont créées par défaut avec des garanties transactionnelles.

Spark SQL est conforme à ANSI dans l’ensemble, mais certaines différences de comportement peuvent exister. Découvrez comment la plateforme Databricks Data Intelligence se distingue d'un entrepôt de données d'entreprise

Étant donné que les systèmes de données ont tendance à configurer l’accès aux données externes de diverses manières, une grande partie du travail de refactorisation des pipelines SQL ETL peut consister à configurer l’accès à ces sources de données, puis à mettre à jour votre logique pour utiliser ces nouvelles connexions. Azure Databricks fournit des options de connexion à de nombreuses sources de données pour l’ingestion.

Peut-on exécuter des pipelines ETL dbt sur Azure Databricks ?

Azure Databricks fournit une intégration native à dbt, ce qui permet de tirer parti des scripts dbt existants avec très peu de refactorisation.

Les pipelines déclaratifs Lakeflow fournissent une syntaxe SQL déclarative Databricks-native optimisée pour la création, le test et le déploiement de pipelines. Bien que vous puissiez tirer parti de dbt sur Azure Databricks, une refactorisation légère du code vers des pipelines déclaratifs Lakeflow peut réduire votre coût total pour exploiter vos pipelines sur Azure Databricks. Consultez Pipelines Déclaratifs Lakeflow.

Peut-on migrer des fonctions cloud serverless vers Azure Databricks ?

En raison de l’extensibilité et de la polyvalence des fonctions cloud serverless personnalisées, il est difficile de donner une recommandation commune. Toutefois, l’un des cas d’usage les plus courants pour ces fonctions consiste à attendre que des fichiers ou des données s’affichent dans un emplacement ou une file d’attente de messages, puis à effectuer une action en conséquence. Azure Databricks ne prend pas en charge la logique complexe permettant de déclencher des charges de travail selon des conditions du cloud, mais vous pouvez utiliser le streaming structuré en conjonction avec des travaux pour traiter les données de façon incrémentielle.

Utilisez le Chargeur automatique pour optimiser l’ingestion de données à partir du stockage d’objets cloud. Structured Streaming peut traiter des données provenant de sources de streaming en quasi-temps réel.

Peut-on exécuter la syntaxe à partir d’autres systèmes de données sur Azure Databricks ?

Les pipelines ETL définis dans des langages autres que SQL, Apache Spark ou Hive peuvent nécessiter une refactorisation importante avant l’exécution sur Azure Databricks. Azure Databricks a de l’expérience dans l’assistance aux clients en vue d’effectuer une migration de la plupart des systèmes de données utilisés aujourd’hui et peut fournir des ressources permettant de démarrer rapidement votre migration.