Leer en inglés

Compartir a través de


Notas de la versión de proceso sin servidor

En este artículo se explican las características y comportamientos que están disponibles actualmente y próximos en el proceso sin servidor para cuadernos y flujos de trabajo.

Para obtener más información sobre el proceso sin servidor, consulte Conectar al proceso sin servidor.

Azure Databricks publica periódicamente actualizaciones de proceso sin servidor, actualizando automáticamente el entorno de ejecución de proceso sin servidor para admitir mejoras y actualizaciones en la plataforma. Todos los usuarios obtienen las mismas actualizaciones, que se han implementado durante un breve período de tiempo.

Versiones de entorno sin servidor

El proceso sin servidor de Databricks para cuadernos y trabajos incluye una arquitectura basada en Spark Connect, lo que permite actualizaciones de motor independientes sin afectar a la aplicación. Para garantizar la compatibilidad de aplicaciones, las cargas de trabajo sin servidor usan una API con versiones, conocida como versión de entorno o cliente, que sigue siendo compatible con versiones más recientes del servidor.

La versión más reciente del entorno continúa recibiendo actualizaciones hasta que se publique una nueva versión. Los usuarios pueden seleccionar entre cualquiera de las siguientes versiones de entorno compatibles:

Notas de la versión

En esta sección se incluyen notas de la versión para el proceso sin servidor. Las notas de la versión se organizan por año y semana del año. El proceso sin servidor siempre se ejecuta con la versión publicada más recientemente que se muestra aquí.

Configuración de alta memoria disponible en cuadernos sin servidor (versión preliminar pública)

7 de febrero de 2025

Ahora puede configurar un tamaño de memoria mayor para las cargas de trabajo de cuadernos de proceso sin servidor. Esta configuración se puede aplicar a cargas de trabajo de cuadernos interactivas y programadas.

El uso sin servidor con memoria alta tiene una tasa de emisión de DBU mayor que la memoria estándar.

Para obtener más información, consulte Configuración de memoria alta para las cargas de trabajo sin servidor.

Versión 16.1

5 de febrero de 2025

Esta versión de proceso sin servidor se corresponde aproximadamente con Databricks Runtime 16.0 y Databricks Runtime 16.1.

