Instance Pools API

インスタンスプール API を使用すると、インスタンスプールの作成、編集、削除、および一覧表示を行うことができます。

インスタンスプールは、アイドル状態のすぐに使用できるクラウドインスタンスのセットを維持することによって、クラスターの開始と自動スケールの時間を短縮します。 プールに接続されたクラスターがインスタンスを必要とするとき、クラスターはまず、プールにあるアイドル状態のインスタンスの 1 つを割り当てようとします。 プールにアイドル状態のインスタンスがない場合は、クラスターの要求に対応するために、インスタンスプロバイダーに新しいインスタンスを割り当てることによって拡張されます。 クラスターがインスタンスを解放すると、そのインスタンスはプールに戻り、別のクラスターが使用できるようになります。 プールに接続されているクラスターのみが、そのプールにあるアイドル状態のインスタンスを使用できます。

プール内でインスタンスがアイドル状態のときに、Azure Databricks によって DBU が課金されることはありません。 インスタンスプロバイダーの課金が適用されます。 「価格」を参照してください。

要件

  • プールにアタッチするためのアクセス許可が必要です。「 プールアクセス制御」を参照してください。

重要

Databricks REST API にアクセスするには、認証する必要があります。

作成

エンドポイント HTTP メソッド
2.0/instance-pools/create POST

インスタンスプールを作成します。 返されたを使用して、インスタンスプール instance_pool_id の状態を照会します。これには、インスタンスプールによって現在割り当てられているインスタンスの数が含まれます。 パラメーターを指定する min_idle_instances と、インスタンスがバックグラウンドでプロビジョニングされ、 idle_count instancepoolstats 内のが要求された最小値と等しい場合に使用できるようになります。

アカウントで Databricks Container Service が 有効になっ ていて、インスタンスプールがで作成されている場合は、インスタンスプールを使用して、 preloaded_docker_images Docker イメージを含むクラスターを起動できます。 インスタンスプール内の Docker イメージは、クラスター内の Docker イメージと一致している必要はありません。 ただし、プール上に作成されたクラスターのコンテナー環境は、インスタンスプールのコンテナー環境に合わせる必要があります。で作成されたインスタンスプールを使用して、 preloaded_docker_images docker イメージを使用せずにクラスターを起動することはできません。また、 preloaded_docker_images docker イメージを含む起動クラスターに対して作成されたインスタンスプールは使用できません。

注意

Azure Databricks は、インスタンスプロバイダーの制限または一時的なネットワークの問題により、要求されたアイドル状態のインスタンスの一部を取得できない可能性があります。 クラスターは引き続きインスタンスプールにアタッチできますが、すぐに起動しないことがあります。

要求の例を次に示します。

{
  "instance_pool_name": "my-pool",
  "node_type_id": "Standard_D3_v2",
  "min_idle_instances": 10
}

応答:

{
  "instance_pool_id": "0101-120000-brick1-pool-ABCD1234"
}

要求構造

フィールド名 Type 説明
instance_pool_name STRING インスタンスプールの名前。 これは、作成操作と編集操作に必要です。 一意であり、空でなく、100文字未満である必要があります。
min_idle_instances INT32 プールによって管理されるアイドル状態のインスタンスの最小数。 これは、アクティブなクラスターによって使用されているすべてのインスタンスに追加されます。
max_capacity INT32 プールに含めることができるインスタンスの最大数。アイドル状態のインスタンスとクラスターで使用されているインスタンスの両方を含みます。 最大容量に達すると、プールから新しいクラスターを作成することはできません。また、クラスターの終了またはダウンスケーリングによってプール内でアイドル状態になるまで、既存のクラスターを自動スケールすることはできません。
node_type_id STRING プール内のインスタンスのノード型。 プールにアタッチされているすべてのクラスターはこのノードの種類を継承し、プールのアイドル状態のインスタンスはこの種類に基づいて割り当てられます。 List node types API 呼び出しを使用して、使用可能なノードの種類の一覧を取得できます。
custom_tags Clustertagの配列 インスタンスプールリソースの追加タグ。 Azure Databricks は、default_tags に加えて、これらのタグを使用してすべてのプールリソース (VM ディスクボリュームなど) をタグ付けします。

