Comparación entre Ingeniería de datos de Fabric y Azure Synapse Spark
Esta comparación entre Ingeniería de datos de Fabric y Azure Synapse Spark proporciona un resumen de las características clave y un análisis en profundidad de varias categorías, entre las que se incluyen grupos de Spark, configuración, bibliotecas, cuadernos y definiciones de trabajos de Spark.
En la siguiente tabla se comparan Azure Synapse Spark y Fabric Spark en varias categorías:
Category | Azure Synapse Spark | Fabric Spark |
---|---|---|
Grupos de Spark | Grupo de Spark - - |
Grupo de inicio / Grupo personalizado V-Order Simultaneidad alta |
Configuraciones de Spark | Nivel de grupo Nivel de cuaderno o de definición de trabajo de Spark |
Nivel de entorno Nivel de cuaderno o de definición de trabajo de Spark |
Bibliotecas de Spark | Paquetes de nivel de área de trabajo Paquetes de nivel de grupo Paquetes insertados |
- Bibliotecas del entorno Bibliotecas insertadas |
Recursos | Cuaderno (Python, Scala, Spark SQL, R y .NET) Definición de trabajo de Spark (Python, Scala y .NET) Canalizaciones de datos de Synapse Actividades de canalización (cuaderno, SJD) |
Cuaderno (Python, Scala, Spark SQL y R) Definición de trabajo de Spark (Python, Scala y R) Canalizaciones de datos de Data Factory Actividades de canalización (cuaderno, SJD) |
Data | Almacenamiento principal (ADLS Gen2) Residencia de datos (en clúster/región) |
Almacenamiento principal (OneLake) Residencia de datos (en capacidad/región) |
Metadatos | Metastore de Hive interno (HMS) HMS externo (usando Azure SQL DB) |
HMS interno (almacén de lago) - |
Conexiones | Tipo de conecto (servicios vinculados) Orígenes de datos Conexión de origen de datos con la identidad del área de trabajo |
Tipo de conector (DMTS) Orígenes de datos - |
Seguridad | RBAC y control de acceso ACL de almacenamiento (ADLS Gen2) Vínculos privados Red virtual administrada (aislamiento de red) Identidad de área de trabajo de Synapse Protección contra la filtración de datos (DEP) Etiquetas de servicio Azure Key Vault (a través de mssparkutils/servicio vinculado) |
RBAC y control de acceso OneLake RBAC Vínculos privados VNET administrada Identidad del área de trabajo - Etiquetas de servicio Azure Key Vault (a través de mssparkutils) |
DevOps | Integración de Azure DevOps CI/CD (sin compatibilidad integrada) |
Integración de Azure DevOps Canalizaciones de implementación |
Experiencia del desarrollador | Integración del IDE (IntelliJ) Interfaz de usuario de Synapse Studio Colaboración (áreas de trabajo) Livy API API o SDK mssparkutils |
Integración del IDE (VS Code) Interfaz de usuario de Fabric Colaboración (áreas de trabajo y uso compartido) - API o SDK mssparkutils |
Registro y supervisión | Spark Advisor Trabajos y grupos de supervisión integrados (a través de Synapse Studio) Servidor de historial de Spark Prometheus/Grafana Log Analytics Cuenta de almacenamiento Event Hubs |
Spark Advisor Trabajos y grupos de supervisión integrados (a través del Centro de supervisión) Servidor de historial de Spark - - - - |
Continuidad empresarial y recuperación ante desastres (BCDR) | ADLS Gen2 de BCDR (datos) | OneLake de BCDR (datos) |
Consideraciones y limitaciones:
Integración de la puerta de enlace de administración de datos: la puerta de enlace de administración de datos no se puede usar a través de cuadernos y definiciones de trabajos de Spark.
RBAC de nivel de carga de trabajo: Fabric admite cuatro roles de área de trabajo diferentes. Para obtener más información, consulte Roles en áreas de trabajo en Microsoft Fabric.
Identidad administrada: actualmente, Fabric no admite la ejecución de cuadernos y definiciones de trabajos de Spark mediante la identidad del área de trabajo o la identidad administrada con Azure Key Vault en cuadernos.
CI/CD: puede usar el SDK o la API de Fabric, así como canalizaciones de implementación.
Livy API y cómo enviar y administrar trabajos de Spark: Livy API se encuentra en la hoja de ruta de Fabric, pero aún no se ha expuesto en él. Debe crear cuadernos y definiciones de trabajos de Spark con la interfaz de usuario de Fabric.
Métricas y registros de Spark: en Azure Synapse puede emitir métricas y registros de Spark a su propio almacenamiento, como por ejemplo Log Analytics, blob e Event Hubs. También puede obtener una lista de aplicaciones de Spark para el área de trabajo desde la API. Actualmente, ninguna de las dos funcionalidades se encuentran disponibles en Fabric.
Otras consideraciones:
- JDBC: la compatibilidad con conexiones de JDBC no está disponible actualmente en Fabric.
Comparación de grupos de Spark
En la siguiente tabla se comparan grupos de Azure Synapse Spark y Fabric Spark.
Configuración de Spark | Azure Synapse Spark | Fabric Spark |
---|---|---|
Grupo en directo (instancias activadas previamente) | - | Sí, grupos de inicio |
Grupo personalizado | Sí | Sí |
Versiones de Spark (runtime) | 2.4, 3.1, 3.2, 3.3, 3.4 | 3.3, 3.4, 3.5 |
Escalado automático | Sí | Sí |
Asignación dinámica de ejecutores | Sí, hasta 200 | Sí, en función de la capacidad |
Tamaños de nodo de ajustables | Sí, 3-200 | Si, 1 basado en la capacidad |
Configuración mínima de nodos | 3 nodos | 1 nodo |
Familia de tamaños de nodo | Optimizada para memoria, con aceleración de GPU | Memoria optimizada |
Tamaño del nodo | Pequeño-Grande (XXX) | Pequeño-Grande (XX) |
Pausa automática | Sí, personalizable, mínimo 5 minutos | Sí, no personalizable, 2 minutos |
Simultaneidad alta | No | Sí |
V-Order | No | Sí |
Ajuste automático de Spark | No | Sí |
Motor de ejecución nativo | No | Sí |
Límites de simultaneidad | Fijo | Variable en función de la capacidad |
Varios grupos de Spark | Sí | Sí (entornos) |
Caché inteligente | Sí | Sí |
Compatibilidad con API/SDK | Sí | Sí |
Entorno de ejecución: Fabric no admite las versiones de Spark 2.4, 3.1 y 3.2. Fabric Spark admite Spark 3.3 con Delta 2.2 en runtime 1.1, Spark 3.4 con Delta 2.4 en tiempo de ejecución 1.2 y Spark 3.5 con Delta 3.1 en tiempo de ejecución 1.3.
Escalabilidad automática: en Azure Synapse Spark, el grupo puede escalar verticalmente un máximo de 200 nodos, independientemente del tamaño de los nodos. En Fabric, el número máximo de nodos está sujeto al tamaño de los nodos y a la capacidad aprovisionada. Vea el siguiente ejemplo de la SKU F64.
Tamaño de grupo de Spark Azure Synapse Spark Fabric Spark (grupo personalizado, SKU F64) Pequeña Mín.: 3, máx.: 200 Mín.: 1, máx.: 32 Media Mín.: 3, máx.: 200 Mín.: 1, máx.: 16 grande Mín.: 3, máx.: 200 Mín.: 1, máx.: 8 Mas grande Mín.: 3, máx.: 200 Mín.: 1, máx.: 4 Extra grande Mín.: 3, máx.: 200 Mín.: 1, máx.: 2 Tamaños de nodo ajustables: en Azure Synapse Spark, puede escalar verticalmente hasta 200 nodos. En Fabric, el número de nodos que puede tener en el grupo de Spark personalizado depende del tamaño del nodo y de la capacidad de Fabric. La capacidad es una medida de la potencia informática que puede usar en Azure. Una manera de pensar es que dos núcleos virtuales de Spark (una unidad de potencia informática para Spark) son iguales a una unidad de capacidad. Por ejemplo, una SKU F64 de capacidad de Fabric tiene 64 unidades de capacidad, que equivalen a 128 núcleos virtuales de Spark. Por consiguiente, si selecciona un tamaño de nodo pequeño, puede tener un máximo de 32 nodos en el grupo (128/4 = 32). Por tanto, el número total de núcleos virtuales en la capacidad/los núcleos virtuales por tamaño de nodo = número total de nodos disponibles. Para obtener más información, consulte Proceso de Spark.
Familia de tamaños de nodo: por el momento, los grupos de Spark de Fabric solo admiten la familia de tamaños de nodo Optimizada para memoria. Si usa un grupo de SKU Spark con aceleración de GPU en Azure Synapse, no estará disponible en Fabric.
Tamaño de nodo: el tamaño de nodo grande (xx) tiene 432 GB de memoria en Azure Synapse, mientras que el mismo tamaño tiene 512 GB en Fabric, e incluye 64 núcleos virtuales. Los restantes tamaños de nodo (desde pequeño hasta extra grande) tienen los mismos núcleos virtuales y la misma memoria en Azure Synapse y en Fabric.
Pausa automática: si la habilita en Azure Synapse Spark, el grupo de Apache Spark se pondrá en pausa automáticamente después de un período de inactividad especificado. Este valor se puede configurar en Azure Synapse (mínimo 5 minutos), pero en Fabric, una vez que la sesión expira, los grupos personalizados tienen una pausa automática que dura, de forma predeterminada, 2 minutos. En Fabric, las sesiones expiran de forma predeterminada en 20 minutos.
Alta simultaneidad: Fabric admite alta simultaneidad en los cuadernos. Para obtener más información, consulte Modo de simultaneidad alta en Fabric Spark.
Límites de simultaneidad: en términos de simultaneidad, Azure Synapse Spark tiene un límite de 50 trabajos en ejecución simultáneamente por grupo de Spark y 200 trabajos en cola por grupo de Spark. El número máximo de trabajos activos es 250 por grupo de Spark y 1000 por área de trabajo. En Microsoft Fabric Spark, las SKU de capacidad definen los límites de simultaneidad. Las SKU tienen distintos límites en cuanto al número de trabajos que se pueden de realizar simultáneamente, que oscilan entre 1 y 512. Además, Fabric Spark tiene un sistema de limitación basada en la reserva dinámica que administra la simultaneidad y garantiza un funcionamiento sin problemas, incluso en los momentos de máximo uso. Para obtener más información, consulte Límites de simultaneidad y puesta en cola en Microsoft Fabric Spark y Capacidades de Fabric.
Varios grupos de Spark: si quiere tener varios grupos de Spark, use Entornos de Fabric para seleccionar un grupo por cuaderno o definición de trabajo de Spark. Para obtener más información, consulte Creación, configuración y uso de un entorno en Microsoft Fabric.
Nota:
Comparación de configuraciones de Spark
Las configuraciones se pueden aplicarse a distintos niveles:
- Nivel de entorno: estas configuraciones se usan como configuración predeterminada en todos los trabajos de Spark del entorno.
- Nivel en línea: establezca configuraciones de Spark en línea mediante cuadernos y definiciones de trabajos de Spark.
Aunque en Azure Synapse Spark y Fabric se admiten ambas opciones, hay algunas consideraciones:
Configuración de Spark | Azure Synapse Spark | Fabric Spark |
---|---|---|
Nivel de entorno | Sí, grupos | Sí, entornos |
Insertado | Sí | Sí |
Import/Export | Sí | Sí, (.yml de entornos) |
Compatibilidad con API/SDK | Sí | Sí |
Nivel de entorno: en Azure Synapse se pueden definir varias configuraciones de Spark y asignarlas a distintos grupos de Spark. En Fabric, esto se lleva a cabo desde Entornos.
Insertada: en Azure Synapse, tanto los cuadernos como los trabajos de Spark admiten la asociación de varias configuraciones de Spark. En Fabric, las configuraciones del nivel de sesión se personalizan con el valor
spark.conf.set(<conf_name>, <conf_value>)
. En los trabajos por lotes, también puede aplicar configuraciones a través de SparkConf.Importar o exportar: esta opción de las configuraciones de Spark está disponible en entornos de Fabric.
Otras consideraciones:
- Configuraciones inmutables de Spark: algunas de las configuraciones de Spark son inmutables. Si recibe el mensaje
AnalysisException: Can't modify the value of a Spark config: <config_name>
, la propiedad en cuestión es inmutable. - Programador de FAIR: el programador de FAIR se usa en el modo de simultaneidad alta.
- V-Order: V-Order es la optimización del tiempo de escritura que se aplica a los archivos de Parquet habilitados de manera predeterminada en los grupos de Spark de Fabric.
- Escritura optimizada: Escritura optimizada está deshabilitada de manera predeterminada en Azure Synapse. Sin embargo, en Fabric Spark está habilitada de manera predeterminada.
- Configuraciones inmutables de Spark: algunas de las configuraciones de Spark son inmutables. Si recibe el mensaje
Nota:
Obtenga información sobre cómo migrar configuraciones de Spark de Azure Synapse a Fabric.
Comparación de bibliotecas de Spark
Puede aplicar bibliotecas de Spark en distintos niveles:
- Nivel de área de trabajo: en Azure Synapse, no puede cargar o instalar estas bibliotecas en su área de trabajo y, después, asignarlas a un grupo de Spark específico.
- Nivel de entorno: puede cargar o instalar bibliotecas en un entorno. Las bibliotecas del nivel de entorno están disponibles para todos los cuadernos y definiciones de trabajos de Spark que se ejecutan en el entorno.
- Insertada: además de las bibliotecas de nivel de entorno, también se pueden especificar bibliotecas insertadas. Por ejemplo, al principio de una sesión de cuaderno.
Consideraciones:
Biblioteca de Spark | Azure Synapse Spark | Fabric Spark |
---|---|---|
Nivel de área de trabajo | Sí | No |
Nivel de entorno | Sí, Grupos | Sí, entornos |
Insertado | Sí | Sí |
Import/Export | Sí | Sí |
Compatibilidad con API/SDK | Sí | Sí |
- Otras consideraciones:
- Bibliotecas integradas: Fabric y Azure Synapse comparten el mismo núcleo de Spark, pero pueden diferir algo en la compatibilidad de sus bibliotecas en tiempo de ejecución. Habitualmente, el uso que se hace del código es compatible con algunas excepciones. En ese caso, es posible que los usuarios necesiten compilación, la incorporación de bibliotecas personalizadas y el ajuste de la sintaxis. Aquí puede encontrar bibliotecas en tiempo de ejecución de Fabric Spark integradas.
Nota:
Aprenda a migrar bibliotecas de Azure Synapse Spark a Fabric.
Comparación de cuadernos
Los cuadernos y las definiciones de trabajos de Spark son los elementos principales del código para desarrollar trabajos de Apache Spark en Fabric. Hay varias diferencias que deben tenerse encuentra entre los cuadernos de Azure Synapse Spark y los cuadernos de Fabric Spark:
Capacidad del cuaderno | Azure Synapse Spark | Fabric Spark |
---|---|---|
Import/Export | Sí | Sí |
Configuración de la sesión | Sí, interfaz de usuario e insertada | Sí, interfaz de usuario (entorno) e insertada |
IntelliSense | Sí | Sí |
mssparkutils | Sí | Sí |
Recursos de los cuadernos | No | Sí |
Colaborar | No | Sí |
Simultaneidad alta | No | Sí |
.NET para Spark C# | Sí | No |
Compatibilidad de la actividad de canalización | Sí | Sí |
Compatibilidad de la ejecución programada integrada | No | Sí |
Compatibilidad con API/SDK | Sí | Sí |
mssparkutils: dado que las conexiones de DMTS aún no se admiten en Fabric,
getToken
ygetSecret
son lo único que se admite por ahora en Fabric paramssparkutils.credentials
.Recursos de cuadernos: los cuadernos de Fabric proporcionan un sistema de archivos similar a Unix que le ayudará a administrar las carpetas y los archivos. Para obtener más información, consulte Uso de cuadernos de Microsoft Fabric.
Colaboración: el cuaderno de Fabric es un elemento de colaboración que admite la edición por parte de varios usuarios en el mismo cuaderno. Para obtener más información, consulte Uso de cuadernos de Microsoft Fabric.
Alta simultaneidad: en Fabric, puede asociar cuadernos a la sesión de simultaneidad alta. Esta opción es una alternativa para quienes utilizan ThreadPoolExecutor en Azure Synapse. Para obtener más información, consulte Configurar el modo de simultaneidad alta para cuadernos de Fabric.
.NET para Spark C#: Fabric no admite .NET para Spark (C#). Sin embargo, lo aconsejable es que los usuarios con cargas de trabajo existentes escritas en C# o F# migren a Python o Scala.
Compatibilidad de la ejecución programada integrada: Fabric admite las ejecuciones programadas en cuadernos.
Otras consideraciones:
- En un cuaderno puede usar características que solo se admiten en una versión concreta de Spark. Recuerde que las versiones 2.4 y 3.1 de Spark no son compatibles con Fabric.
- Si su cuaderno o trabajo de Spark usa un servicio vinculado con conexiones de origen de datos o puntos de montaje diferentes, debe modificar los trabajos de Spark para que usen métodos alternativos de control de las conexiones con los orígenes de datos externos y los receptores. Use el código de Spark para conectarse a orígenes de datos mediante las bibliotecas de Spark disponibles.
Nota:
Obtenga información sobre cómo migrar cuadernos de Azure Synapse a Fabric.
Comparación de definiciones de trabajo de Spark
Consideraciones importantes sobre la definición de trabajo de Spark:
Capacidad de trabajo de Spark | Azure Synapse Spark | Fabric Spark |
---|---|---|
PySpark | Sí | Sí |
Scala | Sí | Sí |
.NET para Spark C# | Sí | No |
SparkR | No | Sí |
Import/Export | Sí (interfaz de usuario) | No |
Compatibilidad de la actividad de canalización | Sí | Sí |
Compatibilidad de la ejecución programada integrada | No | Sí |
Directivas de reintentos | No | Sí |
Compatibilidad con API/SDK | Sí | Sí |
Trabajos de Spark: puede aportar sus archivos .py, .R o jar. Fabric admite SparkR. Las definiciones de trabajo de Spark admiten archivos de referencia, argumentos de la línea de comandos, configuraciones de Spark y referencias del almacén de lago.
Importar o exportar: en Azure Synapse, es posible importar o exportar de la interfaz de usuario definiciones de trabajos de Spark basadas en JSON. Esta característica aún no está disponible en Fabric.
.NET para Spark C#: Fabric no admite .NET para Spark (C#). Sin embargo, lo aconsejable es que los usuarios con cargas de trabajo existentes escritas en C# o F# migren a Python o Scala.
Compatibilidad de la ejecución programada integrada: Fabric admite las ejecuciones programadas en una definición de trabajo de Spark.
Directivas de reintento: esta opción permite a los usuarios ejecutar trabajos del flujo estructurado de Spark de forma indefinida.
Comparación de metastore de Hive (HMS)
Diferencias y consideraciones de MetaStore de Hive (HMS):
Tipo de HMS | Azure Synapse Spark | Fabric Spark |
---|---|---|
HMS interno | Sí | Sí (almacén de lago) |
HMS externo | Sí | No |
- HMS externo: actualmente, Fabric no admite Catalog API y el acceso a un metastore de Hive (HMS) externo.
Nota:
Aprenda a migrar metadatos HMS del catálogo de Azure Synapse Spark a Fabric.
Contenido relacionado
- Obtenga más información sobre las opciones de migración de los grupos de Spark, las configuraciones, las bibliotecas, los cuadernos y las definiciones de trabajos de Spark.
- Migrar datos y canalizaciones
- Migración de metadatos de la metastore de Hive