Nuevas características

  • Compatibilidad de Avro con el esquema recursivo: ahora puede usar la opción recursiveFieldMaxDepth con la función from_avro y el origen de datos avro. Esta opción establece la profundidad máxima para la recursividad del esquema en el origen de datos Avro. Consulte Lectura y escritura de datos de Avro en streaming.

  • Compatibilidad expandida para el Registro de Esquemas Confluent para Avro: Serverless ahora admite la referencia de esquema Avro con el Registro de Esquemas Confluent. Consulte Autenticación en un registro de esquema de Confluent externo.

  • Forzar la reagrupación en tablas con agrupación líquida en clústeres: Ahora puede usar la sintaxis de OPTIMIZE FULL para forzar la reagrupación de todos los registros de una tabla con habilitada la agrupación líquida en clústeres. Consulta Reagrupación forzada para todos los registros.

  • Las API de Delta para Python ahora admiten columnas de identidad: ahora puede usar las API de Delta para Python para crear tablas con columnas de identidad. Consulte Uso de columnas de identidad en Delta Lake.

  • Crear tablas en clúster líquido durante las escrituras de streaming: Ahora puede usar clusterBy para habilitar la agrupación en clústeres líquidos al crear nuevas tablas con escrituras de Structured Streaming. Consulte Habilitación de clústeres líquidos.

  • Compatibilidad con la cláusula FULL de OPTIMIZE: Proceso sin servidor ahora admite la cláusula OPTIMIZEFULL. Esta cláusula optimiza todos los registros de una tabla que usa la agrupación en clústeres líquidos, incluidos los datos que podrían haberse agrupado previamente.

  • Compatibilidad con la especificación de opciones WITH en INSERT y referencia de tabla: el proceso sin servidor ahora admite una especificación de opciones para las referencias de tabla y los nombres de tabla de una instrucción INSERT que se puede usar para controlar el comportamiento de los orígenes de datos.

  • Nuevas funciones SQL: las siguientes funciones SQL ahora están disponibles en proceso sin servidor:

    • try_url_decode es una versión tolerante a errores de url_decode.
    • zeroifnull devuelve 0 si la expresión de entrada de la función zeroifnull() es NULL.
    • nullifzero devuelve NULL si la entrada es 0 o su entrada si no es 0.
    • dayname(expr) devuelve el acrónimo inglés de tres letras del día de la semana para la fecha especificada.
    • uniform(expr1, expr2 [,seed]) devuelve un valor aleatorio con valores independientes y distribuidos de forma idéntica dentro del intervalo de números especificado.
    • randstr(length) devuelve una cadena aleatoria de length caracteres alfanuméricos.
  • Habilitar la evolución automática del esquema al combinar datos en una tabla Delta: se ha agregado Support para el miembro withSchemaEvolution() de la clase DeltaMergeBuilder. Use withSchemaEvolution() para habilitar la evolución automática del esquema durante las operaciones de MERGE. Por ejemplo, mergeBuilder.whenMatched(...).withSchemaEvolution().execute()}}.

  • Compatibilidad con intercalaciones en Apache Spark está en versión preliminar pública: ahora puede asignar intercalaciones que no distinguen mayúsculas de minúsculas y de idioma a STRING columnas y expresiones. Estas intercalaciones se usan en comparaciones de cadenas, ordenación, operaciones de agrupación y muchas funciones de cadena. Consulte Intercalación.

  • Compatibilidad con intercalaciones en Delta Lake está en versión preliminar pública: ahora puede definir intercalaciones para columnas al crear o modificar una tabla Delta. Consulte Compatibilidad de las intercalaciones con Delta Lake.

  • LITE modo de vacío está en versión preliminar pública: Ahora puede usar VACUUM table_name LITE para realizar una operación de vacío de peso más ligero que aprovecha los metadatos en el registro de transacciones delta. Consulte Modo completo frente a modo ligero y VACUUM.

  • Compatibilidad con parametrizar la cláusula de USE CATALOG with IDENTIFIER: ahora se admite IDENTIFIERla cláusula para la instrucción USE CATALOG. Con esta soporte, puede parametrizar el catálogo actual en función de una variable de cadena o un marcador de parámetro.

  • COMMENT ONCOLUMN compatibilidad con tablas y vistas: La instrucción COMMENT ON ahora admite la modificación de comentarios para las columnas de vista y tabla.

  • Invocación de parámetros con nombre para más funciones: las siguientes funciones admiten invocación de parámetros con nombre:

  • El parámetro SYNC METADATA para el comando REPAIR TABLE se admite con el metastore de Hive: ahora puede usar el parámetro SYNC METADATA con el comando REPAIR TABLE para actualizar los metadatos de una tabla administrada del Metastore de Hive. Consulte REPAIR TABLE.

  • Integridad de datos mejorada para lotes comprimidos de Apache Arrow: Para proteger aún más frente a los daños en los datos, cada lote de flecha comprimida LZ4 ahora incluye el contenido de LZ4 y las sumas de comprobación de bloqueo. Consulte la descripción del formato de bloque LZ4 .

  • Controlador JDBC integrado de Oracle: Computación sin servidor ahora tiene el controlador JDBC de Oracle integrado. Si usa un JAR del controlador JDBC cargado por el usuario a través de DriverManager, debe reescribir scripts para usar explícitamente el JAR personalizado. De lo contrario, se usa el controlador integrado. Este controlador solo es compatible con la Federación Lakehouse. Para otros casos de uso, debe proporcionar su propio controlador.

  • Errores más detallados para las tablas Delta a las que se accede con rutas de acceso: ya está disponible una nueva experiencia de mensaje de error para las tablas Delta a las que se accede mediante rutas de acceso. Todas las excepciones se reenvían ahora al usuario. La excepción DELTA_MISSING_DELTA_TABLE ahora está reservada para cuando los archivos subyacentes no se pueden leer como una tabla Delta.