Azure Databricks では、最大41のカスタムタグを使用できます。
idle_instance_autotermination_minutes INT32 Min_idle_instances を超えるアイドル状態のインスタンスが、プールによって停止されるまでに保持される時間 (分) です。 指定しない場合、超過したアイドル状態のインスタンスは、既定のタイムアウト期間が経過すると自動的に終了します。 指定する場合、時間は 0 ~ 1万分の範囲で指定する必要があります。 0を指定した場合は、余分なアイドル状態のインスタンスが直ちに削除されます。
enable_elastic_disk BOOL ローカル記憶域の自動スケール: 有効にすると、プール内のインスタンスは、ディスク領域が不足しているときに、追加のディスク領域を動的に取得します。
disk_spec DiskSpec プール内の各インスタンスに接続されている初期のリモートストレージの量を定義します。
preloaded_spark_versions STRING の配列です。 プールによって各インスタンスにインストールされるランタイムバージョンが最大1つのリスト。 プリロードされたランタイムバージョンを使用するプールクラスターは、イメージがダウンロードされるまで待機する必要がないため、高速に起動します。 ランタイムバージョンの API 呼び出しを使用して、使用可能なランタイムバージョンの一覧を取得できます。
preloaded_docker_images Dockerimageの配列 プールが各インスタンスにインストールする Docker イメージが少なくとも1つあるリスト。 プリロードされた Docker イメージを使用するプールクラスターは、イメージがダウンロードされるまで待機する必要がないため、開始時間が短くなります。 アカウントで Databricks Container Services が 有効になっている場合にのみ使用できます。
azure_attributes InstancePoolAzureAttributes インスタンスの可用性の種類 (スポットまたはオンデマンド) と最大入札価格を定義します。

応答構造体

フィールド名 Type 説明
instance_pool_id STRING 作成されたインスタンスプールの ID。

編集

エンドポイント HTTP メソッド
2.0/instance-pools/edit POST

インスタンスプールを編集します。 これにより、既存のインスタンスプールの構成が変更されます。

注意

  • 編集できるフィールドは、、、、 instance_pool_name min_idle_instances およびだけ max_capacity idle_instance_autotermination_minutes です。
  • を指定する必要があり instance_pool_name ます。
  • を指定する必要があり、 node_type_id 元のと一致している必要があり node_type_id ます。

要求の例を次に示します。

{
  "instance_pool_id": "0101-120000-brick1-pool-ABCD1234",
  "instance_pool_name": "my-edited-pool",
  "node_type_id": "Standard_D3_v2",
  "min_idle_instances": 5,
  "max_capacity": 200,
  "idle_instance_autotermination_minutes": 30
}

要求構造

フィールド名 Type 説明
instance_pool_id STRING 編集するインスタンスプールの ID。 このフィールドは必須です。
instance_pool_name STRING インスタンスプールの名前。 これは、作成操作と編集操作に必要です。 一意であり、空でなく、100文字未満である必要があります。
min_idle_instances INT32 プールによって管理されるアイドル状態のインスタンスの最小数。 これは、アクティブなクラスターによって使用されているすべてのインスタンスに追加されます。
max_capacity INT32 プールに含めることができるインスタンスの最大数。アイドル状態のインスタンスとクラスターで使用されているインスタンスの両方を含みます。 最大容量に達すると、プールから新しいクラスターを作成することはできません。また、クラスターの終了またはダウンスケーリングによってプール内でアイドル状態になるまで、既存のクラスターを自動スケールすることはできません。
node_type_id STRING プール内のインスタンスのノード型。 プールにアタッチされているすべてのクラスターはこのノードの種類を継承し、プールのアイドル状態のインスタンスはこの種類に基づいて割り当てられます。 List node types API 呼び出しを使用して、使用可能なノードの種類の一覧を取得できます。
idle_instance_autotermination_minutes INT32 を超えるアイドル状態のインスタンス min_idle_instances が、プールによって停止されるまでの時間 (分単位)。 指定しない場合、超過したアイドル状態のインスタンスは、既定のタイムアウト期間が経過すると自動的に終了します。 指定する場合、時間は 0 ~ 1万分の範囲で指定する必要があります。 0を指定した場合は、余分なアイドル状態のインスタンスが直ちに削除されます。

