Migrar de Fabric Runtime 1.3 a Runtime 2.0

Fabric Runtime 2.0 es la última versión de disponibilidad general (GA) y el entorno de ejecución predeterminado para las cargas de trabajo de Apache Spark en Microsoft Fabric. Actualiza el sistema operativo, Java, Scala, Python, R, Apache Spark y Delta Lake. Como varias de estas actualizaciones cruzan los límites de las versiones principales, valida tus notebooks, definiciones de trabajos de Spark, bibliotecas y pipelines de datos antes de mover cargas de trabajo de producción desde Runtime 1.3.

Esta guía describe los cambios que pueden afectar a una migración y proporciona un proceso por etapas para mover tus cargas de trabajo a Runtime 2.0.

Novedades de Runtime 2.0

La siguiente tabla compara los componentes principales en Runtime 1.3 y Runtime 2.0.

Component Entorno de ejecución 1.3 Runtime 2.0 Consideraciones migratorias
Fase de lanzamiento Fin del soporte anunciado (EOSA) GA Migrar cargas de trabajo de producción al entorno de ejecución GA compatible.
Apache Spark 3.5.5 4.1.1 Revisa los cambios de comportamiento de Spark 4.1 y las APIs eliminadas.
Lago Delta 3.2 4,2 Valida las características de las tablas y la compatibilidad de protocolos en todas las cargas de trabajo de Fabric que usen tus tablas.
Java 11 Veintiuno Reconstruir y probar librerías Java y dependencias de la Interfaz Nativa de Java (JNI).
Scala 2.12.17 2.13.16 Recompila archivos JAR de Scala para Scala 2.13. Los artefactos de Scala 2.12 y 2.13 no son compatibles a nivel binario.
Python 3,11 3.13 Confirma que cada paquete de Python ofrece una versión compatible con Python 3.13 y un wheel de Linux.
R 4.4.1 4.5.2 Reinstala y prueba paquetes personalizados de R. SparkR está obsoleto en Spark 4.1.
Sistema operativo Azure Linux 2.0 (Mariner 2.0) Azure Linux 3.0 (Mariner 3.0) Reconstruir bibliotecas nativas y binarios personalizados para Azure Linux 3.0.

Runtime 2.0 también ofrece nuevas capacidades de Apache Spark 4.1, incluyendo el tipo de datos VARIANT, funciones SQL definidas por el usuario, variables de sesión, sintaxis de tuberías, clasificación de cadenas, la API de fuente de datos de Python, funciones de tabla definidas por el usuario en Python, perfilado unificado de PySpark y nuevas APIs de gestión de estado y depuración de Structured Streaming. Para una visión general, véase Runtime 2.0 en Fabric.

Revisar los cambios de compatibilidad

Revisa las siguientes áreas antes de cambiar un espacio de trabajo o entorno a Runtime 2.0.

Bibliotecas integradas y personalizadas

Runtime 2.0 elimina varios paquetes preinstalados de Python y R que estaban disponibles en Runtime 1.3. Reducir el conjunto de paquetes por defecto mantiene el tiempo de ejecución ligero y reduce la superficie para posibles incidentes de seguridad. Un paquete que estaba disponible sin configuración en Runtime 1.3 podría necesitar añadirse explícitamente a tu entorno Runtime 2.0.

Usa Library Manager para añadir solo los paquetes que requiera tu carga de trabajo, y luego guarda y publica el entorno. Library Manager resuelve las dependencias requeridas del paquete, así que no añadas cada dependencia individualmente en los inventarios siguientes. No asumas que una biblioteca está disponible o que su versión no ha cambiado:

  • Compare los inventarios de paquetes de Runtime 1.3 y Runtime 2.0 en el repositorio de versiones del runtime de Fabric.
  • Añade librerías faltantes de PyPI, Conda, Maven, R o personalizadas a un entorno y publícalo.
  • Fije las versiones para las cargas de trabajo de producción para hacer que la resolución de dependencias sea repetible.
  • Confirma que los paquetes de Python soportan Python 3.13. Los paquetes con extensiones nativas deben proporcionar un wheel de Linux compatible o compilarse correctamente en Azure Linux 3.0.
  • Sustituye las dependencias de Scala 2.12 por artefactos de Scala 2.13. Los nombres de artefactos suelen incluir la versión binaria de Scala, como _2.12 o _2.13.
  • Recompila archivos JAR personalizados contra Java 21, Scala 2.13 y Spark 4.1. Prueba las dependencias transitivas para detectar conflictos con las bibliotecas proporcionadas en tiempo de ejecución.
  • Reconstruye librerías nativas personalizadas para Azure Linux 3.0.

