Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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:falseunder tiden som det pågår,truenär den är färdig -
response: Innehåller resultatet närdoneärtrue -
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 |