Skip to content
DigitalNeuron
Herramientas y productos

Databricks añade la reparticipación de estado a demanda para Spark Structured Streaming

Databricks anunció una función en vista previa pública que permite a las consultas de Structured Streaming cambiar el número de particiones sin necesidad de reconstruir los checkpoints.

Por DigitalNeuron Desk3 min de lectura

Respuesta rápida

¿Qué anunció Databricks sobre la gestión de estado en Apache Spark Structured Streaming?

Databricks anunció la reparticionamiento de estado bajo demanda, una función en Vista Previa Pública disponible en Databricks Runtime 18 y versiones posteriores, que permite a las consultas con estado de Structured Streaming modificar su número de particiones reiniciándose con una nueva configuración, sin perder ni reconstruir el estado del checkpoint.

Claves

  • Databricks anunció la reparticionamiento de estado bajo demanda para Apache Spark Structured Streaming, ahora disponible en versión preliminar pública en Databricks Runtime 18 y versiones posteriores.
  • La función permite a los usuarios cambiar el número de particiones de una consulta de streaming con estado mediante el nuevo parámetro spark.sql.streaming.stateStore.partitions, que tiene prioridad sobre spark.sql.shuffle.partitions en las consultas con estado.
  • Anteriormente, el número de particiones quedaba fijado en el momento de crear el checkpoint, y cambiar spark.sql.shuffle.partitions no tenía ningún efecto sin descartar el checkpoint y perder el estado acumulado.
  • Databricks señala que los requisitos son Databricks Runtime 18 o superior y el proveedor de almacén de estado RocksDB, que es el predeterminado en DBR 17.3 y versiones posteriores.
  • Databricks indica que Coveo, uno de los primeros usuarios de la función, redujo en un 40% los costos asociados de la API de Amazon S3 tras utilizar esta capacidad, según una cita de Alexis Chicoine, de Coveo, incluida en el anuncio.

Databricks anunció la reparticionamiento de estado a demanda ("on-demand state repartitioning") para Apache Spark Structured Streaming, una capacidad en Vista Previa Pública que permite a los ingenieros redimensionar el número de particiones de una consulta de streaming con estado sin reconstruir el checkpoint ni perder el estado acumulado. La función está disponible en Databricks Runtime 18 y versiones posteriores.

Qué cambió

Según Databricks, las consultas de streaming con estado han tenido históricamente su número de particiones fijado en el momento en que se creaba el checkpoint. Cambiar el parámetro estándar spark.sql.shuffle.partitions y reiniciar la consulta no tenía ningún efecto, porque la distribución de particiones quedaba integrada en el checkpoint. La única opción anterior, según Databricks, era descartar el checkpoint y comenzar uno nuevo, lo que implicaba perder todo el estado acumulado por la consulta, como datos de detección de fraude en millones de cuentas o ventanas de sesión de varios días.

Databricks afirma que la reparticionamiento de estado a demanda elimina esa restricción. Se aplica a cualquier consulta de streaming con estado, incluidas agregaciones, uniones stream-stream, deduplicación, sesionización y cargas de trabajo con transformWithState.

Cómo funciona

Databricks explica que los usuarios establecen una configuración específica, spark.sql.streaming.stateStore.partitions, y reinician la consulta. Este parámetro tiene prioridad sobre spark.sql.shuffle.partitions en las consultas con estado. Al reiniciar, la consulta primero completa cualquier micro-lote pendiente y luego realiza una operación única de reparticionamiento que redistribuye físicamente los datos de estado según el nuevo número de particiones, reasignando las claves mediante hash a sus ubicaciones correctas. Una vez completado ese proceso, la consulta reanuda su procesamiento con el nuevo número de particiones.

Databricks señala que los requisitos para usar esta función son Databricks Runtime 18 o superior y el proveedor de almacén de estado RocksDB, que es el predeterminado para las nuevas consultas creadas en DBR 17.3 y versiones posteriores.

Monitoreo

Databricks indica que la duración de la operación de reparticionamiento aparece en los eventos estándar StreamingQueryProgress, específicamente en las métricas durationMs, bajo un campo llamado controlBatch.REPARTITION. La compañía señala que el tiempo de reparticionamiento es proporcional a la cantidad de estado involucrado, pero espera que en la mayoría de las cargas de trabajo tome solo unos segundos.

Casos de uso mencionados

Databricks describe tres escenarios para esta función: ajustar el tamaño de una consulta después de su lanzamiento, cuando el número inicial de particiones definido para un piloto pequeño ya no se ajusta al crecimiento, como un flujo de puntuación de fraude que se expande de una región a muchas; adaptarse a cargas de trabajo cambiantes, como un pipeline de subastas publicitarias que podría aumentar el número de particiones durante el tráfico diurno y reducirlo por la noche; y la recarga de datos históricos, donde se podría usar temporalmente un mayor número de particiones para acelerar el reprocesamiento de datos pasados antes de reducirlo nuevamente para el tráfico en régimen estable.

Ejemplo de cliente

