Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Este artículo es la segunda fase de cuatro en la serie de procedimientos recomendados para la migración de Azure Synapse Spark a Microsoft Fabric.
Use este artículo para migrar las cargas de trabajo de Spark de Azure Synapse a Microsoft Fabric. En este artículo se describe la ejecución del Migration Assistant, la refactorización de patrones de código que no se pueden convertir automáticamente y la migración de configuraciones, entornos y bibliotecas del grupo de Spark.
En este artículo aprenderá a:
- Comprenda el flujo de trabajo de migración para áreas de trabajo estándar (no habilitadas para Git) y áreas de trabajo Synapse habilitadas para Git.
- Use el Migration Assistant de Spark para migrar cuadernos, definiciones de trabajos y grupos de Spark.
- Refactorice patrones de código específicos de Synapse para compatibilidad con Fabric.
- Migre la configuración, los entornos y las bibliotecas del grupo de Spark.
- Identifique y resuelva las brechas de compatibilidad de bibliotecas entre Synapse y Fabric.
Migrar con el Asistente de Migración
El Asistente de Migración de Spark automatiza la migración de notebooks, definiciones de tareas de Spark, grupos y metadatos de bases de datos de lago desde Synapse a Fabric. El asistente copia y transforma los elementos, pero no completa la migración; aún tiene que refactorizar el código, conciliar los huecos de configuración y validar los resultados.
Para obtener instrucciones paso a paso sobre cómo ejecutar el asistente, consulte Spark Synapse para Fabric Spark Migration Assistant (versión preliminar).
El asistente migra los siguientes elementos:
- Los grupos de Spark se migran a grupos de Fabric y a los artefactos de entorno correspondientes.
- Los cuadernos y sus entornos asociados se migran.
- Las definiciones de trabajos de Spark se migran con entornos asociados.
- Las bases de datos de Lake se asignan a esquemas de Fabric; las tablas Delta administradas se migran a través de accesos directos de catálogo de OneLake.
Importante
El asistente no migra las configuraciones de Spark, las bibliotecas personalizadas ni la configuración del ejecutor personalizado. Debe configurar estos manualmente en los entornos de Fabric. Las áreas de trabajo de Synapse en una red virtual no se pueden migrar con el asistente.
Migración del área de trabajo estándar (no basado en Git)
En el caso de las áreas de trabajo en las que los cuadernos y los SJD se almacenan directamente en Synapse (no en un repositorio de Git):
Ejecute el Migration Assistant de Spark desde el área de trabajo de Fabric (Migrate>Data engineering items). Seleccione el área de trabajo de Synapse de origen y migre todos los elementos de Spark.
Validar dependencias: asegúrese de que se usa la misma versión de Spark. Si los cuadernos hacen referencia a otros cuadernos a través de
mssparkutils.notebook.run(), compruebe que los también se migraron. El Migration Assistant conserva la estructura de carpetas (Fabric admite hasta 10 niveles de anidamiento).Refactorizar código: reemplace
mssparkutilspornotebookutils, reemplace las referencias de servicios vinculadas por conexiones de Fabric y actualice las rutas de acceso de archivo. Consulte la sección Refactorización del código de Spark para obtener más información.
Migración de área de trabajo habilitada para Git
En el caso de las áreas de trabajo en las que los cuadernos y los SJD se almacenan en un repositorio de Azure DevOps o GitHub, tenga en cuenta que Synapse y Fabric usan diferentes formatos de serialización de Git. Synapse almacena cuadernos como JSON; Fabric usa el formato de origen .py/.scala o .ipynb. No puede apuntar un espacio de trabajo de Fabric directamente a la misma rama de Git de Synapse.
Migrar elementos. Utilice el Asistente de Migración de Spark para migrar cuadernos y SJD desde el entorno de trabajo de Synapse a un entorno de trabajo de Fabric. Esto convierte los elementos en formato compatible con Fabric.
Refactorizar código. Aplique la misma refactorización de código que el escenario estándar: reemplace
mssparkutils, actualice las rutas de acceso del archivo y reemplace los servicios vinculados. Consulte la sección Refactorización del código de Spark para obtener más información.Conecte el área de trabajo de Fabric a Git. Conecte el área de trabajo de Fabric a una nueva rama o carpeta del repositorio (Configuración del área de trabajo>Control de versiones>Integración con Git). Use una rama o carpeta independiente del contenido de Synapse para evitar conflictos. Confirme el contenido del área de trabajo de Fabric para rellenar la nueva rama.
Configurar canalizaciones de implementación (opcional). Configurar tuberías de despliegue de Fabric (desarrollo → prueba → producción) para CI/CD en curso. Fabric admite el enlace automático para las casas de lago predeterminadas y los entornos adjuntos al implementarse entre fases.
Sugerencia
Mantenga intacta la rama de Git de Synapse como referencia histórica. Cree una nueva rama o carpeta para el contenido de Fabric. Fabric almacena cuadernos como archivos de origen (.py para PySpark) en lugar de JSON, que proporciona diferencias de Git más limpias para la revisión de código.
Refactorización del código de Spark
Después de migrar los cuadernos y las definiciones de trabajo de Spark, debe corregir los patrones de código que el Migration Assistant no puede convertir automáticamente. En esta sección se explica cómo reemplazar las API específicas de Synapse, actualizar las rutas de acceso de archivo y cambiar los patrones de credenciales para que funcionen con Fabric.
Auditoría previa a la refactorización
Antes de abordar patrones de refactorización individuales, ejecute una búsqueda en todo el código base en todos los cuadernos para identificar código específico de Synapse que necesite cambios.
| Patrón de búsqueda | Category | Acción necesaria |
|---|---|---|
spark.synapse.linkedService |
Servicios vinculados | Eliminar; reemplazar por la autenticación directa del punto de conexión o los secretos de Key Vault |
getSecretWithLS |
Credentials | Reemplazar por getSecret(vaultUrl, secretName) |
TokenLibrary |
Token/Autenticación | Eliminar; utilizar la configuración directa de OAuth o notebookutils |
synapsesql |
Conector de SQL | Reemplazar spark.read.synapsesql() con lecturas de formato Delta |
mssparkutils |
Utilidades de Spark | Reemplace por notebookutils (la mayoría de las API idénticas) |
spark.catalog.listDatabases |
API de catálogo | Reemplazar por spark.sql("SHOW DATABASES") |
spark.catalog.currentDatabase |
API de catálogo | Reemplazar por spark.sql("SELECT CURRENT_DATABASE()") |
spark.catalog.getDatabase |
API de catálogo | Reemplazar por spark.sql("DESCRIBE DATABASE ...") |
spark.catalog.listFunctions |
API de catálogo | No se admite en Fabric: quitar |
spark.catalog.registerFunction |
API de catálogo | No compatible: use spark.udf.register() en su lugar. |
spark.catalog.functionExists |
API de catálogo | No se admite en Fabric: eliminar |
LinkedServiceBasedTokenProvider |
Proveedor de autenticación | Reemplazar por ClientCredsTokenProvider |
getPropertiesAsMap |
Servicios vinculados | Eliminar; configurar la cuenta de almacenamiento directamente |
spark.storage.synapse |
Servicios vinculados | Eliminar — no está admitido en Fabric |
/user/trusted-service-user/ |
Rutas de acceso de archivo | Reemplazar por la ruta de OneLake o un atajo |
cosmos.oltp |
Cosmos DB | Actualización para usar Key Vault para secretos en lugar del servicio vinculado |
kusto.spark.synapse |
Kusto/ADX | Reemplazar la autenticación del servicio vinculado con accessToken mediante getToken() |
Sugerencia
Ejecute estas búsquedas en todo el repositorio de cuadernos antes de la migración. Los cuadernos con cero coincidencias son seguros para migrar as-is. Los cuadernos con coincidencias deben priorizarse para la refactorización de código mediante las instrucciones detalladas de las secciones siguientes.
Uso de la ruta de acceso de archivo
Actualice los cuadernos de Synapse que utilizan rutas de acceso relativas o rutas de almacenamiento administradas por Synapse, para emplear rutas de acceso directas abfss:// o rutas de acceso a OneLake en Fabric.
| Antes (Synapse) | Después de (Fabric) |
|---|---|
"abfss://...@<synapse_storage>.dfs.core.windows.net/user/trusted-service-user/deltalake" |
"abfss://<workspace_id>@onelake.dfs.fabric.microsoft.com/<lakehouse_id>/Tables/deltalake" |
spark.read.synapsesql("<pool>.<schema>.<table>") |
spark.read.format("delta").load("abfss://.../<lakehouse>/Tables/<table>") |
Sugerencia
Reemplace todas las rutas de acceso de almacenamiento administradas por Synapse por las rutas de acceso de OneLake (abfss://<workspace_id>@onelake.dfs.fabric.microsoft.com/<item_id>/...). En el caso de los datos de ADLS Gen2, cree accesos directos de OneLake y haga referencia a las rutas de acceso directo en su lugar.
API de catálogo de Spark
Fabric no admite varios métodos spark.catalog. Reemplácelas por equivalentes de Spark SQL.
| Antes (Synapse) | After (Fabric) |
|---|---|
spark.catalog.listDatabases() |
spark.sql("SHOW DATABASES").show() |
spark.catalog.currentDatabase() |
spark.sql("SELECT CURRENT_DATABASE()").first()["current_database()"] |
spark.catalog.getDatabase(db_name) |
spark.sql(f"DESCRIBE DATABASE {db_name}").show() |
spark.catalog.listFunctions() |
No es compatible con Fabric: elimínelo o sáltelo. |
spark.catalog.registerFunction(name, fn) |
No se admite en Fabric: use spark.udf.register() en su lugar. |
spark.catalog.functionExists(name) |
No es compatible con Fabric: quitar o omitir |
Note
spark.catalog métodos de tabla como createTable(), tableExists() y listTables() funcionan normalmente en Fabric. Solo los métodos de catálogo de nivel de base de datos y de nivel de función requieren refactorización.
MSSparkUtils y NotebookUtils
Reemplace mssparkutils por los equivalentes de notebookutils llamadas Fabric. Los cambios relacionados con las credenciales más comunes son:
| Antes (Synapse) | After (Fabric) |
|---|---|
mssparkutils.credentials.getSecretWithLS("sampleLS", secretKey) |
notebookutils.credentials.getSecret("https://<vault>.vault.azure.net/", secretKey) |
TokenLibrary.getSecret("foo", "bar") |
notebookutils.credentials.getSecret("https://foo.vault.azure.net/", "bar") |
En Fabric, no se admite la recuperación de secretos basada en el servicio vinculado (getSecretWithLS). En su lugar, haga referencia a la dirección URL de Key Vault directamente mediante notebookutils.credentials.getSecret(vaultUrl, secretName). El mismo patrón se aplica a las TokenLibrary.getSecret() llamadas.
Note
La mayoría de los métodos /> /notebook.run() referencias de ruta de acceso.
Azure Data Explorer (Kusto) Conector
Los cuadernos de Synapse que se conectan a Azure Data Explorer (Kusto) a través de servicios vinculados deben refactorizarse para usar la autenticación directa del punto de conexión.
| Antes (Synapse) | After (Fabric) |
|---|---|
.option("spark.synapse.linkedService", "AzureDataExplorer1") |
Quitar referencia de servicio vinculado |
| Leer con conjunto de opciones de servicio vinculado | .option("accessToken", notebookutils.credentials.getToken("https://<cluster>.kusto.windows.net")) |
Reemplace la opción de servicio vinculado por una accessToken opción. Usa notebookutils.credentials.getToken() para obtener un token para el endpoint del clúster de Kusto. El resto de las opciones de consulta (kustoDatabase, kustoQuery) permanecen sin cambios.
Conector de Cosmos DB
Actualice las conexiones de Cosmos DB en Synapse que utilizan servicios vinculados o getSecretWithLS.
| Antes (Synapse) | After (Fabric) |
|---|---|
.option("spark.synapse.linkedService", "CosmosDbLS") |
Quitar referencia de servicio vinculado |
mssparkutils.credentials.getSecretWithLS("cosmosKeyLS", "cosmosKey") |
notebookutils.credentials.getSecret("https://<vault>.vault.azure.net/", "cosmosKey") |
Reemplace la referencia del servicio vinculado por la configuración directa del endpoint de Cosmos DB. Almacene la clave de cuenta de Cosmos DB en Azure Key Vault y recuperela mediante notebookutils.credentials.getSecret(vaultUrl, secretName) en lugar de getSecretWithLS().
Referencias de servicio vinculado
Reemplaza todas las referencias de servicios vinculados de Synapse en Fabric.
| Antes (Synapse) | After (Fabric) |
|---|---|
spark.conf.set("spark.storage.synapse.linkedServiceName", ls_name) |
Eliminar — no está admitido en Fabric |
spark.conf.set("fs.azure.account.oauth.provider.type", "com.microsoft.azure.synapse.tokenlibrary.LinkedServiceBasedTokenProvider") |
spark.conf.set("fs.azure.account.oauth.provider.type", "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider") |
TokenLibrary.getPropertiesAsMap(linked_service_cfg) |
Quitar: usar una cadena de conexión directa o la configuración de un principal de servicio. |
En Fabric, no hay servicios vinculados. Reemplace el proveedor de tokens de Synapse por las credenciales de cliente de OAuth estándar (entidad de servicio). Configure fs.azure.account.auth.type, oauth.provider.type, client.id, client.secrety client.endpoint directamente mediante spark.conf.set().
Biblioteca de tokens
El TokenLibrary de Synapse para obtener tokens y leer las propiedades del servicio vinculado no está disponible en Fabric. Reemplácelo por patrones equivalentes.
| Antes (Synapse) | After (Fabric) |
|---|---|
TokenLibrary.getPropertiesAsMap(serviceConnection) |
Quitar: configurar la cuenta de almacenamiento directamente |
val my_account = conexion("Endpoint").toString.substring(8) |
val my_account = "<storage_account_name>" // Hardcode or retrieve via notebookutils |
mssparkutils.fs.head(internalPath, Int.MaxValue) |
notebookutils.fs.head(internalPath, Int.MaxValue) |
Para el acceso ADLS Gen2 basado en OAuth, configure las credenciales de la entidad de servicio directamente mediante spark.conf.set() con las claves específicas de la cuenta de almacenamiento (por ejemplo, fs.azure.account.auth.type.<account>.dfs.core.windows.net) en lugar de depender de proveedores de tokens de servicio vinculados.
Importante
Revise todos los cuadernos para ver las referencias de servicio vinculados antes de la migración. Los intentos restantes de las llamadas spark.synapse.linkedService, TokenLibrary o getSecretWithLS fallan en tiempo de ejecución en Fabric.
Migración de definiciones de trabajos de Spark
Las definiciones de trabajos de Spark (SJD) son configuraciones de trabajo por lotes que hacen referencia a un archivo ejecutable principal (.py, .jaro .R), bibliotecas de referencia opcionales, argumentos de línea de comandos y un contexto de lakehouse. Aunque spark Migration Assistant controla automáticamente la migración de SJD, las diferencias importantes entre Synapse y Fabric SJD requieren atención.
Diferencias clave entre Synapse y SJD de Fabric
Se requiere el contexto de Lakehouse. En Fabric, cada SJD debe tener al menos un lago asociado. Esta instancia de Lakehouse actúa como sistema de archivos predeterminado para el entorno de ejecución de Spark. Cualquier código que use rutas de acceso relativas lee y escribe desde el lakehouse predeterminado. En Synapse, los SJD usan el almacenamiento predeterminado del área de trabajo (ADLS Gen2) como sistema de archivos predeterminado.
Idiomas admitidos. Fabric admite PySpark (Python), Spark (Scala/Java) y SparkR. .NET para Spark (C#/F#) no es compatible con Fabric. Debe volver a escribir estas cargas de trabajo en Python o Scala antes de la migración.
Directivas de reintento. Fabric SJDs soportan directivas de reintento integradas, como el máximo número de reintentos y el intervalo de reintento. Esta característica es útil para los trabajos de Spark Structured Streaming que deben ejecutarse indefinidamente.
Vinculación de entorno. En Synapse, los SJDs se enlazan a un grupo de Spark. En Fabric, los SJD se enlazan a un entorno, que contiene la configuración del grupo, las bibliotecas y las propiedades de Spark. El Migration Assistant asigna automáticamente las referencias del grupo de Synapse a Fabric Environments.
Programación. Fabric SJDs tienen una programación integrada (Settings>Schedule) sin necesidad de un pipeline independiente. En Synapse, la programación de SJD requiere una canalización con una actividad de Spark Job. Si tiene pipelines de Synapse que solo activan SJD, considere la posibilidad de usar la programación SJD integrada de Fabric en lugar de migrar el pipeline.
Importación y exportación. Synapse admite la importación y exportación de JSON basada en la interfaz de usuario para los SJD. Fabric no admite la importación ni exportación de la interfaz de usuario. Utilice el Asistente de Migración de Spark o la API REST de Fabric para crear o actualizar SJDs de forma programática.
Refactorización del código SJD
Los mismos patrones de refactorización de código de este artículo se aplican a los archivos principales de SJD. Los cambios se dividen en dos categorías.
Cambios en el código fuente (dentro del .py, .jar o .R archivo principal):
- Reemplace
mssparkutilspornotebookutilspara las operaciones del sistema de archivos y credenciales. - Actualice las rutas de acceso a archivos codificadas de manera fija en el código a las rutas de acceso de OneLake
abfss://o rutas de acceso directo, cuando sea necesario. Es posible que los SJD que usen solo rutas relativas en el lakehouse predeterminado no requieran cambios. - Reemplazar las referencias de servicios vinculados en el código por secretos de Key Vault o conexiones de Fabric.
Note
Las conexiones DMTS aún no se admiten en las definiciones de trabajos de Spark en Fabric (solo se admiten en cuadernos). Si el código SJD usa DMTS, refactorice para usar la autenticación directa del punto de conexión.
Cambios en la configuración de SJD (en los ajustes del elemento SJD de Fabric):
- Compruebe que las rutas de acceso de ADLS Gen2 a las que hacen referencia los archivos de definición principal siguen siendo accesibles desde el área de trabajo de Fabric. Si los archivos se almacenan en el almacenamiento interno del área de trabajo de Synapse, vuelva a cargarlos en la Fabric SJD o muévalos a una ubicación de ADLS Gen2 accesible.
- Compruebe que todos los archivos de referencia (
.py,.R,.jar) son accesibles después de la migración. Vuelva a cargar los archivos almacenados en el almacenamiento interno del área de trabajo de Synapse. - Si los argumentos de la línea de comandos contienen rutas de acceso o cadenas de conexión específicas de Synapse, actualícelos a Fabric equivalentes.
Migración de grupos, entornos y bibliotecas
Una vez que se migran los cuadernos y las definiciones de trabajo de Spark, debe decidir la estrategia de grupo y entorno. En esta sección se explica cuándo puede usar Fabric grupos de inicio (en lugar de migrar), cuándo crear entornos personalizados y cómo identificar y resolver brechas de compatibilidad de bibliotecas.
Migración del grupo de Spark
grupos de inicio de Fabric
Fabric Starter Pools proporcionan un inicio de sesión de Spark en cuestión de segundos, una mejora significativa sobre los grupos de Spark de Synapse, que requieren arranques en frío de varios minutos para iniciar clústeres. Los grupos de inicio están listos para usarse desde la plataforma y no requieren ninguna configuración.
Sugerencia
Si el grupo de Spark de Synapse no tiene configuraciones personalizadas, ninguna biblioteca personalizada y ningún requisito de tamaño de nodo específico más allá de Medium, no migre el grupo. En su lugar, deje que los cuadernos y las definiciones de trabajo de Spark usen la configuración predeterminada del grupo de inicio del área de trabajo de Fabric. Este enfoque proporciona los tiempos de inicio más rápidos y elimina la sobrecarga de administración de grupos. Cree un grupo personalizado o un entorno solo cuando tenga una necesidad específica.
Cuándo crear un grupo o entorno personalizados
Cree un grupo personalizado y/o entorno de Fabric solo cuando la carga de trabajo lo requiera.
- Un tamaño de nodo específico (Small, Large, XLarge, XXLarge) distinto del valor predeterminado Medium.
- Bibliotecas personalizadas (paquetes pip, paquetes Conda, JARs, wheels) que no están en el entorno de ejecución integrado de Fabric.
- Propiedades personalizadas de Spark (por ejemplo,
spark.sql.shuffle.partitions,spark.executor.memory) más allá de los valores predeterminados. - Puntos de conexión privados administrados para acceder a orígenes de datos privados (requiere grupos personalizados).
- Una versión específica del entorno de ejecución de Spark diferente del valor predeterminado del área de trabajo.
Migración de la configuración y la biblioteca
Migre configuraciones y bibliotecas de Spark a entornos de Fabric.
Para obtener pasos detallados sobre cómo migrar bibliotecas a entornos de Fabric, consulte Migrate Spark Libraries from Azure Synapse to Fabric.
Exportar configuraciones de Spark. En Synapse Studio, vaya a Administrar>Grupos de Spark>, seleccione el grupo >Configuraciones + Bibliotecas> y descárguelas como
.yml/.conf/.json.Importar en el entorno. Cree un artefacto de entorno en Fabric. Vaya a Spark Compute>Spark Properties>Cargue el archivo exportado
Sparkproperties.yml.Migración de bibliotecas. En el caso de las bibliotecas de nivel de grupo, cargue paquetes (ruedas, JAR, tars) en la sección biblioteca del entorno. En el caso de los paquetes pyPI/Conda, agréguelos a la configuración de la biblioteca pública del entorno.
Importante
La configuración de la librería a nivel de entorno de trabajo en Fabric está obsoleta. Migre todas las bibliotecas a elementos del entorno. La migración quita permanentemente las configuraciones a nivel de espacio de trabajo existentes: descargue todas las configuraciones antes de habilitar Entornos.
Compatibilidad de bibliotecas: Synapse frente a Fabric
Fabric Runtime 1.3 (Spark 3.5) se incluye con 223 Python, 183 Java/Scala y 135 bibliotecas de R integradas. La mayoría de las bibliotecas de Synapse están disponibles en Fabric, pero hay lagunas que pueden provocar errores en tiempo de ejecución si no se solucionan antes de la migración.
Para identificar qué bibliotecas usan realmente los cuadernos, ejecute estas comprobaciones antes de revisar las tablas de brechas:
-
Python notebooks: Buscar
importyfrom ... importen todas las instrucciones de los archivos.py/.ipynb. -
Java/Scala notebooks y SJDs: Busque instrucciones /
importy coordenadas de Maven; busque paquetes comocom.azure.cosmos.sparkocom.microsoft.kusto.spark. -
Exportar lista de dependencias completas: Ejecutar
pip freezeen un cuaderno de Synapse, compare con el manifiesto de Fabric Runtime 1.3. Solo las bibliotecas que aparecen en la salidapip freezey en las tablas de brechas a continuación necesitan acción. - Bibliotecas personalizadas de nivel de pool y de área de trabajo: En Synapse Studio, vaya a Administrar>Pools de Apache Spark> seleccionar pool >Paquetes para ver las bibliotecas personalizadas que deben volver a cargarse en un entorno de Fabric.
Las bibliotecas Python que faltan en Fabric
| Category | Bibliotecas | Acción |
|---|---|---|
| CUDA/GPU (9 libs) | libcublas, libcufft, libcufile, libcurand, libcusolver, libcusparse, libnpp, libnvfatbin, libnvjitlink, libnvjpeg | No disponible: Fabric no admite grupos de GPU. Refactorice las cargas de trabajo de GPU para usar alternativas basadas en CPU o mantenerse en Synapse. |
| Clientes HTTP/API | httpx, httpcore, h11, google-auth, jmespath | Instalar mediante entorno: pip install httpx google-auth jmespath |
| ML/Interpretabilidad | interpret, núcleo de interpretación | Instalar a través del entorno de software: pip install interpret |
| Serialización de datos | marshmallow, jsonpickle, frozendict, fixedint | Instale mediante el entorno si es necesario: pip install marshmallow jsonpickle |
| Registro y telemetría | fluent-logger, humanfriendly, library-metadata-cooker, impulse-python-handler | fluent-logger: instale si se usa. Otros son internos de Synapse, probablemente no sean necesarios. |
| Elementos internos de Jupyter | jupyter-client, jupyter-core, jupyter-ui-poll, jupyterlab-widgets, ipython-pygments-lexers | Fabric administra la infraestructura de Jupyter internamente. Normalmente, estas bibliotecas no son necesarias en el código de usuario. |
| Bibliotecas de sistema y C | libgcc, libstdcxx, libgrpc, libabseil, libexpat, libnsl, libzlib | Bibliotecas del sistema de bajo nivel. Normalmente no se importa directamente. Instale solo si tiene extensiones de C que dependen de ellas. |
| Archivo/simultaneidad | filelock, fsspec, knack | Instalar mediante el entorno si se utiliza: pip install filelock fsspec |
Bibliotecas de Java y Scala que faltan en Fabric
| Library | Versión de Synapse | Acción |
|---|---|---|
| azure-cosmos-analytics-spark | 2.2.5 | Instale como un archivo JAR personalizado en el entorno de Fabric si sus tareas de Spark utilizan el conector de análisis de Cosmos DB. |
| junit-jupiter-params | 5.5.2 | Biblioteca solo de prueba. No es necesario en notebooks de producción. |
| junit-platform-commons | 1.5.2 | Biblioteca de solo prueba. No es necesario en notebooks de producción. |
Bibliotecas de R
Solo una diferencia: Synapse incluye el paquete de lightgbm R (v4.6.0), que no está en Fabric. Use el entorno para instalar si es necesario. Fabric agrega FabricTelemetry (v1.0.2). Este es interno de Fabric.
Diferencias de versión notables
Existen 68 bibliotecas Python en ambas plataformas, pero con versiones diferentes. La mayoría son diferencias de versiones secundarias, pero 17 tienen saltos de versión principales que podrían afectar al comportamiento.
| Library | Versión de Fabric | Versión de Synapse | Impact |
|---|---|---|---|
| libxgboost | 2.0.3 | 3.0.1 | XGBoost API cambia entre v2 y v3. Prueba del código de entrenamiento y predicción del modelo. |
| flask | 2.2.5 | 3.0.3 | Flask 3.x tiene cambios importantes. Si atiende las API de Flask desde cuadernos, pruebe exhaustivamente. |
| lxml | 4.9.3 | 5.3.0 | Cambios menores en la API. Probar flujos de trabajo de análisis XML. |
| libprotobuf | 3.20.3 | 4.25.3 | Protobuf 4.x tiene cambios importantes en las definiciones de proto personalizadas. |
| markupsafe | 2.1.3 | 3.0.2 | MarkupSafe 3.x elimina la compatibilidad con Python 3.7, sin embargo, la API es compatible. |
| libpq | 12.17 | 17.4 | Biblioteca cliente de PostgreSQL. Salto de versión principal: pruebe las conexiones de base de datos. |
| libgcc-ng / libstdcxx-ng | 11.2.0 | 15.2.0 | Tiempo de ejecución de GCC. Puede afectar a la compatibilidad de extensiones de C. |
Note
Synapse generalmente incluye versiones más recientes de bibliotecas de nivel de sistema (GCC, protobuf, libpq), mientras que Fabric incluye versiones más recientes de bibliotecas de datos y ML (más Python paquetes en general). Si necesita una versión específica, anclela en la configuración del entorno de Fabric.
Sugerencia
Ejecute una comprobación de compatibilidad rápida: exporte la lista de bibliotecas del grupo de Synapse (pip freeze), compare con el manifiesto de Fabric Runtime 1.3 e instale previamente las bibliotecas que faltan en el entorno de Fabric antes de ejecutar cuadernos migrados. Para obtener una comparación de línea a línea de cada biblioteca y versión integrada entre Fabric y los entornos de ejecución de Spark de Synapse, consulte el repositorio microsoft/synapse-spark-runtime GitHub repositorio.
Contenido relacionado
- Fase 1: Estrategia de migración y planeación
- Fase 3: Metastore de Hive y migración de datos
- Fase 4: Migración de seguridad y gobernanza
- Migración de cuadernos de Azure Synapse a Fabric
- Migración de definiciones de trabajos de Spark desde Azure Synapse a Fabric
- Migrar grupos de Spark de Azure Synapse a Fabric