Unity Catalog のリソース クォータの使用状況を監視する
この記事では、リソース クォータの対象となる Unity Catalog のセキュリティ保護可能なオブジェクトの使用状況を監視する方法について説明します。
Unity Catalog リソース クォータ APIsを使用して、使用状況を追跡できます。ご要望に応じて引き上げられる制限もあれば、固定されている制限もあります。 混乱を避けるために、事前に計画を立て、リソースクォータを超えることが予想される場合は Databricks アカウントチームに連絡してください。
Unity Catalog のリソースクォータとは何ですか?
Unity Catalog は、 Unity Catalog によって管理されるすべてのセキュリティ保護可能なオブジェクトにリソース クォータを適用します。 これらのクォータは、「 リソース制限」に記載されています。 その記事では、Clean Rooms、Delta Sharing、Marketplace、Unity Catalog のクォータとして識別されています。
各クォータは、親オブジェクト (またはスコープ) あたりのオブジェクト数として定義されます。 たとえば、スキーマごとに 10,000 テーブル、メタストアごとに 1,000,000 テーブルなどです。
リソース クォータに対する使用状況のクエリ
リソース クォータに対する使用状況を事前に監視するには、 Unity Catalog リソース クォータ REST APIsを使用します。
GetQuota
親あたりの子オブジェクトの数として定義される 1 つのクォータの種類 (メタストアあたりのテーブルなど) のクォータ使用量を取得します。ListQuotas
ターゲット メタストアの下にあるすべてのクォータ値を、デフォルトによってページ分割して取得します。
どちらの APIs も、次のフィールドを含む quota_info
オブジェクトの形式で情報を返します。 また、GetQuota API を使用してリクエストを行うときにも、これらのフィールドの一部を使用します。
parent_securable_type
: 親オブジェクトのタイプ。 たとえば、スキーマあたりのテーブル数の場合、parent_securable_type
はschema
です。注:
親タイプが登録済みモデルであるクォータの場合は、
parent_securable_type
をfunction
に設定します。parent_full_name:
クォータの親のフルネーム。 たとえば、main.default
スキーマです。 親がメタストアの場合は、リクエストでメタストア ID を使用します。quota_name
: クォータの名前。 これは、-quota
の接尾辞が付いた子オブジェクト (テーブル、スキーマ、共有など) です。 たとえば、table-quota
.quota_count
: 最新の使用量。 たとえば、スキーマごとに33
つのテーブルです。quota_limit
: クォータ数が計算された時点のクォータ制限値。 たとえば、スキーマごとに10000
つのテーブルです。last_refreshed_at
: クォータ数が最後に更新された時刻。 これは、Unix エポックのタイムスタンプとして表示されます。 タイムスタンプは、 Epoch Converterなどのオンラインツールを使用して、人間が読める形式に変換できます。
ListQuotas
API は、現在の応答がすべての結果を返さない場合にも、応答でページ トークンを返します。
API の承認と認証
リソースクォータ APIsを呼び出すことができるのは、アカウント管理者だけです。
APIsを呼び出すアカウント管理者はOAuth ユーザー対マシン (U2M) 認証 (ユーザーまたはグループ用) または OAuth マシン間 (M2M) 認証 (アカウント 管理者がサービスプリンシパルの場合) を使用する必要があります。「 Databricksを使用してユーザー アカウントでOAuth へのアクセスを認証する(OAuth U2M )または を使用してサービスDatabricks プリンシパルでOAuth へのアクセスを認証する(OAuth M2M) を参照してください。Databricks生成された 個人用アクセストークン (PAT) もオプションですが、推奨されません。
GetQuota API を使用して、特定のクォータタイプのクォータ使用量の値を取得する
GetQuota
API を使用して、子と親のペアで定義されている 1 つのリソース クォータの使用状況情報を取得します。
メソッド: GET
パス: /unity-catalog/resource-quotas/{parent_securable_type}/{parent_full_name}/{quota_name}
Body パラメーター: パラメーターの説明については、「 リソースクォータに対する使用量のクエリ」を参照してください。
APIリファレンスについては、GET /unity-catalog/resource-quotas/ を参照してください。
GetQuota
カウントの精度は、クォータの親の下で実行された最後の作成操作から 30 分以内です。 削除操作のみが実行された場合、Unity Catalog はリソースの作成中にのみクォータ数を更新するため、カウントが古くなっている可能性があります。 クォータ カウントが古い場合は、 GetQuota
を呼び出すとクォータ カウントの更新がトリガーされますが、トリガーは非同期であり、最初の呼び出しで新しいカウントが返されない可能性があります。
リクエストの例
ワークスペースにアタッチされたメタストアの main
カタログで作成されたスキーマの数を要求する Python の例:
import requests
headers = {'Authentication': 'Bearer <OAuthtoken>'}
r = requests.get('https://example-workspace.databricks.com/api/2.1/unity-catalog/resource-quotas/catalog/main/schema-quota', headers=headers)
print(r.text)
同じことを行う curl の例:
$ curl -X GET -H "Authentication: Bearer $OAUTH_TOKEN" \
"https://example-workspace.databricks.com/api/2.1/unity-catalog/resource-quotas/catalog/main/schema-quota"
ListQuotas API を使用して、メタストア内のすべてのクォータの種類の使用状況データを取得します
ListQuotas
API を使用して、メタストア内のすべてのクォータの種類の使用状況データを取得します。
メソッド: GET
パス: /unity-catalog/resource-quotas/all-resource-quotas
Body パラメーター:
max_results
: 返す結果の数。 最大値は 500 です。 デフォルトは 100 です。page_token
: 結果の次のページをフェッチするための前の要求のページ トークン。
APIリファレンスについては、「GET /unity-catalog/resource-quotas/all-resource-quotas」を参照してください。
GetQuotas
とは異なり、ListQuotas
にはカウントの鮮度に関するSLAはありません。また、クォータ数の更新もトリガーされません。 精度を最大限に高めるには、 GetQuota
API を使用します。
リクエストの例
ワークスペースにアタッチされたメタストア内のすべてのオブジェクトに対してクォータ数を要求する Python の例で、ページごとに返す結果を 5 つ指定します。
import requests
headers = {'Authentication': 'Bearer <OAuthtoken>'}
next_page = None
max_results = 5
results = []
while True:
payload = {'max_results': max_results, 'page_token': next_page}
r = requests.get(
'https://example-workspace.databricks.com/api/2.1/unity-catalog/resource-quotas/all-resource-quotas', headers=headers, params=payload).json()
results.extend(r["quotas"])
if "next_page_token" not in r: break
next_page = r["next_page_token"]
results
同じことを行う curl の例:
$ curl -X GET -H "Authentication: Bearer $OAUTH_TOKEN" \
-d '{"max_results": 5}' "https://example-workspace.databricks.com/api/2.1/unity-catalog/resource-quotas/all-resource-quotas"
レスポンスの例
5 つのクォータ カウントの 1 ページを示す応答:
"quotas":[
{
"parent_securable_type":"CATALOG",
"parent_full_name":"auto_maintenance",
"quota_name":"schema-quota",
"quota_count":15,
"quota_limit":10000,
"last_refreshed_at":1707272498713
},
{
"parent_securable_type":"CATALOG",
"parent_full_name":"demo_icecream",
"quota_name":"schema-quota",
"quota_count":3,
"quota_limit":10000,
"last_refreshed_at":1720789637102
},
{
"parent_securable_type":"CATALOG",
"parent_full_name":"primarycatalog",
"quota_name":"schema-quota",
"quota_count":2,
"quota_limit":10000,
"last_refreshed_at":1720829359520
},
{
"parent_securable_type":"CATALOG",
"parent_full_name":"shared_catalog_azure",
"quota_name":"schema-quota",
"quota_count":670,
"quota_limit":10000,
"last_refreshed_at":1722036080791
},
{
"parent_securable_type":"CATALOG",
"parent_full_name":"cat-test",
"quota_name":"schema-quota",
"quota_count":567,
"quota_limit":10000,
"last_refreshed_at":1704845201239
}
],
"next_page_token":"eyJfX3R2IjoiMCIsInB0IjoiQ2F0YWxvZyIsInBpZCI6IjAwNTAyYTM1LWIzMGQtNDc4YS1hYTIwLTE5MDZkMGVmNzdiNiIsInJ0IjoiU2NoZW1hIn0="