Cambios de comportamiento

  • Cambio importante: RStudio hospedado ha llegado al fin de vida útil: Con esta versión, RStudio Server hospedado por Databricks ha llegado al fin de vida útil y no está disponible en ninguna área de trabajo de Azure Databricks que se ejecute en cómputo sin servidor. Para obtener más información y ver una lista de alternativas a RStudio, consulte desuso de RStudio Server hospedado.

  • Cambio importante: eliminación de la compatibilidad para cambiar los tipos byte, short, int, y long a tipos más amplios: Para garantizar un comportamiento coherente en las tablas Delta y Iceberg, los siguientes cambios de tipo de datos ya no se pueden aplicar a las tablas que tienen habilitada la característica de ampliación de tipos de:

    • byte, short, int y long a decimal.
    • byte, shorty int a double.
  • Análisis correcto de patrones regex con negación en la agrupación de caracteres anidados: esta versión incluye un cambio para admitir el análisis correcto de patrones regex con negación en la agrupación de caracteres anidados. Por ejemplo, [^[abc]] se analizará como "cualquier carácter que no sea de tipo 'abc'".

    Además, el comportamiento de Photon era incoherente con Spark para las clases de caracteres anidadas. Los patrones regex que contienen clases de caracteres anidados ya no usarán Photon y, en su lugar, usarán Spark. Una clase de caracteres anidada es cualquier patrón que contenga corchetes entre corchetes, como [[a-c][1-3]].

  • Mejorar la detección de coincidencias duplicadas en Delta Lake MERGE:MERGE ahora considera las condiciones especificadas en la cláusula WHEN MATCHED. Consulte Upsert en una tabla de Delta Lake mediante combinación.

  • La funcionalidad de addArtifact() ahora es coherente entre los tipos de proceso: cuando se usa addArtifact(archive = True) para agregar una dependencia al proceso sin servidor, el archivo se desempaqueta automáticamente. Este cambio hace que el comportamiento del addArtifact(archive = True) sea coherente con la computación de un solo usuario, que ya admite el desempaquetado automático de archivos.

  • El tipo de datos VARIANT ya no se puede usar con operaciones que requieran comparaciones: No puede usar las siguientes cláusulas o operadores en consultas que incluyan un tipo de datos VARIANT:

    • DISTINCT
    • INTERSECT
    • EXCEPT
    • UNION
    • DISTRIBUTE BY

    Además, no puede usar estas funciones DataFrame:

    • df.dropDuplicates()
    • df.repartition()

    Estas operaciones realizan comparaciones y comparaciones que usan el tipo de datos VARIANT producen resultados indefinidos y no se admiten en Databricks. Si usa el tipo VARIANT en las tablas o cargas de trabajo de Azure Databricks, Databricks recomienda los cambios siguientes:

    • Actualice las consultas o expresiones para convertir VARIANT explícitamente valores en tipos de datos que noVARIANT sean.
    • Si tiene campos que se deben usar con cualquiera de las operaciones anteriores, extraiga esos campos del tipo de datos VARIANT y almacénelos mediante tipos de datos que no seanVARIANT.

    Consulte Consulta de datos de variante.

Corrección de errores

  • Los desplazamientos de zona horaria ahora incluyen segundos cuando se serializan en CSV, JSON y XML: Las marcas de tiempo con desplazamientos de zona horaria que incluían segundos (comunes para las marcas de tiempo anteriores a 1900) omitían los segundos cuando se serializaban a CSV, JSON y XML. El formateador de marca de tiempo predeterminado se ha corregido y ahora devuelve los valores de desplazamiento correctos para estas marcas de tiempo.