削除

エンドポイント HTTP メソッド
2.0/instance-pools/delete POST

インスタンスプールを削除します。 これにより、インスタンスプールが完全に削除されます。 プール内のアイドル状態のインスタンスは非同期に終了します。 新しいクラスターをプールにアタッチすることはできません。 プールにアタッチされている実行中のクラスターは引き続き実行されますが、自動スケールはできません。 プールに接続されている終了したクラスターは、プールを使用しないように編集されるまで、開始されません。

要求の例を次に示します。

{
  "instance_pool_id": "0101-120000-brick1-pool-ABCD1234"
}

要求構造

フィールド名 Type 説明
instance_pool_id STRING 削除するインスタンスプールの ID。

取得

エンドポイント HTTP メソッド
2.0/instance-pools/get GET

インスタンスプールの id を指定して、その情報を取得します。

要求の例を次に示します。

/instance-pools/get?instance_pool_id=0101-120000-brick1-pool-ABCD1234

応答の例を次に示します。

{
  "instance_pool_name": "mypool",
  "node_type_id": "Standard_D3_v2",
  "idle_instance_autotermination_minutes": 60,
  "enable_elastic_disk": false,
  "preloaded_spark_versions": [
    "5.4.x-scala2.11"
  ],
  "instance_pool_id": "101-120000-brick1-pool-ABCD1234",
  "default_tags": {
    "Vendor": "Databricks",
    "DatabricksInstancePoolCreatorId": "100125",
    "DatabricksInstancePoolId": "101-120000-brick1-pool-ABCD1234"
  },
  "state": "ACTIVE",
  "stats": {
    "used_count": 10,
    "idle_count": 5,
    "pending_used_count": 5,
    "pending_idle_count": 5
  },
  "status": {}
}

要求構造

フィールド名 Type 説明
instance_pool_id STRING 情報の取得対象となるインスタンスプール。

応答構造体

フィールド名 Type 説明
instance_pool_name STRING インスタンスプールの名前。 これは、作成操作と編集操作に必要です。 一意であり、空でなく、100文字未満である必要があります。
min_idle_instances INT32 プールによって管理されるアイドル状態のインスタンスの最小数。 これは、アクティブなクラスターによって使用されているすべてのインスタンスに追加されます。
max_capacity INT32 プールに含めることができるインスタンスの最大数。アイドル状態のインスタンスとクラスターで使用されているインスタンスの両方を含みます。 最大容量に達すると、プールから新しいクラスターを作成することはできません。また、クラスターの終了またはダウンスケーリングによってプール内でアイドル状態になるまで、既存のクラスターを自動スケールすることはできません。
node_type_id STRING プール内のインスタンスのノード型。 プールにアタッチされているすべてのクラスターはこのノードの種類を継承し、プールのアイドル状態のインスタンスはこの種類に基づいて割り当てられます。 List node types API 呼び出しを使用して、使用可能なノードの種類の一覧を取得できます。
custom_tags Clustertagの配列 インスタンスプールリソースの追加タグ。 Azure Databricks は、default_tags に加えて、これらのタグを使用してすべてのプールリソース (VM ディスクボリュームなど) をタグ付けします。

Azure Databricks では、最大41のカスタムタグを使用できます。
idle_instance_autotermination_minutes INT32 を超えるアイドル状態のインスタンス min_idle_instances が、プールによって停止されるまでの時間 (分単位)。 指定しない場合、超過したアイドル状態のインスタンスは、既定のタイムアウト期間が経過すると自動的に終了します。 指定する場合、時間は 0 ~ 1万分の範囲で指定する必要があります。 0を指定した場合は、余分なアイドル状態のインスタンスが直ちに削除されます。
enable_elastic_disk BOOL ローカル記憶域の自動スケール: 有効にすると、プール内のインスタンスは、ディスク領域が不足しているときに、追加のディスク領域を動的に取得します。
disk_spec DiskSpec プール内の各インスタンスに接続されている初期のリモートストレージの量を定義します。
preloaded_spark_versions STRING の配列です。 プールが各インスタンスにインストールするランタイムバージョンの一覧。 プリロードされたランタイムバージョンを使用するプールクラスターは、イメージがダウンロードされるまで待機する必要がないため、高速に起動します。 ランタイムバージョンの API 呼び出しを使用して、使用可能なランタイムバージョンの一覧を取得できます。
instance_pool_id STRING インスタンスプールの標準の一意識別子。
default_tags Clustertagの配列 Azure Databricks によって追加されるタグは、custom_tags に関係なく、次のようになります。