Databricks citó a Alexis Chicoine, Desarrollador de Software Senior en Coveo, uno de los primeros usuarios de la función, quien afirmó que Coveo ejecuta pipelines de streaming con estado a gran escala con volúmenes de datos fluctuantes y ha reducido en un 40% los costos asociados de la API de Amazon S3 gracias a esta capacidad. Chicoine señaló que anteriormente la compañía tenía que elegir entre el sobreaprovisionamiento o la reconstrucción a partir de nuevos checkpoints, lo que llevaba los costos de la API de almacenamiento a niveles cercanos a los del cómputo, y que ahora pueden escalar sin interrumpir el estado existente ni provocar migraciones de checkpoint.

Fuente: blog de Databricks, "Announcing On-Demand State Repartitioning for Apache Spark™ Structured Streaming on Databricks", publicado el 14 de septiembre de 2026.

Preguntas frecuentes

{"duration_api_ms":2992,"stop_reason":"end_turn","session_id":"8dbe8e7e-c120-4334-87d2-de454848bca4","total_cost_usd":0.0031777999999999997,"usage":{"input_tokens":2,"cache_creation_input_tokens":0,"cache_read_input_tokens":9019,"output_tokens":22,"output_tokens_details":{"thinking_tokens":0},"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":0},"inference_geo":"not_available","iterations":[{"input_tokens":2,"output_tokens":22,"cache_read_input_tokens":9019,"cache_creation_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"type":"message"}],"speed":"standard"},"modelUsage":{"claude-haiku-4-5-20251001":{"inputTokens":1065,"outputTokens":17,"cacheReadInputTokens":0,"cacheCreationInputTokens":0,"webSearchRequests":0,"costUSD":0.00115,"contextWindow":200000,"maxOutputTokens":32000,"thinkingTokens":0,"canonicalModel":"claude-haiku-4-5","provider":"firstParty","costBasis":"list"},"claude-sonnet-5":{"inputTokens":2,"outputTokens":22,"cacheReadInputTokens":9019,"cacheCreationInputTokens":0,"webSearchRequests":0,"costUSD":0.0020277999999999997,"contextWindow":1000000,"maxOutputTokens":64000,"thinkingTokens":0,"canonicalModel":"claude-sonnet-5","provider":"firstParty","costBasis":"list"}},"permission_denials":[],"terminal_reason":"completed","fast_mode_state":"off","fast_mode_disabled_reason":"sdk_opt_in_required","subagent_stats":{"spawned":0,"requested":{"background":0,"foreground":0,"unset":0},"started_in_background":0,"max_depth":0,"spawned_by_subagents":0,"completed":0,"failed":0,"killed":{"parent":0,"user":0,"system":0},"refused":{"depth_limit":0,"concurrency_limit":0,"budget":0},"by_type":{}},"is_error":false,"num_turns":1,"subtype":"success","api_error_status":null,"result":"¿Qué es la repartición de estado bajo demanda?","ttft_ms":2923,"type":"result","duration_ms":3055,"uuid":"5a06a5d9-3dbc-42d4-b380-89f0ffee1942","ttft_stream_ms":2235,"time_to_request_ms":1352,"queued_turn_count":0} Client.listTools() called but server does not advertise tools capability - returning empty list
Es una función en vista previa pública (Public Preview) de Databricks que permite que una consulta con estado de Apache Spark Structured Streaming cambie su número de particiones de estado deteniendo y reiniciando la consulta, manteniendo intacto el estado del checkpoint existente.
¿Qué necesito para usarla?
Databricks indica que se necesita Databricks Runtime 18 o superior y el proveedor de almacén de estado RocksDB, que ya es el predeterminado para las nuevas consultas creadas en DBR 17.3 y versiones posteriores.
¿Cómo cambio el número de particiones?
Databricks indica que hay que detener la consulta, establecer la configuración spark.sql.streaming.stateStore.partitions con el nuevo valor y reiniciar la consulta usando el mismo checkpoint; la consulta redistribuye entonces el estado para ajustarse al nuevo número antes de reanudar el procesamiento.
¿Cómo puedo monitorear la operación de reparticionamiento?
Databricks indica que los eventos StreamingQueryProgress reportan la duración de la operación en las métricas durationMs, bajo el campo controlBatch.REPARTITION.

Fuentes

  1. Announcing On-Demand State Repartitioning for Apache Spark™ Structured Streaming on Databricks | Databricks Blog — Databricks
Etiquetasdatabricksapache-sparkstructured-streamingdata-engineeringcheckpointingpublic-preview

Lecturas relacionadas

Databricks detalla la ramificación de Lakebase para pruebas de CI/CD

Databricks afirma que su base de datos serverless Postgres Lakebase utiliza ramificación copy-on-write para ofrecer a cada solicitud de extracción de CI/CD una copia aislada y editable de los datos de producción en menos de 60 segundos, en lugar de más de 30 minutos, según demuestra un caso de estudio con la clienta Snorkel AI, que gestiona unas 100 ramas simultáneas sobre un conjunto de datos de aproximadamente 2,5 terabytes.

3 min de lectura

Databricks y SAP amplían su alianza para llevar herramientas de IA a los datos de SAP

Databricks y SAP anunciaron planes para incorporar las capacidades Genie, Lakeflow, Unity Gateway y Lakebase de Databricks a SAP Databricks dentro de SAP Business Data Cloud. El movimiento se apoya en el nuevo SAP Application Data Foundation, que da a los clientes de SAP Databricks acceso a los datos de las aplicaciones de SAP en sistemas en la nube y locales, sin necesidad de canalizaciones de extracción personalizadas.

4 min de lectura