Otros cambios

  • Se han renombrado los códigos de error para el origen de cloudFiles Structured Streaming: Los siguientes códigos de error han sido renombrados:
    • _LEGACY_ERROR_TEMP_DBR_0143 se renombra a CF_INCORRECT_STREAM_USAGE.
    • _LEGACY_ERROR_TEMP_DBR_0260 se renombra a CF_INCORRECT_BATCH_USAGE .

Versión 15.4

28 de octubre de 2024

Esta versión de proceso sin servidor se corresponde aproximadamente con Databricks Runtime 15.4

Nuevas características

  • Funciones de validación UTF-8: esta versión presenta las siguientes funciones para validar cadenas UTF-8:
    • is_valid_utf8 comprobó si una cadena es una cadena UTF-8 válida.
    • make_valid_utf8 convierte una cadena UTF-8 potencialmente no válida en una cadena UTF-8 válida mediante caracteres de sustitución.
    • validate_utf8 genera un error si la entrada no es una cadena UTF-8 válida.
    • try_validate_utf8 devuelve NULL si la entrada no es una cadena UTF-8 válida.
  • Habilitar UniForm Iceberg con ALTER TABLE: Ahora puede habilitar UniForm Iceberg en tablas existentes sin volver a escribir archivos de datos. Consulta Habilitación de lecturas de Iceberg en una tabla existente.
  • try_url_decode función: esta versión presenta la función try_url_decode , que descodifica una cadena con codificación URL. Si la cadena no tiene el formato correcto, la función devuelve NULL en lugar de generar un error.
  • Opcionalmente, permita que el optimizador dependa de restricciones de clave externa no aplicadas: para mejorar el rendimiento de las consultas, ahora puede especificar la RELY palabra clave en FOREIGN KEY restricciones al crear o MODIFICAR una tabla.
  • Ejecuciones de trabajos en paralelo para sobrescrituras selectivas: sobrescrituras selectivas con replaceWhere trabajos que ahora ejecutan trabajos que eliminan datos e insertan nuevos datos en paralelo, lo que mejora el rendimiento de las consultas y el uso del clúster.
  • Rendimiento mejorado para la fuente de distribución de datos de cambios con sobrescrituras selectivas: las sobrescrituras selectivas que se usan replaceWhere en tablas con fuentes de distribución de datos modificados ya no escriben archivos de datos modificados independientes para los datos insertados. Estas operaciones usan una columna oculta _change_type presente en los archivos de datos Parquet subyacentes para registrar cambios sin amplificación de escritura.
  • Latencia de consulta mejorada para el COPY INTO comando: esta versión incluye un cambio que mejora la latencia de consulta para el COPY INTO comando. Esta mejora se implementa haciendo asincrónica la carga de estado por parte del almacén de estados de RocksDB. Con este cambio, debería ver una mejora en las horas de inicio de las consultas con estados grandes, por ejemplo, consultas con un gran número de archivos ya ingeridos.
  • Compatibilidad con la eliminación de la característica de tabla de restricciones check: ahora puede quitar la checkConstraints característica de tabla de una tabla Delta mediante ALTER TABLE table_name DROP FEATURE checkConstraints. Consulte Deshabilitación de las restricciones de comprobación.

