Partager via


Comparer l’engineering données Fabric et Azure Synapse Spark

Cette comparaison entre l’engineering données Fabric et Azure Synapse Spark fournit un résumé des fonctionnalités clés et une analyse approfondie de différentes catégories, notamment les pools Spark, la configuration, les bibliothèques, les notebooks et les définitions de tâches Spark.

Le tableau suivant compare Azure Synapse Spark et Fabric Spark dans différentes catégories :

Catégorie Azure Synapse Spark Fabric Spark
Spark pools Pool Spark
-
-
Pool de démarrage / Pool personnalisé
V-Order
Concurrence élevée
Configurations de Spark Niveau du pool
Niveau de Notebook ou de définition de tâche Spark
Niveau d’environnement
Niveau de Notebook ou de définition de tâche Spark
Bibliothèques Spark Packages au niveau de l’espace de travail
Packages de niveau du pool
Packages inline
-
Bibliothèques d’environnement
Bibliothèques inline
Ressources Notebook (Python, Scala, Spark SQL, R, .NET)
Définition de tâche Spark (Python, Scala, .NET)
Pipelines de données Synapse
Activités de pipeline (notebook, SJD)
Notebook (Python, Scala, Spark SQL, R)
Définition de tâche Spark (Python, Scala, R)
Pipelines de données Data Factory
Activités de pipeline (notebook, SJD)
Données Stockage principal (ADLS Gen2)
Résidence des données (cluster/région)
Stockage principal (OneLake)
Résidence des données (capacité/région)
Métadonnées Metastore Hive interne (HMS)
HMS externe (à l’aide d’Azure SQL DB)
HMS interne (lakehouse)
-
Connexions Type de connecteur (services liés)
Sources de données
Conn. de source de données avec l’identité de l’espace de travail
Type de connecteur (DMTS)
Sources de données
-
Sécurité RBAC et contrôle d’accès
Listes de contrôle d’accès de stockage (ADLS Gen2)
Liaisons privées
VNet managé (isolation réseau)
Identité de l’espace de travail Synapse
Protection contre l’exfiltration des données (DEP)
Balises de service
Key Vault (via mssparkutils/ services liés)
RBAC et contrôle d’accès
OneLake RBAC
Liaisons privées
VNet managé
Identité d’espace de travail
-
Balises de service
Key Vault (via mssparkutils)
DevOps Intégration à Azure DevOps
CI/CD (aucune prise en charge intégrée)
Intégration à Azure DevOps
Pipelines de déploiement
Expérience développeur Intégration de l’IDE (IntelliJ)
IU Synapse Studio
Collaboration (espaces de travail)
Livy API
SDK API
mssparkutils
Intégration de l’IDE (VS Code)
IU Fabric
Collaboration (espaces de travail et partage)
-
SDK/API
mssparkutils
Enregistrement et surveillance Spark Advisor
Pools et tâches de surveillance intégrées (via Synapse Studio)
Serveur d’historique Spark
Prometheus/Grafana
Log Analytics
Compte de stockage
Event Hubs
Spark Advisor
Pools et tâches de surveillance intégrées (via le hubde supervision)
Serveur d’historique Spark
-
-
-
-
Continuité d’activité et reprise d’activité (BCDR) BCDR (données) ADLS Gen2 BCDR (données) OneLake

Considérations et limitations :

  • Intégration DMTS : vous ne pouvez pas utiliser DMTS via des notebooks et des définitions de tâches Spark.

  • RBAC au niveau de la charge de travail : Fabric prend en charge quatre rôles d’espace de travail différents. Pour plus d’informations, consultez Rôles dans les espaces de travail dans Microsoft Fabric.

  • Identité managée : actuellement, Fabric ne prend pas en charge l’exécution de notebooks et de définitions de tâches Spark à l’aide de l’identité de l’espace de travail ou de l’identité managée pour Azure Key Vault dans les notebooks.

  • CI/CD : vous pouvez utiliser les pipelines d’API/SDKou de déploiement Fabric.

  • API Livy et comment envoyer et gérer des tâches Spark : l’API Livy est dans la feuille de route, mais elle n’est pas encore exposée dans Fabric. Vous devez créer des notebooks et des définitions de tâches Spark avec l’interface utilisateur Fabric.

  • Journaux et métriques Spark : Dans Azure Synapse, vous pouvez émettre des journaux Spark et des métriques vers votre propre stockage, comme Log Analytics, objet blob et Event Hubs. Vous pouvez aussi obtenir une liste des applications Spark pour l’espace de travail à partir de l’API. Actuellement, ces deux fonctionnalités ne sont pas disponibles dans Fabric.

  • Autres points à considérer :

    • JDBC : la prise en charge des connexions JDBC n’est pas disponible actuellement dans Fabric.

Comparaison des pools Spark

