Compartir a través de


Consultas asincrónicas e interrupciones con Databricks Connect para Python

Nota:

En este artículo se habla de Databricks Connect para Databricks Runtime 14.0 y versiones posteriores.

En este artículo se describe cómo controlar las consultas asincrónicas y las interrupciones con Databricks Connect para Python. Databricks Connect le permite conectar los clústeres de Azure Databricks a entornos de desarrollo integrado populares, servidores de cuadernos y otras aplicaciones personalizadas. Consulte ¿Qué es Databricks Connect?. Para obtener la versión de Scala de este artículo, vea Consultas asincrónicas e interrupciones con Databricks Connect para Scala.

Nota:

Antes de empezar a usar Databricks Connect, debe configurar el cliente de Databricks Connect.

Para Databricks Connect para Databricks Runtime 14.0 y versiones posteriores, la ejecución de consultas es más resistente a las interrupciones de red y de otro tipo cuando se ejecutan consultas de larga duración. Cuando el programa cliente recibe una interrupción o el proceso se pone en pausa (hasta 5 minutos) por el sistema operativo, como cuando se cierra la tapa del portátil, el cliente vuelve a conectarse a la consulta en ejecución. Esto también permite que las consultas se ejecuten durante más tiempo (anteriormente solo 1 hora).

Databricks Connect ahora también incluye la capacidad de interrumpir las consultas en ejecución, si lo desea, por ejemplo para ahorrar costos.

El siguiente programa de Python interrumpe una consulta de larga duración mediante la API interruptTag().

from databricks.connect import DatabricksSession
from time import sleep
import threading

session = DatabricksSession.builder.getOrCreate()

def thread_fn():
  sleep(5)
  session.interruptTag("interrupt-me")

# All subsequent DataFrame queries that use session will have this tag.
session.addTag("interrupt-me")

t = threading.Thread(target=thread_fn).start()

df = <a long running DataFrame query>
df.show()

t.join()