Dela via


Api-guide för automatisk skalning i Lakebase

Viktigt!

Lakebase Autoscaling finns i Beta i följande regioner: eastus2, westeurope, westus.

Lakebase Autoscaling är den senaste versionen av Lakebase med automatisk skalningsberäkning, skalning till noll, förgrening och omedelbar återställning. För funktionsjämförelse med Lakebase Provisioned, se välja mellan versioner.

Den här sidan innehåller en översikt över Lakebase Autoscaling-API:et, inklusive autentisering, tillgängliga slutpunkter och vanliga mönster för att arbeta med REST API, Databricks CLI, Databricks SDK:er (Python, Java, Go) och Terraform.

Fullständig API-referens finns i dokumentationen för Postgres API.

Viktigt!

Lakebase Postgres-API:et finns i Beta. API-slutpunkter, parametrar och beteenden kan komma att ändras.

Authentication

Lakebase Autoscaling-API:et använder OAuth-autentisering på arbetsytenivå för att hantera projektinfrastruktur (skapa projekt, konfigurera inställningar osv.).

Anmärkning

Två typer av anslutningar: Det här API:et är till för plattformshantering (skapa projekt, grenar, beräkningar). För databasåtkomst (ansluter till frågedata):

  • SQL-klienter (psql, pgAdmin, DBeaver): Använd LakeBase OAuth-token eller Postgres-lösenord. Se Autentisering.
  • Data-API (RESTful HTTP): Använd LakeBase OAuth-token. Se Data-API.
  • Programmeringsspråkdrivrutiner (psycopg, SQLAlchemy, JDBC): Använd LakeBase OAuth-token eller Postgres-lösenord. Se Snabbstart.

En fullständig förklaring av dessa två autentiseringslager finns i Autentiseringsarkitektur.

Konfigurera autentisering

Autentisera med Databricks CLI:

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

Följ webbläsarprompterna för att logga in. CLI cachelagrar din OAuth-token på ~/.databricks/token-cache.json.

Välj sedan din åtkomstmetod:

Python SDK

SDK använder enhetlig autentisering och hanterar automatiskt OAuth-token:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

Java SDK

SDK använder enhetlig autentisering och hanterar automatiskt OAuth-token:

import com.databricks.sdk.WorkspaceClient;

WorkspaceClient w = new WorkspaceClient();

Kommandoradsgränssnitt (CLI)

Kommandon använder automatiskt den cachelagrade token:

databricks postgres list-projects

lockig

Generera en token för direkta API-anrop:

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

OAuth-token upphör att gälla efter en timme. Återskapa vid behov.

Mer information finns i Auktorisera användaråtkomst till Databricks med OAuth.

Tillgängliga slutpunkter (Beta)

Alla slutpunkter använder bassökvägen /api/2.0/postgres/.

Projekt

Verksamhet Metod Endpoint Documentation
Skapa projekt POST /projects Skapa ett projekt
Uppdatera projekt PATCH /projects/{project_id} Allmänna inställningar
Ta bort projekt DELETE /projects/{project_id} Ta bort ett projekt
Hämta projekt GET /projects/{project_id} Hämta projektinformation
Lista projekten GET /projects Lista projekt

Grenar

Verksamhet Metod Endpoint Documentation
Skapa förgrening POST /projects/{project_id}/branches Skapa en gren
Uppdatera gren PATCH /projects/{project_id}/branches/{branch_id} Uppdatera greninställningar
Ta bort gren DELETE /projects/{project_id}/branches/{branch_id} Ta bort en gren
Hämta gren GET /projects/{project_id}/branches/{branch_id} Visa förgreningar
Visa en lista över grenar GET /projects/{project_id}/branches Visa en lista över grenar

Slutpunkter (beräknings- och läsrepliker)