Fabric migra las especificaciones de las bibliotecas cuando cambias el tiempo de ejecución de un entorno existente, pero no puede garantizar que esas librerías sigan siendo compatibles. La publicación falla cuando la resolución de dependencias encuentra un conflicto. Para opciones de instalación de paquetes y modos de publicación, consulte Gestionar bibliotecas en entornos Fabric.

Paquetes eliminados del entorno predeterminado

Los siguientes inventarios incluyen paquetes orientados al usuario y sus dependencias de bajo nivel o transitivas. Busca en estas listas los paquetes que usa tu carga de trabajo Runtime 1.3. Si aparece un paquete, añade una versión compatible con Python 3.13 o R 4.5 a través de Library Manager en tu entorno Runtime 2.0.

Entorno Python: paquetes 348 Conda
Package Package Package Package
_libgcc_mutex _sysroot_linux-64_curr_repodata_hack abseil-cpp alabaster
aom appdirs archspec argon2-cffi
argon2-cffi-bindings arrow arrow-cpp asgiref
asn1crypto astropy async_generator async-lru
async-timeout autopep8 aws-c-auth aws-c-cal
aws-c-common aws-c-compression aws-c-event-stream aws-c-http
aws-c-io aws-c-mqtt aws-c-s3 aws-c-sdkutils
aws-checksums aws-crt-cpp aws-sdk-cpp azure-keyvault
azure-storage babel backports backports.shutil_get_terminal_size
bcrypt beautifulsoup4 binaryornot binutils_impl_linux-64
binutils_linux-64 bitarray bkcharts black
blas bleach blinker blosc
bokeh boltons boost-cpp boto
bottleneck brunsli c-ares c-blosc2
cached-property cfitsio chardet charls
cmake cmdstan conda-package-handling conda-package-streaming
configparser contextlib2 cookiecutter curl
cython cytoolz daal4py dal
dask dask-core dataclasses datasets
dav1d dill distributed distro
django docutils entrypoints expat
fastcache flake8 flit flit-core
fmt fonts-anaconda future gcc_impl_linux-64
gcc_linux-64 geographiclib geopy get_terminal_size
gevent gflags giflib glib
glob2 glog gmp gmpy2
gobject-introspection grpc-cpp gst-plugins-base gstreamer
gtk2 gxx_impl_linux-64 gxx_linux-64 hdf5
heapdict html5lib huggingface_hub imagecodecs
imageio imagesize inflection iniconfig
intel-openmp intervaltree ipython_genutils jaraco.classes
jeepney jpeg json5 jsonpatch
jsonpointer jupyter_console jupyter_events jupyter-lsp
jupyter_server jupyter_server_terminals jupyterlab jupyterlab_pygments
jupyterlab_server jxrlib kernel-headers_linux-64 keyring
lazy_loader lazy-object-proxy liac-arff libaec
libarchive libavif libclang libcurl
libev libevent libgcc-devel_linux-64 libgfortran-ng
liblief libllvm14 libmamba libmambapy
libnghttp2 libprotobuf libsolv libspatialindex
libssh2 libstdcxx-devel_linux-64 libthrift libtool
libwebp libzopfli lightning-utilities llvm-openmp
llvmlite locket lxml lz4
lz4-c lzo make markdown
mccabe menuinst minio mistune
mkl mkl_fft mkl_random mkl-service
mock more-itertools mpc mpfr
mpi mpich mpmath msgpack-python
msrest multipledispatch multiprocess mysql
nbclassic nbclient nbconvert nest-asyncio
networkx ninja ninja-base nose
notebook notebook-shim nspr nss
numba numexpr numpy-base numpydoc
oauthlib olefile openml orc
overrides pandocfilters paramiko partd
patch patchelf path path.py
pathlib2 pep8 pickleshare pkginfo
pluggy ply poppler poppler-data
prettytable prometheus_client py-cpuinfo py-lief
pybind11-abi pycodestyle pycosat pycurl
pydocstyle pyerfa pyflakes pynacl
pyopenssl pyqt pyqt5-sip pyrsistent
pytables pytest python-fastjsonschema python-json-logger
python-libarchive-c python-lmdb python-slugify python-xxhash
pytorch pytorch-lightning pytorch-mutex pywavelets
qdarkstyle qstylizer qt qt-main
qt-webengine qtawesome qtconsole qtpy
re2 reproc reproc-cpp requests-oauthlib
rfc3339-validator rfc3986-validator rhash ripgrep
rtree s2n safetensors scikit-build
scikit-image scikit-learn-intelex secretstorage send2trash
shap simplegeneric singledispatch sip
slicer snappy snowballstemmer sortedcollections
sortedcontainers soupsieve sphinx sphinxcontrib
sphinxcontrib-applehelp sphinxcontrib-devhelp sphinxcontrib-htmlhelp sphinxcontrib-jsmath
sphinxcontrib-qthelp sphinxcontrib-serializinghtml sphinxcontrib-websupport sqlite
sympy sysroot_linux-64 tbb tbb-devel
tbb4py tblib terminado testpath
text-unidecode textdistance tifffile tinycss2
tokenizers toml tomli-w toolz
torchdata torchmetrics transformers truststore
typed-ast ujson unicodecsv unidecode
utf8proc webencodings websocket-client wheel
whichcraft xlsxwriter xlwt xmltodict
xxhash xyzservices xz yaml-cpp
yapf zfp zict zlib
zope zope.event zope.interface zstandard
Entorno Python: 24 paquetes pip
Package Package Package Package
accelerate astor dash dash-core-components
dash-cytoscape dash-html-components dash-table docker
interpret interpret-core json-tricks nni
nvidia-ml-py pyperclip pythonwebhdfs responses
retrying salib schema seqeval
simplejson tensorboardx thop typeguard
Entorno R: 67 paquetes Conda
Package Package Package Package
_libgcc_mutex _sysroot_linux-64_curr_repodata_hack blosc cfitsio
expat fmt freetype freexl
geos geotiff giflib hdf4
hdf5 json-c kealib lcms2
libaec libarchive libgdal libgdal-core
libgdal-fits libgdal-grib libgdal-hdf4 libgdal-hdf5
libgdal-jp2openjpeg libgdal-kea libgdal-netcdf libgdal-pdf
libgdal-pg libgdal-postgisraster libgdal-tiledb libgdal-xls
libkml libnetcdf libnsl librttopo
libspatialite libsqlite libudunits2 libv8
libzip lzo minizip nspr
nss openjpeg poppler poppler-data
proj r-classint r-gsl r-jose
r-mgcv r-s2 r-sf r-units
r-wk spdlog sqlite tiledb
uriparser xerces-c xorg-kbproto xorg-renderproto
xorg-xextproto xorg-xproto xz

