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
Versiones de Spark (runtime) 2.4, 3.1, 3.2, 3.3, 3.4 3.3, 3.4, 3.5
Escalado automático
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
V-Order No
Ajuste automático de Spark No
Motor de ejecución nativo No
Límites de simultaneidad Fijo Variable en función de la capacidad
Varios grupos de Spark Sí (entornos)
Caché inteligente
Compatibilidad con API/SDK
  • 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.

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
Import/Export Sí, (.yml de entornos)
Compatibilidad con API/SDK
  • 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.

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 No
Nivel de entorno Sí, Grupos Sí, entornos
Insertado
Import/Export
Compatibilidad con API/SDK
  • 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.

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
Configuración de la sesión Sí, interfaz de usuario e insertada Sí, interfaz de usuario (entorno) e insertada
IntelliSense
mssparkutils
Recursos de los cuadernos No
Colaborar No
Simultaneidad alta No
.NET para Spark C# No
Compatibilidad de la actividad de canalización
Compatibilidad de la ejecución programada integrada No
Compatibilidad con API/SDK
  • mssparkutils: dado que las conexiones de DMTS aún no se admiten en Fabric, getToken y getSecret son lo único que se admite por ahora en Fabric para mssparkutils.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
Scala
.NET para Spark C# No
SparkR No
Import/Export Sí (interfaz de usuario) No
Compatibilidad de la actividad de canalización
Compatibilidad de la ejecución programada integrada No
Directivas de reintentos No
Compatibilidad con API/SDK
  • 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í (almacén de lago)
HMS externo No
  • HMS externo: actualmente, Fabric no admite Catalog API y el acceso a un metastore de Hive (HMS) externo.