Le tableau suivant compare les pools Azure Synapse Spark et Fabric Spark.

Paramètre Spark Azure Synapse Spark Fabric Spark
Pool en direct (instances préchauffe) - Oui, pools de démarrage
Pool personnalisé Oui Oui
Versions Spark (runtime) 2.4, 3.1, 3.2, 3.3, 3.4 3.3, 3.4, 3.5
Mise à l’échelle automatique Oui Oui
Allocation dynamique des exécuteurs Oui, jusqu’à 200 Oui, en fonction de la capacité
Tailles de nœud réglables Oui, 3-200 Oui, en fonction de la capacité 1
Configuration minimale des nœuds 3 nœuds 1 nœud
Famille de tailles de nœud Mémoire optimisée, accélération GPU Mémoire optimisée
Taille du nœud Small-XXXLarge Small-XXLarge
Mise en pause automatique Oui, personnalisable minimum 5 minutes Oui, non-personnalisable 2 minutes
Concurrence élevée Non Oui
V-Order Non Oui
Autotune Spark Non Oui
Moteur d'exécution natif Non Oui
Limites de concurrence Résolution Variable en fonction de la capacité
Plusieurs pools Spark Oui Oui (environnements)
Cache intelligent Oui Oui
Prise en charge du SDK/de l’API Oui Oui
  • Runtime : Fabric ne prend pas en charge les versions de Spark 2.4, 3.1 et 3.2. Fabric Spark prend en charge Spark 3.3 avec Delta 2.2 dans le Runtime 1.1, Spark 3.4 avec Delta 2.4 dans le Runtime 1.2 et Spark 3.5 avec Delta 3.1 dans le Runtime 1.3.

  • Mise à l’échelle automatique : dans Azure Synapse Spark, le pool peut effectuer une mise à l’échelle jusqu’à 200 nœuds, quelle que soit la taille du nœud. Dans Fabric, le nombre maximal de nœuds dépend de la taille des nœuds et de la capacité provisionnée. Consultez l’exemple suivant pour le SKU F64.

    Taille du pool Spark Azure Synapse Spark Fabric Spark (pool personnalisé SKU F64)
    Small Min = 3, Max = 200 Min = 1, Max = 32
    Moyenne Min = 3, Max = 200 Min = 1, Max = 16
    grand Min = 3, Max = 200 Min = 1, Max = 8
    X-Large Min = 3, Max = 200 Min = 1, Max = 4
    XX-Large Min = 3, Max = 200 Min = 1, Max = 2
  • Tailles de nœud réglables: dans Azure Synapse Spark, vous pouvez atteindre jusqu’à 200 nœuds. Dans Fabric, le nombre de nœuds que vous pouvez avoir dans votre pool Spark personnalisé dépend de la taille de votre nœud et de la capacité de Fabric. La capacité est une mesure de la puissance de calcul que vous pouvez utiliser dans Azure. vCores Spark (une unité de puissance de calcul pour Spark) équivalent à une unité de capacité. Par exemple, une capacité Fabric SKU F64 a 64 unités de capacité, ce qui équivaut à 128 VCores Spark. Par conséquent, si vous choisissez une petite taille de nœud, vous pouvez avoir jusqu’à 32 nœuds dans votre pool (128/4 = 32). Ensuite, le nombre total de vCores dans la capacité/vCores par taille de nœud = le nombre total de nœuds disponibles. Pour plus d’informations, consultez Calcul Spark.

  • Famille de tailles de nœud : les pools Fabric Spark prennent uniquement en charge la famille de tailles de nœud optimisée en mémoire pour le moment. Si vous utilisez un pool Spark de référence SKU accélérée par GPU dans Azure Synapse, ils ne sont pas disponibles dans Fabric.

  • Taille du nœud : la taille de nœud xx-large est fournie avec 432 Go de mémoire dans Azure Synapse, tandis que la même taille de nœud a 512 Go dans Fabric et comprend 64 vCores. Les autres tailles de nœuds (de small à x-large) ont les mêmes vCores et la même mémoire dans Azure Synapse et Fabric.

  • Suspension automatique : si elle est activée dans Azure Synapse Spark, le pool Apache Spark s’interrompt automatiquement après une durée d’inactivité spécifiée. Ce paramètre est configurable dans Azure Synapse (au minimum 5 minutes), mais les pools personnalisés ont une durée de pause automatique non-personnalisable par défaut de 2 minutes dans Fabric après l’expiration de la session. L’expiration de session par défaut est définie à 20 minutes dans Fabric.

  • Concurrence élevée : Fabric prend en charge la concurrence élevée dans les notebooks. Pour plus d’informations, consultez Mode concurrentiel élevé dans Fabric Spark.

  • Limites de concurrence : en termes de concurrence, Azure Synapse Spark a une limite de 50 tâches en cours d’exécution simultanées par pool Spark et 200 travaux mis en file d’attente par pool Spark. Le maximum de tâches actives est de 250 par pool Spark et 1000 par espace de travail. Dans Microsoft Fabric Spark, les références SKU de capacité définissent les limites de concurrence. Les références SKU ont des limites variables sur les tâches simultanées maximales comprises entre 1 et 512. En outre, Fabric Spark dispose d’un système de limitation dynamique basé sur les réserves pour gérer la concurrence et garantir une opération fluide même pendant les pics d’utilisation. Pour plus d’informations, consultez Limites de concurrence et mise en file d’attente dans les capacités Microsoft Fabric Spark et Fabric.

  • Plusieurs pools Spark : si vous souhaitez avoir plusieurs pools Spark, utilisez des environnements Fabric pour sélectionner un pool par notebook ou définition de tâche Spark. Pour plus d’informations, consultez Créer, configurer et utiliser un environnement dans Microsoft Fabric.

