Sdílet prostřednictvím


Průvodce rozhraním API pro automatické škálování LakeBase

Důležité

Automatické škálování LakeBase je v beta verzích v následujících oblastech: eastus2, westeurope, westus.

Automatické škálování LakeBase je nejnovější verze LakeBase s automatickým škálováním výpočetních prostředků, škálováním na nulu, větvení a okamžitým obnovením. Porovnání funkcí se službou Lakebase Provisioned najdete v tématu Volba mezi verzemi.

Tato stránka obsahuje přehled rozhraní API pro automatické škálování LakeBase, včetně ověřování, dostupných koncových bodů a běžných vzorů pro práci s rozhraním REST API, rozhraním příkazového řádku Databricks a sadami SDK Databricks (Python, Java, Go).

Kompletní referenční informace k rozhraní API najdete v dokumentaci k rozhraní Postgres API.

Důležité

Rozhraní Api Postgres Lakebase je v beta verzi. Koncové body, parametry a chování rozhraní API se můžou změnit.

Autentizace

Rozhraní API pro automatické škálování Lakebase používá ověřování OAuth na úrovni pracovního prostoru ke správě infrastruktury projektu (vytváření projektů, konfigurace nastavení atd.).

Poznámka:

Dva typy připojení: Toto rozhraní API je určené pro správu platforem (vytváření projektů, větví, výpočetních prostředků). Přístup k databázi (připojení k datům dotazů):

  • Klienti SQL (psql, pgAdmin, DBeaver): Použijte tokeny OAuth Lakebase nebo hesla Postgres. Viz Ověřování.
  • Rozhraní API pro data (RESTful HTTP): Použijte tokeny Lakebase OAuth. Podívejte se na Data API.
  • Ovladače programovacího jazyka (psycopg, SQLAlchemy, JDBC): Použijte tokeny Lakebase OAuth nebo hesla Postgres. Viz Rychlý start.

Úplné vysvětlení těchto dvou vrstev ověřování najdete v tématu Architektura ověřování.

Nastavení ověřování

Ověřování pomocí rozhraní příkazového řádku Databricks:

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

Podle pokynů prohlížeče se přihlaste. Rozhraní příkazového řádku ukládá token OAuth do mezipaměti na adrese ~/.databricks/token-cache.json.

Pak zvolte metodu přístupu:

Python SDK

Sada SDK používá jednotné ověřování a automaticky zpracovává tokeny OAuth:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

Java SDK

Sada SDK používá jednotné ověřování a automaticky zpracovává tokeny OAuth:

import com.databricks.sdk.WorkspaceClient;

WorkspaceClient w = new WorkspaceClient();

CLI

Příkazy automaticky používají token uložený v mezipaměti:

databricks postgres list-projects

kroucení

Vygenerujte token pro přímá volání rozhraní API:

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}"

Platnost tokenů OAuth vyprší po jedné hodině. Podle potřeby vygenerovat znovu.

Další podrobnosti najdete v tématu Autorizace přístupu uživatelů k Databricks pomocí OAuth.

Dostupné koncové body (beta verze)

Všechny koncové body používají základní cestu /api/2.0/postgres/.

Projekty

Operation Metoda Endpoint Documentation
Vytvoření projektu POST /projects Vytvoření projektu
Aktualizace projektu PATCH /projects/{project_id} Obecná nastavení
Odstranit projekt DELETE /projects/{project_id} Odstranění projektu
Získání projektu GET /projects/{project_id} Získání podrobností o projektu
Výpis projektů GET /projects Výpis projektů

Větve

Operation Metoda Endpoint Documentation
Vytvářet větve POST /projects/{project_id}/branches Vytvoření větve
Aktualizovat větev PATCH /projects/{project_id}/branches/{branch_id} Aktualizace nastavení větve
Odstranit větev DELETE /projects/{project_id}/branches/{branch_id} Odstranění větve
Získání větve GET /projects/{project_id}/branches/{branch_id} Zobrazení větví
Seznam větví GET /projects/{project_id}/branches Výpis větví

Koncové body (výpočetní jednotky a repliky pro čtení)