Cambios de comportamiento

  • Cambio de enlace de esquema para vistas: cuando los tipos de datos de la consulta subyacente de una vista cambian de los usados cuando se creó la vista por primera vez, Databricks ya no produce errores para las referencias a la vista cuando no se puede realizar ninguna conversión segura.

    En su lugar, la vista compensa mediante reglas de conversión normales siempre que sea posible. Este cambio permite a Databricks tolerar cambios de esquema de tabla más fácilmente.

  • No permitir la tolerancia de sintaxis no documentada ! para NOT la lógica booleana externa: Databricks ya no tolerará el uso de ! como sinónimo de NOT fuera de la lógica booleana. Este cambio reduce la confusión, se alinea con el Estándar SQL y hace que SQL sea más portátil. Por ejemplo:

    CREATE ... IF ! EXISTS, IS ! NULL, ! NULL propiedad de columna o campo, ! IN y ! BETWEEN debe reemplazarse por:

    CREATE ... IF NOT EXISTS, IS NOT NULL, NOT NULL propiedad de columna o campo, NOT IN y NOT BETWEEN.

    El operador de prefijo booleano! (por ejemplo !is_mgr, o !(true AND false)) no se ve afectado por este cambio.

  • Rechazar partes no documentadas y no procesadas de la sintaxis de definición de columnas en vistas: Databricks admite CREATE VIEW con columnas con nombre y comentarios de columna.

    La especificación de tipos de columnas, restricciones NOT NULL o DEFAULT se ha tolerado en la sintaxis sin tener ningún efecto. Databricks quitará esta tolerancia de sintaxis. Si lo hace, se reduce la confusión, se alinea con el Estándar SQL y permite mejoras futuras.

  • Control coherente de errores para la descodificación de Base64 en Spark y Photon: esta versión cambia cómo Photon controla los errores de descodificación de Base64 para que coincidan con el control de Spark de estos errores. Antes de estos cambios, la ruta de acceso de generación de código Photon y Spark a veces no podía generar excepciones de análisis, mientras que la ejecución de Spark interpretó correctamente IllegalArgumentException o ConversionInvalidInputError. Esta actualización garantiza que Photon genere de forma coherente las mismas excepciones que Spark durante los errores de descodificación de Base64, lo que proporciona un control de errores más predecible y confiable.

  • Agregar una CHECK restricción en una columna no válida ahora devuelve el UNRESOLVED_COLUMN. WITH_SUGGESTION clase de error: para proporcionar mensajería de errores más útil, en Databricks Runtime 15.3 y versiones posteriores, una ALTER TABLE ADD CONSTRAINT instrucción que incluye una restricción que hace referencia a un CHECK nombre de columna no válido devuelve el UNRESOLVED_COLUMN. WITH_SUGGESTION clase de error. Anteriormente, se devolvía un INTERNAL_ERROR.

El JDK se actualiza de JDK 8 a JDK 17

15 de agosto de 2024

El proceso sin servidor para cuadernos y flujos de trabajo se ha migrado del Kit de desarrollo de Java (JDK) 8 a JDK 17 al lado servidor. Esta actualización incluye los siguientes cambios de comportamiento:

  • Análisis correcto de patrones regex con negación en la agrupación de caracteres anidados: con esta actualización, Azure Databricks ahora admite el análisis correcto de patrones regex con negación en la agrupación de caracteres anidados. Por ejemplo, [^[abc]] se analizará como "cualquier carácter que no sea de tipo 'abc'".

    Además, el comportamiento de Photon era incoherente con Spark para las clases de caracteres anidadas. Los patrones regex que contienen clases de caracteres anidados ya no usarán Photon y, en su lugar, usarán Spark. Una clase de caracteres anidada es cualquier patrón que contenga corchetes entre corchetes, como [[a-c][1-3]].

Versión 15.1

23 de julio de 2024

Esta versión de proceso sin servidor se corresponde aproximadamente con Databricks Runtime 15.1

Nuevas características

Compatibilidad con la cláusula star (*) en la sintaxis WHERE: ahora puede usar la cláusula star (*) en la sintaxis WHERE para hacer referencia a todas las columnas de la lista de SELECT.

Por ejemplo, SELECT * FROM VALUES(1, 2) AS T(a1, a2) WHERE 1 IN(T.*).

Cambios

Recuperación de errores mejorada para el análisis de JSON: el analizador de JSON usado para from_json() y las expresiones de ruta de acceso de JSON ahora se recuperan más rápido de una sintaxis con formato incorrecto, lo cual da lugar a una pérdida de datos inferior.

