パブリックプレビュー中(2024/5 時点)である Azure Databricks のシステムテーブルを確認してみたかったので有効化してみました。
また、有効化のためにcurl コマンドを使用する必要があるのですが、Databricks Runtime 15.1を使用すると、ノートブックの Web ターミナルから Databricks CLI を使用できるようになったのでこちらを使ってみました。
前提
システムテーブルスキーマを有効化するにはUnity Catalog が必要となります。
有効化前は system
カタログには information_schema
しか見えていないはずなので、access
, billing
, compute
スキーマを見えるようにしていきます。
Web ターミナルから Databricks CLI を使用
ノートブックに Runtime のバージョンを 15.1 に設定したクラスターをアタッチします。
Web ターミナルから Databricks CLI を使用するための要件は下記となります。
Web ターミナルを開くには、右側のサイドバーの下部にあるアイコンをクリックします。
下図のようなターミナルが起動します。
システムテーブルスキーマを有効にする
使用可能なシステムテーブルスキーマを表示する
まずは使用可能なシステムテーブルスキーマを表示してみました。
curl -v -X GET -H "Authorization: Bearer <PAT Token>" "https://adb-<xxx>.azuredatabricks.net/api/2.0/unity-catalog/metastores/<metastore-id>/systemschemas"
- PAT Token:パーソナルアクセストークン(作成時に表示される文字列)
- adb-xxx.azuredatabricks.net:対象のワークスペースのURL(Azure Portalから確認可能)
- metastore-id:メタストアID(カタログエクスプローラーの歯車マークから確認可能)
ターミナルで上記コマンドを実行すると、下記のような表示があります。
{"schemas":[{"schema":"operational_data","state":"UNAVAILABLE"},{"schema":"access","state":"AVAILABLE"},{"schema":"billing","state":"AVAILABLE"},{"schema":"compute","state":"AVAILABLE"},{"schema":"marketplace","state":"AVAILABLE"},{"schema":"lineage","state":"UNAVAILABLE"},{"schema":"information_schema","state":"EnableCompleted"}]}`
state:AVAILABLE
:スキーマは使用できるが、まだ有効化されていない
state: EnableCompleted
:スキーマは有効化され、カタログエクスプローラーに表示される
システムテーブルスキーマを有効化する
有効化するには下記のコマンドを実行します。
curl -v -X PUT -H "Authorization: Bearer <PAT Token>" "https://adb-<xxx>.azuredatabricks.net/api/2.0/unity-catalog/metastores/<metastore-id>/systemschemas/<SCHEMA_NAME>"
SCHEMA_NAME
を access
, billing
, compute
に変更して実行することで state: EnableCompleted
となり、カタログエクスプローラーに表示されます。