LoginSignup
3
1

【Databricks】REST APIのチートシート

Last updated at Posted at 2023-10-08

背景・目的

DatabricksのREST APIを使う機会がありましたので、目的別に整理しメモしておきます。

徐々に更新します。

まとめ

  • REST APIはこちらを参照してください。
  • REST APIにはレート制限があります。それぞれのレート制限はこちらを参照してください。
  • 目的別のREST APIは下記のとおりです。(※2023/10/08時点の情報です)
分類 目的 REST API(リファレンス) 備考
Unity Catalog カタログのリストを取得したい List catalogs
Identity and Access Management グループの一覧を取得したい List group details Public Preview
ユーザの一覧を取得したい List users Public Preview

概要

基本的な構文

基本的な構文の例を下記に記載します。

curl --request GET "https://${DATABRICKS_HOST}/api/2.0/clusters/get" \
     --header "Authorization: Bearer ${DATABRICKS_TOKEN}" \
     --data '{ "cluster_id": "1234-567890-a12bcde3" }'

下記を指定します。

  • DATABRICKS_HOST: Databricksのホスト名
  • DATABRICKS_TOKEN: アクセストークン

レート制限

DatabricksのREST APIはレート制限があるようです。

  • 1秒あたりのレートが設定されています。
  • WorkspaceとAPIごとにレートが設定されています。詳細はこちらを参照ください。
  • 上限引き上げが可能なものもあります。引き上げる際は、Databricks担当者を通して依頼するようです。
  • レート制限に引っかかる場合は、429 Too Many Requestsが返されます。

実践

前提

アクセストークンの取得

REST APIに指定するアクセストークンを取得します。

  1. ワークスペースにサインインします。

  2. 右上のプルダウンから「User Settings」をクリックします。

  3. 「Developer」をクリックします。

  4. Access tokensの「Manage」をクリックします。

  5. Access tokensの「Generate new token」をクリックします。

  6. ポップアップがあがるので、CommentとLifetimeを入力し「Generate」をクリックします。

  7. 次のページでTokenが表示されるので、メモしてください。(ここでしか確認できません。)

  8. 登録されました。
    image.png

jqのインストール

必須ではありません。

  1. REST APIで返されたJSONを見やすくするため、jqをインストールしておきます。

REST API

Unity Catalog

List catalogs

  • API
/api/2.1/unity-catalog/catalogs
  • サンプル
$ curl --request GET "https://${DATABRICKS_HOST}/api/2.1/unity-catalog/catalogs" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}"   | jq
  
{
  "catalogs": [
    {
      "name": "main",
      "owner": "XXXXX",
      "comment": "Main catalog (auto-created)",
      "catalog_type": "MANAGED_CATALOG",
      "metastore_id": "XXXXXX",
      "created_at": 1694869621233,
      "created_by": "XXXXX",
      "updated_at": 1694869621233,
      "updated_by": "XXXXX",
      "isolation_mode": "OPEN",
      "browse_only": false,
      "provisioning_info": {
        "state": "ACTIVE"
      },
      "id": "XXXXXXX",
      "full_name": "XXXX",
      "securable_type": "CATALOG",
      "securable_kind": "CATALOG_STANDARD"
    },
    {
      "name": "system",
      "owner": "XXXXX",
      "comment": "System catalog (auto-created)",
      "catalog_type": "SYSTEM_CATALOG",
      "metastore_id": "XXXXXXX",
      "created_at": 1694869621052,
      "created_by": "XXXXXX",
      "updated_at": 1694869621052,
      "updated_by": "XXXXXX",
      "isolation_mode": "OPEN",
      "browse_only": false,
      "provisioning_info": {
        "state": "ACTIVE"
      },
      "id": "XXXXXX",
      "full_name": "XXX",
      "securable_type": "CATALOG",
      "securable_kind": "CATALOG_SYSTEM"
    }
  ]
}
$

Identity and Access Management

Groups

List group details
  • API
/api/2.0/preview/scim/v2/Groups
  • サンプル

※結果は省略しています。

$ curl --request GET "https://${DATABRICKS_HOST}/api/2.0/preview/scim/v2/Groups" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}"   | jq

Users

List users
  • API
/api/2.0/preview/scim/v2/Users
  • サンプル

※結果は省略しています。

$ curl --request GET "https://${DATABRICKS_HOST}/api/2.0/preview/scim/v2/Users" \               
--header "Authorization: Bearer ${DATABRICKS_TOKEN}"   | jq

参考

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