Note

Si la protección de acceso saliente o una red virtual gestionada impiden el acceso a repositorios públicos, descarga archivos wheel compatibles o aloja una réplica de paquetes. Para las instrucciones, consulte Gestionar bibliotecas con acceso limitado a la red en Fabric.

Cambios en la configuración de Spark

Runtime 2.0 añade y elimina la configuración de Spark y cambia algunos valores por defecto. Fabric también usa valores predeterminados distintos a los de Apache Spark para algunos ajustes.

Antes de migrar, revisa la configuración de Spark que configuraste para tus espacios de trabajo, entornos, cuadernos y definiciones de trabajos de Spark. Elimina los ajustes que ya no están soportados y prueba las cargas de trabajo que dependen de valores predeterminados modificados. Usa los valores por defecto de tiempo de ejecución a menos que la documentación te indique cambiar alguna opción.

Cambios notables en los valores predeterminados

La siguiente tabla enumera los cambios de referencia seleccionados. No establecido significa que la línea base no establece explícitamente un valor; no significa que la característica esté desactivada.

Configuration Valor de Runtime 1.3 Valor de Runtime 2.0 Consideraciones migratorias
spark.checkpoint.compress false true Los archivos de puntos de control están comprimidos por defecto. Validar la interoperabilidad de los puntos de control y el comportamiento de almacenamiento.
spark.databricks.delta.optimizeWrite.enabled true No establecido La propiedad no se elimina. Valida el comportamiento efectivo de escritura optimizada según la configuración de la tabla, la sesión y el perfil de recursos.
spark.databricks.delta.optimizeWrite.partitioned.enabled false true Validar el rendimiento de escritura y los tamaños de archivo de salida para tablas Delta particionadas.
spark.hadoop.parquet.block.size 1073741824 (1 GiB) 134217728 (128 MiB) Los escritores de Parquet están pensados para bloques más pequeños. Valida el tamaño de los archivos y el rendimiento de lectura posterior.
spark.microsoft.delta.optimize.fast.enabled false true OPTIMIZE puede saltarse trabajo a menos que se cumplan criterios de recuento de archivos o tamaño estimado de compactación. Valida los resultados del mantenimiento.
spark.microsoft.delta.optimize.fileLevelTarget.enabled false true Los archivos que antes cumplían al menos la mitad de su tamaño objetivo de compactación no se compactan de nuevo. Valida el diseño del archivo después de OPTIMIZE.
spark.microsoft.delta.targetFileSize.adaptive.enabled false true Delta calcula el tamaño objetivo del archivo en función del tamaño de la tabla. Validar los tamaños de archivo resultantes y el rendimiento de lectura.
spark.speculation.multiplier 1.5 3 Una tarea debe ejecutarse tres veces más despacio que la mediana antes de que Spark la considere para una ejecución especulativa.
spark.speculation.quantile 0.75 0.9 Spark espera a que terminen 90% de tareas antes de considerar la ejecución especulativa.
spark.sql.files.maxPartitionBytes 134217728 (128 MiB) 536870912 (512 MiB) Los escaneos de archivos pueden almacenar más datos en cada partición. Valida el paralelismo y el uso de memoria del ejecutor.
spark.sql.maxSinglePartitionBytes Long.MaxValue 128m Una sola partición está limitada por defecto a 128 MiB. Valida consultas que generen una sola partición grande.
spark.sql.orc.compression.codec snappy zstd Las nuevas escrituras ORC usan compresión Zstandard por defecto. Validar la compatibilidad y el rendimiento con lectores aguas abajo.
spark.sql.sources.v2.bucketing.enabled false true Spark permite por defecto uniones particionadas por almacenamiento y otros comportamientos de bucketing de Data Source V2. Valida los planes de consulta y los resultados.
spark.sql.sources.v2.bucketing.pushPartValues.enabled false true Spark puede enviar valores de partición compatibles para el bucketing de Data Source V2. Valida los planes de consulta para tablas agrupadas en buckets.

