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.
- Configurations Spark immuables : certaines configurations Spark sont immuables. Si vous recevez le message
Remarque
Découvrez comment Migrer des configurations Spark d’Azure Synapse Spark vers Fabric.
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
etgetSecret
sont prises en charge pour le moment dans Fabric pourmssparkutils.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.
Remarque
Découvrez comment Migrer des notebooks d’Azure Synapse vers Fabric.
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.
Remarque
Découvrez comment Migrer des définitions de tâches Spark d’Azure Synapse vers Fabric.
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.
Contenu connexe
- En savoir plus sur les options de migration pour les pools Spark, les configurations, les bibliothèques, les notebooks et les définitions de tâches Spark
- Migrer des données et des pipelines
- Migrer les métadonnées du metastore Hive