メインコンテンツまでスキップ

Databricks Connect for Python による非同期クエリと中断

注記

この記事では、Databricks Runtime 14.0 以降の Databricks Connect について説明します。

この記事では、Databricks Connect for Python を使用して非同期クエリと中断を処理する方法について説明します。 Databricks Connect を使用すると、一般的な IDEs、ノートブック サーバー、およびカスタム アプリケーションを Databricks クラスターに接続できます。 「Databricks Connect とは」を参照してください。この記事の Scala バージョンについては、「 Databricks Connect for Scala での非同期クエリと中断」を参照してください。

注記

Databricks Connect の使用を開始する前に、 Databricks Connect クライアントを設定する必要があります

Databricks Connect for Databricks Runtime 14.0 以降では、実行時間の長いクエリを実行するときに、クエリの実行がネットワークやその他の割り込みに対してより回復性があります。 クライアント プログラムが中断を受け取った場合、またはオペレーティング システムによってプロセスが停止された場合 (ラップトップのカバーが閉じられている場合など) (最大 5 分)、クライアントは実行中のクエリに再接続します。 これにより、クエリを長時間 (以前は 1 時間のみ) 実行することもできます。

Databricks Connect には、コスト削減など、必要に応じて実行中のクエリを中断する機能も付属しています。

次の Python プログラムは、 interruptTag() API を使用して、実行時間の長いクエリを中断します。

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