* ベンダ: Databricks
* DatabricksInstancePoolCreatorId: <create_user_id>
* DatabricksInstancePoolId: <instance_pool_id>
state InstancePoolState インスタンスプールの現在の状態。
stats InstancePoolStats インスタンスプールの使用状況に関する統計情報。
status InstancePoolStatus プール内の失敗した保留中のインスタンスに関する状態。

リスト

エンドポイント HTTP メソッド
2.0/instance-pools/list GET

すべてのインスタンスプールの情報を一覧表示します。

応答の例を次に示します。

{
  "instance_pools": [
    {
      "instance_pool_name": "my-pool",
      "min_idle_instances": 10,
      "node_type_id": "Standard_D3_v2",
      "idle_instance_autotermination_minutes": 60,
      "instance_pool_id": "0101-120000-brick1-pool-ABCD1234",
      "default_tags": [
        { "DatabricksInstancePoolCreatorId", "1234" },
        { "DatabricksInstancePoolId", "0101-120000-brick1-pool-ABCD1234" }
      ],
      "stats": {
        "used_count": 10,
        "idle_count": 5,
        "pending_used_count": 5,
        "pending_idle_count": 5
      }
    }
  ]
}

応答構造体

フィールド名 Type 説明
instance_pools Instancepoolandstatsの配列 統計が含まれているインスタンスプールの一覧。

データ構造

このセクションの内容は次のとおりです。

Instancepoolstate

インスタンスプールの状態。 現在許可されている状態遷移は次のとおりです。

  • ACTIVE -> DELETED
名前 説明
ACTIVE インスタンスプールがアクティブであることを示します。 クラスターをアタッチできます。
DELETED インスタンスプールが削除され、アクセスできなくなったことを示します。

Instancepoolstats

インスタンスプールの使用状況に関する統計情報。

フィールド名 Type 説明
used_count INT32 クラスターによって使用されているアクティブなインスタンスの数。
idle_count INT32 クラスターで使用されていないアクティブなインスタンスの数。
pending_used_count INT32 クラスターに割り当てられている保留中のインスタンスの数。
pending_idle_count INT32 クラスターに割り当てられていない保留中のインスタンスの数。

Instancepoolstatus

プール内の失敗した保留中のインスタンスに関する状態。

フィールド名 Type 説明
pending_instance_errors Pendinginstanceerrorの配列 失敗した保留中のインスタンスのエラーメッセージの一覧。

Pendinginstanceerror

失敗した保留中のインスタンスのエラーメッセージです。

フィールド名 Type 説明
instance_id STRING 失敗したインスタンスの ID。
message STRING エラーの原因を説明するメッセージ。

Diskspec

各インスタンスにアタッチするディスクの初期セットについて説明します。 たとえば、3つのインスタンスがあり、各インスタンスが2つのディスクで開始するように構成されている場合、100 Azure Databricks GiB ごとに、これらのインスタンスに対して合計6個のディスク (100 GiB) が作成されます。

フィールド名 Type 説明
disk_type DiskType アタッチするディスクの種類。
disk_count INT32 各インスタンスにアタッチするディスクの数:

* この機能は、サポートされているノードの種類に対してのみ有効です。
* ユーザーは、ノードの種類でサポートされているディスクの上限まで選択できます。
* ローカルディスクのないノードの種類については、少なくとも1つのディスクを指定する必要があります。
disk_size INT32 アタッチする各ディスクのサイズ (GiB 内)。 値は、特定のインスタンスの種類に対してサポートされている範囲に含まれる必要があります。

* Premium LRS (SSD): 1-1023 GiB
* Standard LRS (HDD): 1-1023 GiB