Remarque

Découvrez comment migrer des pools Azure Synapse Spark vers Fabric.

Comparaison des configurations Spark

Les configurations Spark peuvent être appliquées à différents niveaux :

  • Niveau de l’environnement : ces configurations sont utilisées comme configuration par défaut pour toutes les tâches Spark dans l’environnement.
  • Niveau inline : définissez les configurations Spark inline à l’aide de notebooks et de définitions de tâches Spark.

Bien que les deux options soient prises en charge dans Azure Synapse Spark et Fabric, il existe quelques éléments à prendre en compte :

Configuration Spark Azure Synapse Spark Fabric Spark
Niveau d’environnement Oui, pools Oui, environnements
Intraligne Oui Oui
Importation/Exportation Oui Oui (.yml à partir d’environnements)
Prise en charge du SDK/de l’API Oui Oui
  • Niveau de l’environnement : dans Azure Synapse, vous pouvez définir plusieurs configurations Spark et les affecter à différents pools Spark. Vous pouvez le faire dans Fabric à l’aide d’environnements.

  • Inline : Dans Azure Synapse, les blocs-notes et les tâches Spark prennent en charge l’attachement de différentes configurations Spark. Dans Fabric, les configurations au niveau de la session sont personnalisées avec le paramètre spark.conf.set(<conf_name>, <conf_value>). Pour les tâches par lots, vous pouvez également appliquer des configurations via SparkConf.

  • Importation/exportation : cette option pour les configurations Spark est disponible dans les environnements Fabric.

  • Autres points à considérer :

    • Configurations Spark immuables : certaines configurations Spark sont immuables. Si vous recevez le message AnalysisException: Can't modify the value of a Spark config: <config_name>, la propriété en question est immuable.
    • Planificateur FAIR : le planificateur FAIR est utilisé en mode concurrentiel élevé.
    • V-Order : V-Order est une optimisation du temps d’écriture appliquée aux fichiers Parquet activés par défaut dans les pools Fabric Spark.
    • Écriture optimisée : l’écriture optimisée est désactivée par défaut dans Azure Synapse, mais activée par défaut pour Fabric Spark.

Comparaison des bibliothèques Spark

Vous pouvez appliquer des bibliothèques Spark à différents niveaux :

  • Niveau de l’espace de travail : vous ne pouvez pas charger/installer ces bibliothèques dans votre espace de travail et les affecter ultérieurement à un pool Spark spécifique dans Azure Synapse.
  • Niveau de l’environnement : vous pouvez charger/installer des bibliothèques dans un environnement. Les bibliothèques au niveau de l’environnement sont disponibles pour tous les notebooks et les définitions de tâches Spark s’exécutant dans l’environnement.
  • Inline : en plus des bibliothèques au niveau de l’environnement, vous pouvez également spécifier des bibliothèques inline. Par exemple, au début d’une session de notebook.

Considérations

Bibliothèque Spark Azure Synapse Spark Fabric Spark
Niveau Espace de travail Oui Non
Niveau d’environnement Oui, pools Oui, environnements
Intraligne Oui Oui
Importation/Exportation Oui Oui
Prise en charge du SDK/de l’API Oui Oui
  • Autres points à considérer :
    • Bibliothèques intégrées : Fabric et Azure Synapse partagent un cœur commun de Spark, mais la prise en charge de leurs bibliothèques d’exécution peut légèrement différer. En règle générale, le code est compatible sauf pour certaines exceptions. Dans ce cas, les utilisateurs peuvent avoir besoin de compilation, d’ajout de bibliothèques personnalisées et d’ajustement de la syntaxe. Consultez les bibliothèques de runtime Fabric Spark intégrées ici.

Remarque

Découvrez comment migrer des bibliothèques Azure Synapse Spark vers Fabric.

Comparaison des notebooks