Operation Metoda Endpoint Documentation
Vytvoření koncového bodu POST /projects/{project_id}/branches/{branch_id}/endpoints Vytvořit výpočetní jednotku / Vytvořit repliku databáze pro čtení
Aktualizace koncového bodu PATCH /projects/{project_id}/branches/{branch_id}/endpoints/{endpoint_id} Úprava výpočetního instance / Úprava repliky pro čtení
Odstranění koncového bodu DELETE /projects/{project_id}/branches/{branch_id}/endpoints/{endpoint_id} Odstranění výpočetní jednotky / Odstranění repliky
Získání koncového bodu GET /projects/{project_id}/branches/{branch_id}/endpoints/{endpoint_id} Zobrazit výpočty
Výpis koncových bodů GET /projects/{project_id}/branches/{branch_id}/endpoints Zobrazit výpočty

Přihlašovací údaje databáze

Operation Metoda Endpoint Documentation
Generování přihlašovacích údajů databáze POST /credentials Ověřování tokenů OAuth

Operace

Operation Metoda Endpoint Documentation
Načtení operace GET /projects/{project_id}/operations/{operation_id} Podívejte se na příklad níže.

Získání operace

Zkontrolujte stav dlouhotrvající operace podle názvu zdroje.

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());

CLI

Rozhraní příkazového řádku automaticky čeká na dokončení operací ve výchozím nastavení. Umožňuje --no-wait přeskočit dotazování:

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

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

kroucení

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

Formát odpovědi:

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

Pole:

  • done: false probíhá, true až bude dokončeno
  • response: Obsahuje výsledek, pokud done je true
  • error: Obsahuje podrobnosti o chybě, pokud operace selhala.

Obvyklé scénáře

Pojmenování zdrojů

Prostředky se řídí hierarchickým pojmenováním, ve kterém jsou podřízené prostředky podřízeny nadřazenému objektu.

Projekty používají tento formát:

projects/{project_id}

Podřízené prostředky, jako jsou operace, jsou vnořené do nadřazeného projektu:

projects/{project_id}/operations/{operation_id}

To znamená, že pro získání přístupu k operacím nebo jiným podřízeným prostředkům potřebujete ID nadřazeného projektu.

ID prostředků:

Při vytváření prostředků musíte zadat ID prostředku (například my-app) pro project_idparametr , branch_idnebo endpoint_id parametr. Tento identifikátor se stane součástí cesty prostředku při volání rozhraní API (například projects/my-app/branches/development).

Volitelně můžete poskytnout display_name, abyste svému prostředku dali popisnější označení. Pokud nezadáte zobrazovaný název, systém použije jako zobrazovaný název ID vašeho prostředku.

:::tip Vyhledání zdrojů v uživatelském rozhraní

Pokud chcete vyhledat projekt v uživatelském rozhraní Lakebase, vyhledejte jeho zobrazovaný název v seznamu projektů. Pokud jste při vytváření projektu nezadali vlastní zobrazovaný název, vyhledejte název projektu s označením project_id (například "my-app").

:::

Poznámka:

ID prostředků nelze po vytvoření změnit.

Požadavky:

  • Musí mít délku 1 až 63 znaků.
  • Pouze malá písmena, číslice a pomlčky
  • Nejde začínat ani končit spojovníkem
  • Příklady: my-app, analytics-db, customer-123

Dlouhotrvající operace (LRO)

Operace vytvoření, aktualizace a odstranění vrací databricks.longrunning.Operation objekt, který poskytuje stav dokončení.

Příklad odpovědi operace:

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

Dotazování na dokončení pomocí 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());

CLI

Rozhraní příkazového řádku automaticky čeká na dokončení operací ve výchozím nastavení. Použijte --no-wait pro okamžité vrácení:

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

kroucení

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

Dotazování každých několik sekund, dokud done nebude true.

Aktualizace masek

Operace aktualizace vyžadují update_mask parametr určující pole, která se mají upravit. Tím zabráníte náhodnému přepsání nesouvisejících polí.

Rozdíly ve formátu:

Metoda Formát Example
REST API Parametr dotazu ?update_mask=spec.display_name
Python SDK FieldMask – objekt update_mask=FieldMask(field_mask=["spec.display_name"])
CLI Poziční argument update-project NAME spec.display_name

Sady softwarových vývojových sad (SDK) a infrastruktura-jako-kód