Runtime 2.0 también usa ROCKSDB en lugar de LEVELDB para spark.shuffle.service.db.backend y configura spark.shuffle.service.removeShuffle con el valor true. Spark utiliza el servicio de shuffle externo para eliminar bloques de shuffle innecesarios para los ejecutores desasignados.

La carga paralela delta de instantáneas, el salto paralelo de datos y la carga de instantáneas del lado del controlador también cambian de false a true. Pruebe la latencia de las consultas y el uso de recursos del controlador, especialmente para las consultas que acceden a múltiples tablas Delta.

Anulaciones al iniciar la sesión y ejecución nativa

Los despliegues de características de Fabric pueden anular los valores base cuando comienza una sesión.

Configuration Valor base del entorno de ejecución 2.0 Valor de inicio de la sesión en tiempo de ejecución 2.0 en regiones públicas de producción Consideraciones migratorias
spark.gluten.sql.columnar.costBasedFallback.enabled false true El lanzamiento de producción registrado el 16 de octubre de 2026 permite un mecanismo de respaldo a Spark basado en costes. Revisa los planes de consulta y el rendimiento, incluyendo las cargas de trabajo probadas antes de ese despliegue.
spark.sql.parquet.native.writer.complexTypes.enabled false true Prueba la escritura nativa de Parquet y la lectura posterior para arrays, mapas y estructuras.

Cuando uses el motor de ejecución nativo, incluye las siguientes comprobaciones en tus pruebas de regresión:

  • Valida el uso de memoria con el tamaño predeterminado del lote columnar aumentando de 4.096 a 10.240.
  • Compara los planes de shuffle y el rendimiento con el umbral de shuffle columnar basado en ordenación que disminuye de 100.000 a 4.000 particiones.
  • Compara los resultados y el rendimiento de las expresiones regulares. El soporte para regex Java del motor nativo cambia de desactivado a habilitado, y la configuración que redirige todas las expresiones regulares a Spark cambia de true a false.

