0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

新たなResource Quotas APIを用いたクォータに対するUnity Catalogオブジェクトの使用量の監視

Posted at

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

Monitor Unity Catalog object usage against quotas using the new Resource Quotas APIs

新たなResource Quotas APIによって、リソースのクォータに対するUnity Catalogのセキュリティ保護可能オブジェクトの使用量を監視できるようになります。まもなく、クォータ制限に到達しそうになった際にメールで通知を行えるようになります。Unity Catalog のリソース クォータの使用状況を監視するResource Quotas API referenceをご覧ください。

早速動かしてみます。こちらを実行するにはアカウント管理者である必要があります。

import requests
import json

headers = {'Authentication': f'Bearer {token}'}
r = requests.get('https://<Databricksワークスペースのホスト名>/api/2.1/unity-catalog/resource-quotas/catalog/main/schema-quota', headers=headers)

response_json = json.loads(r.text)
print(json.dumps(response_json, indent=2))

上のAPI呼び出しでは、カタログcatalogmainに対しスキーマの制限に対する使用量schema-quotaを確認しています。tokenはパーソナルアクセストークンを使っています(非推奨です)。

上を実行すると、以下のようにquota_limitの10000に対してquota_countが6であることがわかります。

{
  "quota_info": {
    "parent_securable_type": "CATALOG",
    "parent_full_name": "main",
    "quota_name": "schema-quota",
    "quota_count": 6,
    "quota_limit": 10000,
    "last_refreshed_at": 1715690931393
  }
}

次の例では、メタストア内のオブジェクトのすべてのクォータをチェックしています。

注意
API呼び出し数のレート制限に引っかかる場合がありますので、スリープ処理を入れるなどした方がいいと思います。

import requests
headers = {'Authentication': f'Bearer {token}'}
next_page = None
max_results = 5
results = []

while True:
  payload = {'max_results': max_results, 'page_token': next_page}
  r = requests.get(
'https://<Databricksワークスペースのホスト名>/api/2.1/unity-catalog/resource-quotas/all-resource-quotas', headers=headers, params=payload).json()
  
  print(json.dumps(r, indent=2))
  results.extend(r["quotas"])
  if "next_page_token" not in r: break
  next_page = r["next_page_token"]

results

catalog-quotaconnection-quotaなども表示されています。

{
  "quotas": [
    {
      "parent_securable_type": "CATALOG",
      "parent_full_name": "test",
      "quota_name": "schema-quota",
      "quota_count": 1,
      "quota_limit": 10000,
      "last_refreshed_at": 3601000
    },

    <中略>

{
  "quotas": [
    {
      "parent_securable_type": "METASTORE",
      "parent_full_name": "4c55425f-e291-45f8-a4e7-29a103c19e29",
      "quota_name": "catalog-quota",
      "quota_count": 12,
      "quota_limit": 1000,
      "last_refreshed_at": 1719878450546
    },
    {
      "parent_securable_type": "METASTORE",
      "parent_full_name": "4c55425f-e291-45f8-a4e7-29a103c19e29",
      "quota_name": "connection-quota",
      "quota_count": 2,
      "quota_limit": 1000,
      "last_refreshed_at": 3601000
    },
    {
      "parent_securable_type": "METASTORE",
      "parent_full_name": "4c55425f-e291-45f8-a4e7-29a103c19e29",
      "quota_name": "external_location-quota",
      "quota_count": 5,
      "quota_limit": 10000,
      "last_refreshed_at": 1715689266451
    }
  ],

これらのデータを活用することで、アカウント全体でのオブジェクト数が制限を超えそうかどうかをダッシュボードなどで監視できるようになります。是非ご活用ください。

はじめてのDatabricks

はじめてのDatabricks

Databricks無料トライアル

Databricks無料トライアル

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?