Disktype

ディスクの種類について説明します。

フィールド名 Type 説明
azure_disk_volume_type AzureDiskVolumeType 使用する Azure ディスクの種類。

Instancepoolandstats

フィールド名 Type 説明
instance_pool_name STRING インスタンスプールの名前。 これは、作成操作と編集操作に必要です。 一意であり、空でなく、100文字未満である必要があります。
min_idle_instances INT32 プールによって管理されるアイドル状態のインスタンスの最小数。 これは、アクティブなクラスターによって使用されているすべてのインスタンスに追加されます。
max_capacity INT32 プールに含めることができるインスタンスの最大数。アイドル状態のインスタンスとクラスターで使用されているインスタンスの両方を含みます。 最大容量に達すると、プールから新しいクラスターを作成することはできません。また、クラスターの終了またはダウンスケーリングによってプール内でアイドル状態になるまで、既存のクラスターを自動スケールすることはできません。
node_type_id STRING プール内のインスタンスのノード型。 プールにアタッチされているすべてのクラスターはこのノードの種類を継承し、プールのアイドル状態のインスタンスはこの種類に基づいて割り当てられます。 List node types API 呼び出しを使用して、使用可能なノードの種類の一覧を取得できます。
custom_tags Clustertagの配列 インスタンスプールリソースの追加タグ。 Azure Databricks は、default_tags に加えて、これらのタグを使用してすべてのプールリソース (VM ディスクボリュームなど) をタグ付けします。

Azure Databricks では、最大41のカスタムタグを使用できます。
idle_instance_autotermination_minutes INT32 を超えるアイドル状態のインスタンス min_idle_instances が、プールによって停止されるまでの時間 (分単位)。 指定しない場合、超過したアイドル状態のインスタンスは、既定のタイムアウト期間が経過すると自動的に終了します。 指定する場合、時間は 0 ~ 1万分の範囲で指定する必要があります。 0を指定した場合は、余分なアイドル状態のインスタンスが直ちに削除されます。
enable_elastic_disk BOOL ローカル記憶域の自動スケール: 有効にすると、プール内のインスタンスは、ディスク領域が不足しているときに、追加のディスク領域を動的に取得します。
disk_spec DiskSpec プール内の各インスタンスに接続されている初期のリモートストレージの量を定義します。
preloaded_spark_versions STRING の配列です。 プールが各インスタンスにインストールするランタイムバージョンの一覧。 プリロードされたランタイムバージョンを使用するプールクラスターは、イメージがダウンロードされるまで待機する必要がないため、高速に起動します。 ランタイムバージョンの API 呼び出しを使用して、使用可能なランタイムバージョンの一覧を取得できます。
instance_pool_id STRING インスタンスプールの標準の一意識別子。
default_tags Clustertagの配列 Azure Databricks によって追加されるタグは、custom_tags に関係なく、次のようになります。

* ベンダ: Databricks
* DatabricksInstancePoolCreatorId: <create_user_id>
* DatabricksInstancePoolId: <instance_pool_id>
state InstancePoolState インスタンスプールの現在の状態。
stats InstancePoolStats インスタンスプールの使用状況に関する統計情報。

Azurediskvolumetype

Azure Databricks がサポートしているすべての Azure ディスクの種類。 https://docs.microsoft.com/azure/virtual-machines/linux/disks-types をご覧ください。

名前 説明
PREMIUM_LRS Ssd によって支えられた Premium storage レベル。
STANDARD_LRS Standard storage レベル。 Hdd で支えられています。

Instancepoolazureattributes

Azure に関連するインスタンスプールの作成中に設定された属性。

フィールド名 Type 説明
availability AzureAvailability 後続のすべてのノードで使用される可用性の種類。
spot_bid_max_price DOUBLE Azure スポットインスタンスに使用される最大入札価格。 これは、現在のスポット価格以上に設定できます。 また、この値を-1 (既定) に設定することもできます。これは、インスタンスを価格に基づいて削除できないことを指定します。 インスタンスの価格は、スポットインスタンスの現在の価格か、standard インスタンスの価格になります。 Azure portal では、価格と削除率の履歴を表示できます。