Los valores predeterminados de Apache Spark 4.1 se mantienen de forma diferente en Fabric

Fabric Runtime 2.0 anula intencionadamente los siguientes valores predeterminados de Apache Spark 4.1. No des por hecho que un valor predeterminado de Spark 4.1 de origen se aplica sin cambios en Fabric.

Configuration Apache Spark 4.1 por defecto Valor de Fabric Runtime 2.0
spark.eventLog.compress true false
spark.eventLog.rolling.enabled true false
spark.sql.ansi.enabled true false
spark.sql.catalog.spark_catalog builtin org.apache.spark.sql.delta.catalog.DeltaCatalog
spark.sql.hive.metastore.version 2.3.10 2.3.2

Comportamiento de SQL y DataFrame de Spark

Spark 4.1 introduce cambios de comportamiento que pueden modificar los resultados de las consultas o provocar el fallo de consultas previamente aceptadas. Presta especial atención al comportamiento de ANSI SQL, los casts, las operaciones de fecha y marca de tiempo, los tipos de datos, los mapeos JDBC y las configuraciones SQL obsoletas.

Realiza pruebas de regresión que comparen:

  • Esquemas de salida, incluyendo tipo, precisión, escala y nulabilidad.
  • Recuento de filas y resultados agregados.
  • Comportamiento nulo, desbordamiento, división por cero y conversión no válida.
  • Resultados de fecha, marca de tiempo, zona horaria y intervalo.
  • Mapeos de fuentes y destinos JDBC.
  • Planes de consulta y rendimiento para cargas de trabajo críticas.

No uses configuraciones de compatibilidad heredadas como estrategia de migración permanente. Si usas temporalmente uno para aislar un fallo, actualiza el código afectado y elimina la configuración antes de completar la migración. Para ver el conjunto completo de cambios de comportamiento, consulte la guía de migración de SQL de Spark.

API de Python y pandas en Spark

Runtime 2.0 pasa de Python 3.11 a Python 3.13 e incluye los cambios de PySpark introducidos en Spark 4.1. Spark 4.1 también eleva las versiones mínimas soportadas de pandas, NumPy y PyArrow y elimina APIs que estaban obsoletas en versiones anteriores.

Las actualizaciones comunes de la API de pandas en Spark incluyen:

  • Sustituye DataFrame.iteritems y Series.iteritems por items.
  • Sustituye DataFrame.append y Series.append por ps.concat.
  • Sustituye por asignaciones los parámetros eliminados en operaciones categóricas inplace.
  • Revisar los nombres de parámetros y valores predeterminados cambiados, como inclusive y Series.str.replace(regex=...).
  • Validar los nombres de las columnas de resultados, los nombres de los índices, los dtypes y la ordenación.

Para la lista completa, consulte la guía de migración de PySpark.

Aplicaciones en Java y Scala

Scala 2.13 no es compatible binariamente con Scala 2.12. Reutilizar un JAR de Runtime 1.3 en Runtime 2.0 puede causar errores de carga de clase incluso cuando el código fuente no ha cambiado. Crea un artefacto separado de Runtime 2.0 y actualiza todas las dependencias compiladas de forma cruzada para Scala.

Spark 4.1 también cambia sus referencias internas de API servlets de javax a jakarta. Revisa listeners personalizados, extensiones de Spark y librerías que interactúan con los componentes internos de Spark. Para otros cambios a nivel de motor, consulte la guía de migración de Spark Core.

Cargas de trabajo y conectores de streaming

El obsoleto EventHubConnector incluido en Runtime 1.3 no está disponible en Runtime 2.0. Utiliza el conector Apache Spark Kafka con el endpoint compatible con Kafka para Azure Event Hubs. Para orientación sobre configuración, consulta Usar Apache Spark con Azure Event Hubs para Apache Kafka.

Para escenarios aplicables, también puedes evaluar Fabric eventstream para que ingira datos de streaming y procesarlos en un cuaderno con Spark Structured Streaming. Para más información, consulta Consultar eventstream en Microsoft Fabric desde un cuaderno con Spark Structured Streaming.

