Databricks REST API başvurusu

Azure Databricks veri bilimi & mühendisliği ve databricks Machine Learning farklı görevler gerçekleştiren üç REST apı 'si vardır: &, 2,0ve 1,2. Genel Yönetim için 2,1 ve 2,0 API 'Lerini kullanın. API 1,2, komutları doğrudan Azure Databricks üzerinde çalıştırmanızı sağlar.

Önemli

Databricks REST API’lerine erişmek için kimlik doğrulaması yapmanız gerekir.

databricks veri bilimi mühendisliği ve databricks ile çalışırken kullandığınız REST apı 'leri için başvuru kılavuzlarıyla & Machine Learning ortamları bu bölüme dahildir. Ayrıca, en son sürüm veya 2,1, 2,0veya 1,2sürümleri için REST API giriş sayfalarına doğrudan atlayabilirsiniz. databricks SQL REST apı 'leri, databricks SQL apı başvurusundabulunan databricks SQL kılavuzuna dahildir. databricks Machine Learning, özellik deposu için bir Python apı 'si de sağlar; bkz. databricks feature store Python apı.

API'ler

  • Kümeler API 2,0
  • Küme Ilkeleri API 2,0
  • DBFS API 2,0
  • Global Init Betikleri API 2,0
  • Gruplar API 2,0
  • Örnek havuzları API 2,0
  • IP erişim listesi API 2,0
  • İşler API 2,1, 2,0
  • Kitaplıklar API 2,0
  • MLflow API 2,0
  • İzinler API 2,0
  • Repos apı 2,0
  • SCıM API 2,0
  • Gizlilikler API 2,0
  • Belirteç API 2,0
  • Belirteç yönetimi API 2,0
  • Çalışma alanı API 2,0
  • API 1,2

Kimlik Doğrulaması

Kişisel erişim belirteçlerini kullanarak REST API kimlik doğrulaması hakkında daha fazla bilgi için bkz. Azure Databricks kişisel erişim belirteçlerini kullanarak kimlik doğrulaması.

Azure Active Directory belirteçlerini kullanarak REST API kimlik doğrulaması hakkında daha fazla bilgi için bkz. Azure Active Directory belirteçlerini kullanarak kimlik doğrulaması. Örnekler için bkz. Bir Kullanıcı için Azure AD erişim belirteci kullanma ve Hizmet sorumlusu için Azure AD erişim belirteci kullanma.

API örnekleri için API örnekleri bölümüne bakın.

Hız sınırları

Databricks, ağır yük altında yüksek düzeyde hizmet kalitesini sağlamak için tüm REST API çağrılarına hız sınırları uygular. Sınırlar, eşit kullanım ve yüksek kullanılabilirlik sağlamak için uç nokta ve çalışma alanı başına ayarlanır. Sınır artışı istemek için Databricks temsilcinizle iletişime geçin.

Hız sınırını aşan istekler, 429 yanıt durum kodunu alır.

Ayrıştırma çıkışı

JSON çıkışının parçalarını ayrıştırmak yararlı olabilir. Databricks, JSON ayrıştırma yardımcı programını önerir jq . jqLinux 'ta jqaracılığıyla, macos 'ta Homebrew ile brew install jq veya Chocolatey kullanarak Windows kullanarak yükleyebilirsiniz choco install jq . Hakkında daha fazla bilgi için jq bkz. jq.

Bu örnek, belirtilen çalışma alanındaki kullanılabilir kümelerin adlarını ve kimliklerini listeler. Bu örnekte . Netrc dosyasıkullanılmaktadır.

curl --netrc -X GET https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/clusters/list \
| jq '[ .clusters[] | { id: .cluster_id, name: .cluster_name } ]'
[
  {
    "id": "1234-567890-batch123",
    "name": "My Cluster 1"
  },
  {
    "id": "2345-678901-rigs234",
    "name": "My Cluster 2"
  }
]

Uyumluluk

Aynı API sürümüne yönelik yanıtlar JSON çıktısından hiçbir alanı kaldırmaz. Ancak API, API sürümünü arttırmadan JSON çıktısına yeni alanlar ekleyebilir. Programlı iş akışlarınız bu eklemelerin farkında olmalı ve bilinmeyen alanları yoksaymalıdır.

Bazı STRING Alanlar (Kullanıcı arabirimi tarafından tüketilmesi amaçlanan hata ve açıklayıcı mesajlaşma) yapılandırılmamış olur ve programlı iş akışlarında bu alanların biçimine bağlı kullanmamalısınız.

Databricks 'i çağırmak için kıvrımlı kullanın REST API

kıvrımlı , sunuculara ve sunuculardan veri aktarmaya yönelik popüler bir araçtır. Bu bölümde, Databricks REST API çağırmak için kıvrımlı kullanma hakkında belirli bilgiler sağlanmaktadır.

Sorgu dizesi kullanarak GET çağırma

Çoğu API çağrısı, bir JSON gövdesi belirtmenizi gerektirir, çağrılar için, GET? URL 'yi tırnak içine alarak ve çevreleyen bir sorgu dizesi belirtebilirsiniz. Kullanırsanız curl , --get-G sorgu dizesiyle birlikte (veya) ve --data (veya) belirtebilirsiniz -d ; URL 'yi veya sorgu dizesini tırnak içine almanız gerekmez.

