Bagikan melalui


Panduan API Autoscaling Lakebase

Penting

Lakebase Autoscaling berada di Beta di wilayah berikut: eastus2, , westeuropewestus.

Lakebase Autoscaling adalah versi terbaru Lakebase dengan komputasi penskalaan otomatis, skala-ke-nol, percabangan, dan pemulihan instan. Untuk perbandingan fitur dengan Lakebase Provisioned, lihat memilih antar versi.

Halaman ini memberikan gambaran umum tentang LAKEBASE Autoscaling API, termasuk autentikasi, titik akhir yang tersedia, dan pola umum untuk bekerja dengan REST API, Databricks CLI, dan Databricks SDK (Python, Java, Go).

Untuk referensi API lengkap, lihat dokumentasi API Postgres.

Penting

Lakebase Postgres API berada di Beta. Titik akhir, parameter, dan perilaku API dapat berubah.

Authentication

LAKEBASE Autoscaling API menggunakan autentikasi OAuth tingkat ruang kerja untuk mengelola infrastruktur proyek (membuat proyek, mengonfigurasi pengaturan, dll.).

Nota

Dua jenis konektivitas: API ini untuk manajemen platform (membuat proyek, cabang, komputasi). Untuk akses database (menyambungkan ke data kueri):

  • Klien SQL (psql, pgAdmin, DBeaver): Gunakan token OAuth Lakebase atau kata sandi Postgres. Lihat Autentikasi.
  • API Data (RESTful HTTP): Gunakan token Lakebase OAuth. Lihat API Data.
  • Driver bahasa pemrograman (psycopg, SQLAlchemy, JDBC): Gunakan token OAuth Lakebase atau kata sandi Postgres. Lihat Panduan Memulai Cepat.

Untuk penjelasan lengkap tentang dua lapisan autentikasi ini, lihat Arsitektur autentikasi.

Menyiapkan autentikasi

Autentikasi menggunakan Databricks CLI:

databricks auth login --host https://your-workspace.cloud.databricks.com

Ikuti perintah browser untuk masuk. CLI menyimpan token OAuth Anda di ~/.databricks/token-cache.json.

Kemudian pilih metode akses Anda:

Python SDK

SDK menggunakan autentikasi terpadu dan secara otomatis menangani token OAuth:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

Java SDK

SDK menggunakan autentikasi terpadu dan secara otomatis menangani token OAuth:

import com.databricks.sdk.WorkspaceClient;

WorkspaceClient w = new WorkspaceClient();

antarmuka baris perintah (CLI)

Perintah secara otomatis menggunakan token yang di-cache:

databricks postgres list-projects

melengkung

Buat token untuk panggilan API langsung:

export DATABRICKS_TOKEN=$(databricks auth token | jq -r .access_token)

curl -X GET "https://your-workspace.cloud.databricks.com/api/2.0/postgres/projects" \
  -H "Authorization: Bearer ${DATABRICKS_TOKEN}"

Token OAuth kedaluwarsa setelah satu jam. Regenerasi sesuai kebutuhan.

Untuk detail selengkapnya, lihat Mengotorisasi akses pengguna ke Databricks dengan OAuth.

Titik akhir yang tersedia (Beta)

Semua titik akhir menggunakan jalur /api/2.0/postgres/dasar .

Proyek

Operasi Metode Titik akhir Documentation
Membuat proyek POST /projects Membuat proyek
Memperbarui proyek PATCH /projects/{project_id} Pengaturan umum
Menghapus proyek DELETE /projects/{project_id} Menghapus proyek
Dapatkan proyek GET /projects/{project_id} Dapatkan detail proyek
Mencantumkan proyek GET /projects Mencantumkan proyek

Cabang

Operasi Metode Titik akhir Documentation
Membuat cabang POST /projects/{project_id}/branches Membuat cabang
Memperbarui cabang PATCH /projects/{project_id}/branches/{branch_id} Memperbarui pengaturan cabang
Hapus cabang DELETE /projects/{project_id}/branches/{branch_id} Menghapus cabang
Ambil cabang GET /projects/{project_id}/branches/{branch_id} Lihat cabang
Daftar cabang GET /projects/{project_id}/branches Daftar cabang

Titik akhir (Komputasi dan Replika Baca)

Operasi Metode Titik akhir Documentation
Membuat titik akhir POST /projects/{project_id}/branches/{branch_id}/endpoints Membuat komputasi / Membuat replika baca
Memperbarui titik akhir PATCH /projects/{project_id}/branches/{branch_id}/endpoints/{endpoint_id} Mengedit mesin komputasi / Mengedit replika baca
Menghapus titik akhir DELETE /projects/{project_id}/branches/{branch_id}/endpoints/{endpoint_id} Menghapus komputasi / Menghapus replika baca
Dapatkan titik akhir GET /projects/{project_id}/branches/{branch_id}/endpoints/{endpoint_id} Menampilkan komputasi
Mencantumkan titik akhir GET /projects/{project_id}/branches/{branch_id}/endpoints Menampilkan komputasi

Kredensial Database

Operasi Metode Titik akhir Documentation
Hasilkan kredensial database POST /credentials Autentikasi token OAuth