Para cada carga de trabajo de streaming estructurado:

  • Comprueba si la consulta de Runtime 2.0 puede reiniciarse desde una copia del punto de control existente.
  • Validar operaciones con estado, marcas de agua en tiempo de evento, disparadores, opciones de origen y sumidero, y esquemas de salida.
  • Mantén los datos fuente y el punto de control original disponibles hasta que se complete la validación.
  • Si un punto de control es incompatible, planifica un reinicio controlado con un nuevo punto de control. Ten en cuenta las entradas rejugadas o saltadas, y haz que el sumidero sea idempotente antes de reiniciar.

Consulta la guía de migración de Structured Streaming para ver los cambios de compatibilidad con sistemas ascendentes.

Tablas de Delta Lake

Delta Lake mantiene la compatibilidad hacia atrás para las tablas existentes, por lo que Runtime 2.0 puede funcionar con tablas creadas por Runtime 1.3. Sin embargo, habilitar una función de tabla más reciente puede elevar el protocolo lector o de escritura de la tabla y evitar que motores antiguos u otras experiencias de Fabric utilicen la tabla.

Durante la migración inicial en tiempo de ejecución:

  • No actualicen los protocolos de tabla ni activen las funciones de Delta Lake 4.2.
  • Inspecciona las características y las versiones de protocolo de las tablas recién creadas, así como las tablas existentes. Runtime 2.0 establece spark.databricks.delta.properties.defaults.enableDeletionVectors en true; verifique los metadatos resultantes de la tabla en lugar de asumir que evitar la activación manual de características preserva la compatibilidad.
  • Lecturas de prueba, escrituras, fusiones, evolución de esquemas, operaciones de mantenimiento y acceso concurrente.
  • Identifica cada motor que lee o escribe cada tabla, incluyendo el endpoint de analítica SQL, Power BI, pipelines, flujos de datos, flujos de eventos y motores externos.
  • Activa una nueva función Delta solo después de que todos los consumidores la soporten.

Las características específicas de Delta Lake 4.2 son experimentales en Fabric y se limitan a las experiencias de Spark. Para las versiones de la matriz de soporte y del protocolo por defecto, véase interoperabilidad del formato de tabla de Delta Lake.

Migre sus cargas de trabajo

Utiliza una migración por etapas en lugar de cambiar el entorno de ejecución de un espacio de trabajo de producción inmediatamente.

1. Haz un inventario de tus cargas de trabajo de Runtime 1.3

Registra la siguiente información:

  • Cuadernos de notas, definiciones de trabajos de Spark, pipelines, programaciones y elementos dependientes.
  • Asignaciones de entornos a nivel de espacio de trabajo y a nivel de elemento.
  • Configuraciones de Spark, incluyendo cualquier configuración de compatibilidad heredada.
  • Bibliotecas públicas, privadas y personalizadas y sus versiones resueltas.
  • Archivos JAR personalizados, wheels de Python, paquetes R, bibliotecas nativas y lógica de inicialización.
  • Fuentes de datos, destinos, secretos, conexiones y requisitos de red.
  • Tablas Delta y todos los consumidores que no sean Spark de esas tablas.
  • Puntos de control de streaming, esquemas, desplazamientos y requisitos de recuperación.
  • Esquemas de salida esperados, conteos de filas, comprobaciones de calidad de datos y líneas base de rendimiento.

Prioriza cargas de trabajo que usen librerías personalizadas, código nativo, Scala, estado de streaming o funciones avanzadas de Delta.

2. Crear un entorno de prueba de Runtime 2.0

Crea un elemento de entorno separado y selecciona 2.0 (Spark 4.1, Delta 4.2) como su entorno de ejecución. Añade las bibliotecas necesarias, guarda el entorno y publícalo. Adjunta el entorno a copias de cuadernos representativos y definiciones de trabajos de Spark en un espacio de trabajo de desarrollo o prueba.

Si tu espacio de trabajo de producción sigue usando Runtime 1.3, no cambies su runtime hasta que se completen las pruebas. Mantén su configuración existente disponible para la reversión durante la validación.

Para validar las próximas actualizaciones de Runtime 2.0 antes de que lleguen al canal predeterminado, utiliza el canal de lanzamiento anticipado en tu entorno de prueba. Para más información, consulte los canales de versiones de runtime de Fabric.

3. Actualizar bibliotecas y código

