こちらのアップデートです。
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はカタログエクスプローラから確認できます。
あ、でも以下でもいけました。
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}")
query
がENABLE_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