Dela via


Api-guide för automatisk skalning i Lakebase

Viktigt!

Autoskalning av Lakebase är tillgängligt i följande regioner: eastus, eastus2, centralus, southcentralus, westus, westus2, canadacentral, brazilsouth, northeurope, uksouth, westeurope, australiaeast, centralindia, southeastasia.

Lakebase Autoscaling är den senaste versionen av Lakebase, med automatisk skalningsberäkning, skalning till noll, förgrening och omedelbar återställning. Om du är en Lakebase Provisioned-användare kan du läsa Lakebase Provisioned.

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 och Databricks SDK:er (Python, Java, Go).

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

Roller

Verksamhet Metod Endpoint Documentation
Visa en lista över roller GET /projects/{project_id}/branches/{branch_id}/roles Visa Postgres-roller
Skapa roll POST /projects/{project_id}/branches/{branch_id}/roles Skapa en OAuth-roll | Skapa en lösenordsroll
Hämta roll GET /projects/{project_id}/branches/{branch_id}/roles/{role_id} Visa Postgres-roller
Uppdatera roll PATCH /projects/{project_id}/branches/{branch_id}/roles/{role_id} Uppdatera en roll
Ta bort roll DELETE /projects/{project_id}/branches/{branch_id}/roles/{role_id} Ta bort en roll

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

Behörigheter

Project ACL-behörigheter använder standard-API:et för Azure Databricks-behörigheter, inte /api/2.0/postgres/ basvägen. Ange request_object_type till database-projects och ange request_object_id till projekt-ID.

Verksamhet Metod Endpoint Documentation
Hämta projektbehörigheter GET /api/2.0/permissions/database-projects/{project_id} Api-referens för behörigheter
Uppdatera projektbehörigheter PATCH /api/2.0/permissions/database-projects/{project_id} Api-referens för behörigheter
Ersätt projektbehörigheter PUT /api/2.0/permissions/database-projects/{project_id} Api-referens för behörigheter

Behörighetsnivåer som kan beviljas för Lakebase-projekt är CAN_USE och CAN_MANAGE. CAN_CREATE är en ärvd nivå och kan inte anges via API:et. Se Behörighetsnivåer.

Användningsexempel och CLI/SDK/Terraform-motsvarigheter finns i Bevilja behörigheter programmatiskt.

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

SDK:er och infrastruktur som kod