3
0

More than 1 year has passed since last update.

Databricksのシステムテーブルを有効化してみる

Last updated at Posted at 2023-07-26

最近Databricksで、以下のシステムテーブルが追加されました。

  • 監査ログ(Audit logs)
  • 使用量ログ(Billable usage logs)
  • リネージ(Table and column lineage)

いずれも別個の機能でデータを取得することは可能でしたが、今回これら全てがUnity Catalogに統合された形になります。

本書では監査ログと使用量ログを有効化してみます。

システムテーブルの有効化

デフォルトではinformation_schemaしか有効化されていません。有効化するには、ローカルマシンからアカウントオーナーとしてREST APIを呼び出す必要があります。jqをインストールしておくと結果が確認しやすいです。

有効化状況の確認

まず、Unity CatalogメタストアのIDを確認します。APIを使う場合はこちら。

curl -v -X GET -u <アカウントオーナーのメールアドレス>:<パスワード> "https://<ワークスペースのホスト名>/api/2.1/unity-catalog/metastores" | jq

以下のmetastore_idがメタストアIDです。

{
  "metastores": [
    {
      "name": "taka-uc-metastore",
      "storage_root": "<メタストアルートバケット>",
      "default_data_access_config_id": "<資格情報ID>",
      "storage_root_credential_id": "<資格情報ID>",
      "delta_sharing_scope": "INTERNAL",
      "owner": "メタストア管理者",
      "privilege_model_version": "1.0",
      "region": "ap-northeast-1",
      "metastore_id": "<メタストアID>",
      "metastore_account_id": "<DatabricksアカウントID>",
      "created_at": 1672031902957,
      "created_by": "<作成者>",
      "updated_at": 1689054900612,
      "updated_by": "<更新者>",
      "storage_root_credential_name": "<資格情報名>",
      "cloud": "aws",
      "global_metastore_id": "<グローバルメタストアID>",
      "full_name": "taka-uc-metastore",
      "securable_type": "METASTORE",
      "securable_kind": "METASTORE_STANDARD"
    }
  ]
}

なお、アカウントコンソールのメタストア詳細画面でも確認できます。バケット名以降のIDです。
Screenshot 2023-07-27 at 7.56.21.png

システムテーブルの有効化状態を確認します。

curl -v -X GET -u <アカウントオーナーのメールアドレス>:<パスワード> "https://<ワークスペースのホスト名>/api/2.0/unity-catalog/metastores/<メタストアID>/systemschemas" | jq
{
  "schemas": [
    {
      "schema": "operational_data",
      "state": "AVAILABLE"
    },
    {
      "schema": "access",
      "state": "AVAILABLE"
    },
    {
      "schema": "billing",
      "state": "AVAILABLE"
    },
    {
      "schema": "information_schema",
      "state": "ENABLE_COMPLETED"
    }
  ]
}

information_schema以外はAVAILABLEで有効化できることがわかります。

監査ログテーブルの有効化

accessを指定して有効化します。

curl -v -X PUT -u <アカウントオーナーのメールアドレス>:<パスワード> "https://<ワークスペースのホスト名>/api/2.0/unity-catalog/metastores/4c55425f-e291-45f8-a4e7-29a103c19e29/systemschemas/access" | jq

operational_dataはプレビュー中のスキーマですので、accessを有効化してください。

問題なければ空のJSONが返ってきます。

{}

データエクスプローラにアクセスします。system.access.auditが表示されています。
Screenshot 2023-07-31 at 9.32.02.png

使用量ログテーブルの有効化

billingを指定して有効化します。

curl -v -X PUT -u <アカウントオーナーのメールアドレス>:<パスワード> "https://<ワークスペースのホスト名>/api/2.0/unity-catalog/metastores/4c55425f-e291-45f8-a4e7-29a103c19e29/systemschemas/billing" | jq

問題なければ空のJSONが返ってきます。

{}

データエクスプローラにアクセスします。system.billing.usageが表示されています。
Screenshot 2023-07-27 at 8.06.10.png

再度有効化状態を確認してみます。

{
  "schemas": [
    {
      "schema": "operational_data",
      "state": "AVAILABLE"
    },
    {
      "schema": "access",
      "state": "ENABLE_COMPLETED"
    },
    {
      "schema": "billing",
      "state": "ENABLE_COMPLETED"
    },
    {
      "schema": "information_schema",
      "state": "ENABLE_COMPLETED"
    }
  ]
}

すぐにはデータは反映されない(1日程度のラグがあるとのこと)ので、データが蓄積されたらこれらを分析してみます。

Databricksクイックスタートガイド

Databricksクイックスタートガイド

Databricks無料トライアル

Databricks無料トライアル

3
0
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
3
0