Pular para o conteúdo principal

Interrupções de consultas com o Databricks Connect

nota

Este artigo aborda Databricks Connect para Databricks Runtime 14.0 e versões superiores.

Este artigo descreve como lidar com consultas assíncronas e interrupções com Databricks Connect. Databricks Connect permite conectar IDEs populares, servidores de notebooks e aplicativos personalizados a clusters Databricks . Veja O que é o Databricks Connect?

Interrupções na execução de consultas

Para Databricks Connect para Databricks Runtime 14.0 e versões superiores, a execução de consultas é mais resiliente a interrupções de rede e outras interrupções ao executar consultas de longa duração. Quando o programa cliente recebe uma interrupção ou o processo é pausado (até 5 minutos) pelo sistema operacional, como quando a tampa do laptop é fechada, o cliente se reconecta à consulta em execução. Isso também permite que as consultas sejam executadas por períodos mais longos (antes, apenas 1 hora).

O Databricks Connect agora também oferece a capacidade de interromper consultas em execução, se desejado, por exemplo, para reduzir custos.

O seguinte programa em Python interrompe uma consulta de longa duração usando a API interruptTag() .

Python
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()

Sessões de longa duração

nota

Sessões de longa duração são suportadas no Databricks Connect versão 16.4 e superiores. compute serverless .

Ao usar Databricks Connect com compute serverless , após o tempo limite default do Parado, Fazemos o possível para preservar sua sessão. Ao se reconectar, Databricks tenta Restaura automaticamente sua sessão, incluindo configurações, visualização temporária e UDFs. variáveis temporárias e upload de arquivos.

Isso é útil para sessões com comandos que precisam manter o estado para sobreviver a períodos de inatividade. tais como definir configurações, registrar UDFs, criar visualizações temporárias ou fazer upload. arquivos. Sem isso, um timeout do Parado exigiria que você reexecutasse todas essas configurações. comando antes de retomar o trabalho.

Limitações

  • Sessões de longa duração são suportadas apenas em compute serverless . Eles não são suportados em compute padrão ou dedicada.
  • A recuperação da sessão após o tempo limite do Parado é feita da melhor maneira possível e não é garantida. Se o seu A sessão não pôde ser restaurada; uma nova sessão será iniciada.
  • Sessões que acumulam uma grande quantidade de estado podem exceder o limite de tamanho, após o qual O estado não é mais preservado. Reconectar após esse limite iniciará uma nova sessão.
  • O estado de preservação expira após dois dias de inatividade. Se a sua sessão for parado mais longa do que isso, reconectar inicia uma nova sessão.
  • O estado da consulta de transmissão e os scripts SQL que usam EXECUTE IMMEDIATE não são preservados. através de reconexões.