Operasi

Operasi Metode Titik akhir Documentation
Dapatkan operasi GET /projects/{project_id}/operations/{operation_id} Lihat contoh di bawah ini

Dapatkan operasi

Periksa status operasi yang berjalan lama dengan nama sumber dayanya.

Python SDK

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

# Start an operation (example: create project)
operation = w.postgres.create_project(...)
print(f"Operation started: {operation.name}")

# Wait for completion
result = operation.wait()
print(f"Operation completed: {result.name}")

Java SDK

import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.service.postgres.*;

WorkspaceClient w = new WorkspaceClient();

// Start an operation (example: create project)
CreateProjectOperation operation = w.postgres().createProject(...);
System.out.println("Operation started: " + operation.getName());

// Wait for completion
Project result = operation.waitForCompletion();
System.out.println("Operation completed: " + result.getName());

antarmuka baris perintah (CLI)

CLI secara otomatis menunggu operasi selesai secara default. Gunakan --no-wait untuk melewati polling:

# Create project without waiting
databricks postgres create-project --no-wait ...

# Later, check the operation status
databricks postgres get-operation projects/my-project/operations/abc123

melengkung

# Get operation status
curl -X GET "$WORKSPACE/api/2.0/postgres/projects/my-project/operations/abc123" \
  -H "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq

Format respons:

{
  "name": "projects/my-project/operations/abc123",
  "done": true,
  "response": {
    "@type": "type.googleapis.com/databricks.postgres.v1.Project",
    "name": "projects/my-project",
    ...
  }
}

Bidang:

  • done: false saat sedang berlangsung, true ketika selesai
  • response: Berisi hasil ketika done adalah true
  • error: Berisi detail kesalahan jika operasi gagal

Pola umum

Penamaan sumber daya

Sumber daya mengikuti pola penamaan hierarkis di mana sumber daya anak dibatasi oleh induknya.

Proyek menggunakan format ini:

projects/{project_id}

Sumber daya anak seperti sumber daya operasional ditempatkan di bawah proyek induknya.

projects/{project_id}/operations/{operation_id}

Ini berarti Anda memerlukan ID proyek induk untuk mengakses operasi atau sumber daya anak lainnya.

ID sumber daya:

Saat membuat sumber daya, Anda harus memberikan ID sumber daya (seperti my-app) untuk parameter project_id, branch_id, atau endpoint_id. ID ini menjadi bagian dari jalur sumber daya dalam panggilan API (seperti projects/my-app/branches/development).

Anda dapat secara opsional menyediakan display_name untuk memberi sumber daya Anda label yang lebih deskriptif. Jika Anda tidak menentukan nama tampilan, sistem akan menggunakan ID sumber daya Anda sebagai nama tampilan.

:::tip Menemukan sumber daya di UI

Untuk menemukan proyek di UI Lakebase, cari nama tampilannya di daftar proyek. Jika Anda tidak memberikan nama tampilan kustom saat membuat proyek, cari proyek Anda project_id (seperti "aplikasi saya").

:::

Nota

ID sumber daya tidak dapat diubah setelah pembuatan.

Persyaratan:

  • Panjangnya harus 1-63 karakter
  • Huruf kecil, digit, dan tanda hubung saja
  • Tidak dapat memulai atau mengakhiri dengan tanda hubung
  • Contoh: my-app, analytics-db, customer-123

Operasi jangka panjang (LRO)

Operasi buat, perbarui, dan hapus mengembalikan databricks.longrunning.Operation objek yang menyediakan status penyelesaian.

Contoh respons operasi:

{
  "name": "projects/my-project/operations/abc123",
  "done": false
}

Polling untuk penyelesaian menggunakan GetOperation:

Python SDK

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

# Start an operation
operation = w.postgres.create_project(...)

# Wait for completion
result = operation.wait()
print(f"Operation completed: {result.name}")

Java SDK

import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.service.postgres.*;

WorkspaceClient w = new WorkspaceClient();

// Start an operation
CreateProjectOperation operation = w.postgres().createProject(...);

// Wait for completion
Project result = operation.waitForCompletion();
System.out.println("Operation completed: " + result.getName());

antarmuka baris perintah (CLI)

CLI secara otomatis menunggu operasi selesai secara default. Gunakan --no-wait untuk segera kembali:

databricks postgres create-project --no-wait ...

melengkung

# Poll the operation
curl "$WORKSPACE/api/2.0/postgres/projects/my-project/operations/abc123" \
  -H "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq '.done'

Memeriksa setiap beberapa detik hingga done menjadi true.

Memperbarui masker

Operasi pembaruan memerlukan parameter yang update_mask menentukan bidang mana yang akan diubah. Ini mencegah penimpaan secara tidak sengaja pada bidang yang tidak terkait.

Perbedaan format:

Metode Rancangan Example
REST API Parameter pencarian ?update_mask=spec.display_name
Python SDK Objek FieldMask update_mask=FieldMask(field_mask=["spec.display_name"])
antarmuka baris perintah (CLI) Argumen posisi update-project NAME spec.display_name

SDK dan infrastruktur sebagai kode