Aplica los cambios identificados en la revisión de compatibilidad:

  1. Sustituye los paquetes integrados ausentes por dependencias explícitas del entorno.
  2. Actualiza o reemplaza paquetes que no soporten Python 3.13, Java 21, Scala 2.13 o Azure Linux 3.0.
  3. Reconstruye archivos JAR personalizados y binarios nativos.
  4. La actualización eliminó las llamadas de la API de PySpark y pandas en Spark.
  5. Sustituye EventHubConnector por el conector Kafka.
  6. Elimina la configuración de Spark para configuraciones que no están disponibles en Runtime 2.0 y revisa las sobrescrituras explícitas de configuraciones cuyas predeterminadas han cambiado.
  7. Resuelve las diferencias de comportamiento en el código de Spark SQL en lugar de depender permanentemente de los ajustes heredados.
  8. Mantén las características y protocolos existentes de la tabla Delta sin cambios durante esta fase.

4. Ejecutar pruebas de compatibilidad y regresión

Ejecuta las mismas entradas representativas en Runtime 1.3 y Runtime 2.0. Comparar:

  • Estado de finalización, registros, advertencias y reintentos.
  • Esquemas y tipos de datos.
  • Resultados a nivel de fila y agregados.
  • Historial y protocolo de la tabla Delta.
  • Progreso en streaming, estado, latencia y manejo de duplicados.
  • Tiempo de ejecución, uso de recursos y coste.
  • Resultados posteriores en el endpoint de analítica SQL, Power BI, pipelines y otros consumidores.

Incluye pruebas de fallo y recuperación, no solo ejecuciones exitosas. Reinicios de sesiones de prueba, reintentos de trabajos, recuperación de puntos de control y acceso concurrente a tablas.

5. Despliega Runtime 2.0

Trasladar las cargas de trabajo en lotes controlados:

  1. Publicar el entorno validado de Runtime 2.0.
  2. Adjuntarlo a un pequeño conjunto de cuadernos de producción o definiciones de trabajos de Spark.
  3. Ejecuta el lote y monitoriza las salidas y los consumidores posteriores.
  4. Continúa con las cargas de trabajo restantes después del periodo de observación.
  5. Establece Runtime 2.0 como espacio de trabajo predeterminado solo después de completar la migración a nivel de elemento.

Cambiar el tiempo de ejecución del espacio de trabajo afecta a las nuevas sesiones de Spark. Las sesiones existentes continúan usando su entorno de ejecución actual hasta que se detienen.

6. Mantén un plan de reversión

Mantén el entorno de Runtime 1.3, artefactos, especificaciones de la biblioteca y puntos de control de streaming hasta que termine el periodo de observación de Runtime 2.0. Para revertir, vuelve a conectar el entorno de Runtime 1.3 o restaura el entorno de ejecución anterior del workspace y comienza una nueva sesión de Spark.

Importante

Una actualización del protocolo Delta generalmente no es reversible. No actives las características de tabla que eleven el protocolo hasta que hayas completado la validación de Runtime 2.0 y confirmado la compatibilidad con todos los consumidores de tabla.

Lista de comprobación para la migración

Antes de completar la migración, confirma que:

  • [ ] Todos los paquetes de Python y R requeridos están explícitamente disponibles y son compatibles con Python 3.13 o R 4.5.
  • [ ] Los archivos JAR personalizados están dirigidos a Java 21, Scala 2.13 y Spark 4.1.
  • [ ] Las dependencias nativas funcionan en Azure Linux 3.0.
  • [ ] Las configuraciones de espacio de trabajo, entorno, notebook y definiciones de trabajos de Spark no usan configuraciones eliminadas de Spark.
  • [ ] Las cargas de trabajo se validan frente a los valores predeterminados modificados de la configuración de Spark Runtime 2.0.
  • [ ] Las pruebas de regresión de Spark SQL y PySpark se han superado.
  • [ ] Las cargas de trabajo de los Event Hubs usan el conector Kafka.
  • [ ] Las cargas de trabajo de Structured Streaming se reinician y recuperan según lo diseñado.
  • [ ] Los protocolos y características de la tabla Delta siguen siendo compatibles con todos los consumidores.
  • [ ] La calidad de los datos, el rendimiento y los resultados de costes cumplen con tus criterios de aceptación.
  • [ ] Se documentan y prueban los procedimientos de despliegue en producción, monitorización y retroceso.