Aşağıdaki örneklerde, öğesini adb-1234567890123456.7.azuredatabricks.net Azure Databricks dağıtımınızın adb-1234567890123456.7.azuredatabricks.net ile değiştirin. İle başlamalıdır adb- . <azure-region-name> ile başlayan kullanım dışı bırakılan URL’yi kullanmayın. Yeni çalışma alanları için çalışmayabilir ve çalışma alanı URL’lerine kıyasla daha az güvenilirdir, daha düşük performans sergiler.

Bu örnek, belirtilen kümeyle ilgili bilgileri yazdırır. Bu örnekte . Netrc dosyasıkullanılmaktadır.

Şunu kullanarak ? :

curl --netrc 'https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/clusters/get?cluster_id=1234-567890-patch123'

--getVe kullanarak --data :

curl --netrc --get \
https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/clusters/get \
--data cluster_id=1234-567890-batch123
{
  "cluster_id": "1234-567890-batch123",
  "driver": {
    "node_id": "123ab456789012345cd67e8e90123f45",
    "instance_id": "234ab456789012345cd67e8e90123f45",
    "start_timestamp": 1618448261567,
    "host_private_ip": "10.0.0.0",
    "private_ip": "10.0.0.0"
  },
  ...
}

Bu örnek DBFS kökünün içeriğini listeler. Bu örnekte . Netrc dosyasıkullanılmaktadır.

curl --netrc --get \
https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/dbfs/list \
--data path=/
"files": [
  {
    "path": "/tmp",
    "is_dir": true,
    "file_size": 0,
    "modification_time": 1547078156000
  },
  {
    "path": "/my_file.txt",
    "is_dir": false,
    "file_size": 40,
    "modification_time": 1541374426000
  },
  ...
]

Databricks 'i çağırmak için Python kullanın REST API

istekler , Python 'da http istekleri yapmak için popüler bir kitaplıktır. Bu örnek, requests belirtilen Azure Databricks kümesiyle ilgili bilgileri listelemek için kitaplığı kullanır. Bu örnekte . Netrc dosyasıkullanılmaktadır.

import requests
import json

instance_id = 'adb-1234567890123456.7.azuredatabricks.net'

api_version = '/api/2.0'
api_command = '/clusters/get'
url = f"https://{instance_id}{api_version}{api_command}"

params = {
  'cluster_id': '1234-567890-batch123'
}

response = requests.get(
  url = url,
  params = params
)

print(json.dumps(json.loads(response.text), indent = 2))
{
  "cluster_id": "1234-567890-batch123",
  "driver": {
    ...
  },
  "spark_context_id": 1234567890123456789,
  ...
}

Databricks 'i çağırmak için PowerShell 'i kullanın REST API

Bu örnek, belirtilen Azure Databricks kümesiyle ilgili bilgileri listelemek için PowerShell 'de Invoke-RestMethod cmdlet 'ini kullanır.

$Token = 'dapia1b2345678901c23456defa7bcde8fa9'
$ConvertedToken = $Token | ConvertTo-SecureString -AsPlainText -Force

$InstanceID = 'adb-1234567890123456.7.azuredatabricks.net'
$APIVersion = '/api/2.0'
$APICommand = '/clusters/get'
$Uri = "https://$InstanceID$APIVersion$APICommand"

$Body = @{
  'cluster_id' = '1234-567890-batch123'
}

$Response = Invoke-RestMethod `
  -Authentication Bearer `
  -Token $ConvertedToken `
  -Method Get `
  -Uri  $Uri `
  -Body $Body

Write-Output $Response
cluster_id       : 1234-567890-batch123
driver           : ...
spark_context_id : 1234567890123456789
...

Çalışma zamanı sürümü dizeleri

Birçok API çağrısı, bir Databricks çalışma zamanı sürüm dizesi belirtmenizi gerektirir. Bu bölümde, Databricks REST API’deki bir sürüm dizesinin yapısı açıklanmaktadır.

<M>.<F>.x[-cpu][-esr][-gpu][-ml][-photon][-hls]-scala<scala-version>

konum

  • M: Databricks Runtime ana yayın
  • F: Databricks Runtime Özellik sürümü
  • cpu: CPU sürümü ( -ml yalnızca ile)
  • esr: Genişletilmiş destek
  • gpu: gpu
  • ml: ml
  • photon: photon
  • hls: hls (kullanım dışı)
  • scala-version: Spark derlemek için kullanılan Scala sürümü: 2,10, 2,11 veya 2,12

Örnek:

  • 7.6.x-gpu-ml-scala2.12Machine Learning için Databricks Runtime 7,6 temsil eder, GPU etkindir ve Spark sürüm 3.0.1 derlemek için scala sürüm 2,12 kullanır
  • 6.4.x-esr-scala2.11 Databricks Runtime 6,4 genişletilmiş desteğini temsil eder ve Spark sürüm 2.4.5 derlemek için Scala sürüm 2,11 kullanır

Desteklenen Databricks çalışma zamanı sürümleri ve destek zamanlaması ve Desteklenmeyen yayınlar tabloları, Databricks Runtime sürümleri çalışma zamanında bulunan Spark sürümüne eşlenir.

Çalışma zamanı sürümleri API 'sini çağırarak kullanılabilir Azure Databricks çalışma zamanı sürüm dizelerinin bir listesini alabilirsiniz.

Databricks Light

apache-spark.<M>.<F>.x-scala<scala-version>

konum

  • M: Apache Spark ana yayın
  • F: Apache Spark özellik sürümü
  • scala-version: Spark derlemek için kullanılan Scala sürümü: 2,10 veya 2,11

Örneğin, apache-spark-2.4.x-scala2.11.