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.
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.12o_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
trueafalse.
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.iteritemsySeries.iteritemsporitems. - Sustituye
DataFrame.appendySeries.appendporps.concat. - Sustituye por asignaciones los parámetros eliminados en operaciones categóricas
inplace. - Revisar los nombres de parámetros y valores predeterminados cambiados, como
inclusiveySeries.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.enableDeletionVectorsentrue; 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:
- Sustituye los paquetes integrados ausentes por dependencias explícitas del entorno.
- Actualiza o reemplaza paquetes que no soporten Python 3.13, Java 21, Scala 2.13 o Azure Linux 3.0.
- Reconstruye archivos JAR personalizados y binarios nativos.
- La actualización eliminó las llamadas de la API de PySpark y pandas en Spark.
- Sustituye
EventHubConnectorpor el conector Kafka. - 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.
- Resuelve las diferencias de comportamiento en el código de Spark SQL en lugar de depender permanentemente de los ajustes heredados.
- 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:
- Publicar el entorno validado de Runtime 2.0.
- Adjuntarlo a un pequeño conjunto de cuadernos de producción o definiciones de trabajos de Spark.
- Ejecuta el lote y monitoriza las salidas y los consumidores posteriores.
- Continúa con las cargas de trabajo restantes después del periodo de observación.
- 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.