Verksamhet Metod Endpoint Documentation
Skapa slutpunkt POST /projects/{project_id}/branches/{branch_id}/endpoints Skapa en beräkning / Skapa en läsreplik
Uppdatera slutpunkt PATCH /projects/{project_id}/branches/{branch_id}/endpoints/{endpoint_id} Redigera en beräkning / Redigera en läsreplik
Ta bort slutpunkt DELETE /projects/{project_id}/branches/{branch_id}/endpoints/{endpoint_id} Ta bort en beräkning / Ta bort en läsreplik
Hämta slutpunkt GET /projects/{project_id}/branches/{branch_id}/endpoints/{endpoint_id} Visa beräkningar
Lista slutpunkter GET /projects/{project_id}/branches/{branch_id}/endpoints Visa beräkningar

Databasautentiseringsuppgifter

Verksamhet Metod Endpoint Documentation
Generera databasautentiseringsuppgifter POST /credentials Autentisering med OAuth-token

Verksamhet

Verksamhet Metod Endpoint Documentation
Hämta åtgärd GET /projects/{project_id}/operations/{operation_id} Se exemplet nedan

Hämta åtgärd

Kontrollera statusen för en tidskrävande åtgärd med dess resursnamn.

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

Kommandoradsgränssnitt (CLI)

CLI väntar automatiskt på att åtgärderna ska slutföras som standard. Använd --no-wait för att hoppa över avsökning:

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

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

lockig

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

Svarsformat:

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

Fält:

  • done: false under tiden som det pågår, true när den är färdig
  • response: Innehåller resultatet när done är true
  • error: Innehåller felinformation om åtgärden misslyckades

Vanliga mönster

Resursnamngivning

Resurser följer ett hierarkiskt namngivningsmönster där underordnade resurser är kopplade till sina överordnade resurser.

Projekt använder det här formatet:

projects/{project_id}

Underordnade resurser, såsom operationer, nästlas under deras överordnade projekt.

projects/{project_id}/operations/{operation_id}

Det innebär att du behöver det överordnade projektets ID för att få åtkomst till operationer eller andra underordnade resurser.

Resurs-ID:n

När du skapar resurser måste du ange ett resurs-ID (till exempel my-app) för parametern project_id, branch_ideller endpoint_id . Det här ID:t blir en del av resurssökvägen i API-anrop (till exempel projects/my-app/branches/development).

Du kan också ange en display_name för att ge resursen en mer beskrivande etikett. Om du inte anger något visningsnamn använder systemet ditt resurs-ID som visningsnamn.

:::tips Hitta resurser i användargränssnittet

Om du vill hitta ett projekt i Lakebase-användargränssnittet letar du efter dess visningsnamn i projektlistan. Om du inte angav något anpassat visningsnamn när du skapade projektet söker du efter din project_id (till exempel "my-app").

:::

Anmärkning

Det går inte att ändra resurs-ID:t när du har skapat dem.

Krav:

  • Måste vara 1–63 tecken långt
  • Endast gemener, siffror och bindestreck
  • Det går inte att starta eller avsluta med ett bindestreck
  • Exempel: my-app, analytics-db, customer-123

Långvariga operationer (LRO)

Åtgärder för att skapa, uppdatera och ta bort returnerar ett databricks.longrunning.Operation objekt som ger en slutförandestatus.

Exempel på åtgärdssvar:

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

Polling för komplettering med 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());

Kommandoradsgränssnitt (CLI)

CLI väntar automatiskt på att åtgärderna ska slutföras som standard. Använd --no-wait för att returnera omedelbart:

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

lockig

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

Avsök med några sekunders mellanrum tills done är true.

Uppdatera masker

Uppdateringsåtgärder kräver en update_mask parameter som anger vilka fält som ska ändras. Detta förhindrar att orelaterade fält skrivs över av misstag.

Formatera skillnader:

Metod Format Example
REST API Frågeparameter ?update_mask=spec.display_name
Python SDK FieldMask-objekt update_mask=FieldMask(field_mask=["spec.display_name"])
Kommandoradsgränssnitt (CLI) Positionsargument update-project NAME spec.display_name

Ytterligare resurser

SDK:er och infrastruktur som kod