Al encontrar una sintaxis JSON con formato incorrecto en un campo de estructura, un valor de matriz, una clave de mapa o un valor de mapa, el analizador de JSON ahora devolverá NULL solo para el campo, la clave o el elemento no legibles. Los campos, claves o elementos posteriores se analizarán correctamente. Antes de este cambio, el analizador de JSON abandonaba el análisis de la matriz, la estructura o el mapa y devolvía NULL para el contenido restante.

Versión 14.3

15 de abril de 2024

Esta es la versión inicial de proceso sin servidor. Esta versión se corresponde aproximadamente con Databricks Runtime 14.3 con algunas modificaciones que quitan la compatibilidad con algunas características no sin servidor y heredadas.

Parámetros de configuración de Spark admitidos

Para automatizar la configuración de Spark en un proceso sin servidor, Azure Databricks ha quitado la compatibilidad para establecer manualmente la mayoría de las configuraciones de Spark. Solo puede establecer manualmente los siguientes parámetros de configuración de Spark:

  • spark.sql.legacy.timeParserPolicy (El valor predeterminado es CORRECTED)
  • spark.sql.session.timeZone (El valor predeterminado es Etc/UTC)
  • spark.sql.shuffle.partitions (El valor predeterminado es auto)
  • spark.sql.ansi.enabled (El valor predeterminado es true)

Se producirá un error en las ejecuciones de trabajo en el proceso sin servidor si establece una configuración de Spark que no está en esta lista.

Para más información sobre cómo configurar las propiedades de Spark, consulte Establecimiento de propiedades de configuración de Spark en Azure Databricks.

input_file funciones están en desuso

Las funciones input_file_name(), input_file_block_length(), y input_file_block_start() han quedado en desuso. No se recomienda usar estas funciones.

En su lugar, use la columna de metadatos de archivo para recuperar información de metadatos de archivo.

Cambios de comportamiento

La versión de proceso sin servidor 2024.15 incluye los siguientes cambios de comportamiento:

  • unhex(hexStr) corrección de errores: Cuando se usa la función unhex(hexStr), hexStr siempre se rellena a un byte completo. Anteriormente, la función unhex omitió el primer byte medio. Por ejemplo: unhex('ABC')ahora genera x'0ABC' en lugar de x'BC'.
  • Los alias de columna generados automáticamente ahora son estables: Cuando se hace referencia al resultado de una expresión sin un alias de columna especificado por el usuario, este alias generado automáticamente ahora será estable. El nuevo algoritmo puede dar lugar a un cambio en los nombres generados automáticamente previamente usados en características como las vistas materializadas.
  • Los recorridos de tablas conCHAR campos de tipo ahora se rellenan siempre: Tablas Delta, determinadas tablas JDBC y orígenes de datos externos almacenan datos CHAR en un formulario no rellenado. Al leer, Azure Databricks ahora rellenará los datos con espacios a la longitud declarada para garantizar la semántica correcta.
  • Las conversiones de BIGINT/DECIMAL a TIMESTAMP producen una excepción para los valores desbordados: Azure Databricks permite la conversión de BIGINT y DECIMAL a TIMESTAMP mediante el tratamiento del valor como el número de segundos de la época de Unix. Anteriormente, Azure Databricks devolvería valores desbordados, pero ahora produce una excepción en casos de desbordamiento. Use try_cast para devolver NULL en lugar de una excepción.
  • Se ha mejorado la ejecución de UDF de PySpark para que coincida con el comportamiento exacto de la ejecución de UDF en un proceso de usuario único: Se han realizado los siguientes cambios:
    • Las UDF con un tipo de valor devuelto de cadena ya no convierten implícitamente valores que no son de cadena en cadenas. Anteriormente, las UDF con un tipo devuelto straplicarían un str(..)contenedor al resultado independientemente del tipo de datos real del valor devuelto.
    • Las UDF con timestamp tipos devueltos ya no aplican implícitamente una conversión de zona horaria a las marcas de tiempo.