Les notebooks et les définitions de tâches Spark sont des éléments de code principaux pour le développement de tâches Apache Spark dans Fabric. Il existe quelques différences à prendre en compte entre les notebooks Azure Synapse Spark et les notebooks Fabric Spark :

Fonctionnalité notebook Azure Synapse Spark Fabric Spark
Importation/Exportation Oui Oui
Configuration de session Oui, IU et inline Oui, IU (environnement) et inline
IntelliSense Oui Oui
mssparkutils Oui Oui
Ressources de Notebook Non Oui
Travailler en collaboration Non Oui
Concurrence élevée Non Oui
.NET pour Spark C# Oui No
Prise en charge de l’activité de pipeline Oui Oui
Prise en charge de l’exécution planifiée intégrée Non Oui
Prise en charge du SDK/de l’API Oui Oui
  • mssparkutils : étant donné que les connexions DMTS ne sont pas encore prises en charge dans Fabric, seules getToken et getSecret sont prises en charge pour le moment dans Fabric pour mssparkutils.credentials.

  • Ressources notebooks : les notebooks Fabric fournissent un système de fichiers de type Unix pour vous aider à gérer vos dossiers et fichiers. Pour plus d’informations, consultez Utilisation des notebooks Microsoft Fabric.

  • Collaboration : le notebook Fabric est un élément collaboratif qui prend en charge plusieurs utilisateurs qui modifient le même notebook. Pour plus d’informations, consultez Utilisation des notebooks Microsoft Fabric.

  • Concurrence élevée : dans Fabric, vous pouvez attacher des notebooks à la session concurrentielle élevée. Cette option est une alternative pour les utilisateurs qui utilisent ThreadPoolExecutor dans Azure Synapse. Pour plus d’informations, consultez Configurer le mode d’accès concurrentiel élevé pour les notebooks Fabric.

  • .NET pour Spark C# : Fabric ne prend pas en charge .NET Spark (C#). Cependant, nous recommandons aux utilisateurs disposant de charges de travail existantes écrites en C# ou F# de migrer vers Python ou Scala.

  • Prise en charge intégrée des exécutions planifiées : Fabric prend en charge les exécutions planifiées pour les notebooks.

  • Autres points à considérer :

    • Vous pouvez utiliser des fonctionnalités à l’intérieur d’un notebook pris en charge uniquement dans une version spécifique de Spark. N’oubliez pas que Spark 2.4 et 3.1 ne sont pas pris en charge dans Fabric.
    • Si votre notebook ou votre tâche Spark utilisent un service lié avec différentes connexions ou points de montage de source de données, vous devez modifier vos tâches Spark pour leur permettre d’utiliser d’autres méthodes pour gérer les connexions à des sources de données externes et des récepteurs. Utilisez le code Spark pour vous connecter à des sources de données à l’aide de bibliothèques Spark disponibles.

Comparaison des définitions de tâche Spark

Considérations importantes relatives aux définitions de tâches Spark :

Fonctionnalité de tâche Spark Azure Synapse Spark Fabric Spark
PySpark Oui Oui
Scala Oui Oui
.NET pour Spark C# Oui No
SparkR Non Oui
Importation/Exportation Oui (IU) Non
Prise en charge de l’activité de pipeline Oui Oui
Prise en charge de l’exécution planifiée intégrée Non Oui
Stratégies de nouvelle tentative Non Oui
Prise en charge du SDK/de l’API Oui Oui
  • Tâches Spark : vous pouvez apporter vos fichiers .py/.R/jar. Fabric prend en charge SparkR. Une définition de tâche Spark prend en charge les fichiers de référence, les arguments de ligne de commande, les configurations Spark et les références lakehouse.

  • Importation/exportation : dans Azure Synapse, vous pouvez importer/exporter des définitions de tâches Spark basées sur json à partir de l’interface utilisateur. Cette fonctionnalité n’est pas encore disponible dans Fabric.

  • .NET pour Spark C# : Fabric ne prend pas en charge .NET Spark (C#). Nous recommandons aux utilisateurs disposant de charges de travail existantes écrites en C# ou F# de migrer vers Python ou Scala.

  • Prise en charge intégrée des exécutions planifiées : Fabric prend en charge les exécutions planifiées pour une définition de tâche Spark.

  • Stratégies de nouvelle tentative : cette option permet aux utilisateurs d’exécuter indéfiniment des tâches de streaming structuré Spark.

Comparaison de Metastore Hive (HMS)

Différences et considérations relatives au MetaStore Hive (HMS) :

Type HMS Azure Synapse Spark Fabric Spark
HMS interne Oui Oui (lakehouse)
HMS externe Oui No
  • HMS externe : Fabric ne prend actuellement pas en charge une API catalogue et l’accès à un metastore Hive externe (HMS).

Remarque

Découvrez comment migrer les métadonnées HMS du catalogue Azure Synapse Spark vers Fabric.