0
1

Databricksシステムテーブルにおけるクエリー履歴のサポート

Posted at

こちらのアップデートです。

Query history system table is now available (Public Preview)

Databricksシステムテーブルにクエリー履歴テーブルが追加されました。このテーブルは、あなたのアカウントにおけるSQLウェアハウスで実行されたそれぞれのクエリー実行の詳細なレコードを記録します。このテーブルにアクセスするには、管理者が新たなqueryスキーマを有効化する必要があります。

マニュアルはこちら

で、これまで自分は、こちらにあるようにスキーマの有効化にDatabricksのREST APIを使っていたのですが、こちらの記事でより簡単な方法が紹介されていました。

こちらで紹介されているように、Databricks SDK for Pythonを使って有効化してみます。あと、すでに同僚の方も試されていました。

最新バージョンにアップグレードしておきます。

%pip install databricks-sdk --upgrade
dbutils.library.restartPython()
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()

for schema in w.system_schemas.list("<メタストアID>"):
  print(f"スキーマ名: {schema.schema}, 状態: {schema.state}")
スキーマ名: storage, 状態: SystemSchemaInfoState.AVAILABLE
スキーマ名: access, 状態: SystemSchemaInfoState.ENABLE_COMPLETED
スキーマ名: billing, 状態: SystemSchemaInfoState.ENABLE_COMPLETED
スキーマ名: compute, 状態: SystemSchemaInfoState.AVAILABLE
スキーマ名: marketplace, 状態: SystemSchemaInfoState.AVAILABLE
スキーマ名: query, 状態: SystemSchemaInfoState.AVAILABLE
スキーマ名: workflow, 状態: SystemSchemaInfoState.AVAILABLE
スキーマ名: operational_data, 状態: SystemSchemaInfoState.UNAVAILABLE
スキーマ名: lineage, 状態: SystemSchemaInfoState.UNAVAILABLE
スキーマ名: information_schema, 状態: SystemSchemaInfoState.ENABLE_COMPLETED

queryがAVAILABLEになっています。

上で指定しているメタストアIDはカタログエクスプローラから確認できます。
Screenshot 2024-07-21 at 10.12.08.png
Screenshot 2024-07-21 at 10.12.19.png

あ、でも以下でもいけました。

from databricks.sdk import WorkspaceClient
w = WorkspaceClient()

for schema in w.system_schemas.list(w.metastores.current().metastore_id):
  print(f"スキーマ名: {schema.schema}, 状態: {schema.state}")

有効化します。

w.system_schemas.enable(metastore_id=w.metastores.current().metastore_id, schema_name="query")
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()

for schema in w.system_schemas.list(w.metastores.current().metastore_id):
  print(f"スキーマ名: {schema.schema}, 状態: {schema.state}")

queryENABLE_COMPLETEDになりました。

スキーマ名: storage, 状態: SystemSchemaInfoState.AVAILABLE
スキーマ名: access, 状態: SystemSchemaInfoState.ENABLE_COMPLETED
スキーマ名: billing, 状態: SystemSchemaInfoState.ENABLE_COMPLETED
スキーマ名: compute, 状態: SystemSchemaInfoState.AVAILABLE
スキーマ名: marketplace, 状態: SystemSchemaInfoState.AVAILABLE
スキーマ名: query, 状態: SystemSchemaInfoState.ENABLE_COMPLETED
スキーマ名: workflow, 状態: SystemSchemaInfoState.AVAILABLE
スキーマ名: operational_data, 状態: SystemSchemaInfoState.UNAVAILABLE
スキーマ名: lineage, 状態: SystemSchemaInfoState.UNAVAILABLE
スキーマ名: information_schema, 状態: SystemSchemaInfoState.ENABLE_COMPLETED

カタログエクスプローラからも確認できます。
Screenshot 2024-07-21 at 10.26.53.png

はじめてのDatabricks

はじめてのDatabricks

Databricks無料トライアル

Databricks無料トライアル

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1