Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Von Bedeutung
Lakebase Autoscaling ist in Beta in den folgenden Regionen: eastus2, westeurope, westus.
Lakebase Autoscaling ist die neueste Version von Lakebase mit automatischer Berechnung, Skalierung bis Null, Verzweigung und sofortiger Wiederherstellung. Einen Featurevergleich mit Lakebase Provisioned finden Sie unter Auswahl zwischen Versionen.
Diese Seite bietet eine Übersicht über die Lakebase Autoscaling-API, einschließlich Authentifizierung, verfügbaren Endpunkten und gängigen Mustern für die Arbeit mit der REST-API, Databricks CLI, Databricks SDKs (Python, Java, Go) und Terraform.
Die vollständige API-Referenz finden Sie in der Dokumentation zur Postgres-API.
Von Bedeutung
Die Lakebase Postgres-API befindet sich in Beta. API-Endpunkte, Parameter und Verhaltensweisen können geändert werden.
Authentifizierung
Die Lakebase Autoscaling-API verwendet die OAuth-Authentifizierung auf Arbeitsbereichsebene zum Verwalten der Projektinfrastruktur (Erstellen von Projekten, Konfigurieren von Einstellungen, usw.).
Hinweis
Zwei Arten von Konnektivität: Diese API dient zum Plattformmanagement (Erstellen von Projekten, Verzweigungen, Berechnungen). Für datenbankzugriff (Herstellen einer Verbindung mit Abfragedaten):
- SQL-Clients (psql, pgAdmin, DBeaver): Verwenden Sie LakeBase OAuth-Token oder Postgres-Kennwörter. Siehe Authentifizierung.
- Daten-API (RESTful HTTP): Verwenden Sie LakeBase OAuth-Token. Siehe Daten-API.
- Programmiersprachentreiber (psycopg, SQLAlchemy, JDBC): Verwenden Sie LakeBase OAuth-Token oder Postgres-Passwörter. Siehe Schnellstart.
Eine vollständige Erläuterung dieser beiden Authentifizierungsebenen finden Sie unter Authentifizierungsarchitektur.
Einrichten der Authentifizierung
Authentifizieren mithilfe der Databricks CLI:
databricks auth login --host https://your-workspace.cloud.databricks.com
Folgen Sie den Browseraufforderungen, um sich anzumelden. Die CLI speichert Ihr OAuth-Token unter ~/.databricks/token-cache.json.
Wählen Sie dann Ihre Zugriffsmethode aus:
Python SDK
Das SDK verwendet einheitliche Authentifizierung und verarbeitet automatisch OAuth-Token:
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
Java-SDK
Das SDK verwendet einheitliche Authentifizierung und verarbeitet automatisch OAuth-Token:
import com.databricks.sdk.WorkspaceClient;
WorkspaceClient w = new WorkspaceClient();
Befehlszeilenschnittstelle (CLI)
Befehle verwenden automatisch das zwischengespeicherte Token:
databricks postgres list-projects
cURL
Generieren Sie ein Token für direkte API-Aufrufe:
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 laufen nach einer Stunde ab. Regenerieren Sie nach Bedarf.
Weitere Details finden Sie unter Autorisieren des Benutzerzugriffs auf Databricks mit OAuth.
Verfügbare Endpunkte (Beta)
Alle Endpunkte verwenden den Basispfad /api/2.0/postgres/.
Projekte
| Operation | Methode | Endpunkt | Dokumentation |
|---|---|---|---|
| Projekt erstellen | POST |
/projects |
Erstellen eines Projekts |
| Projekt aktualisieren | PATCH |
/projects/{project_id} |
Allgemeine Einstellungen |
| Löschen eines Projekts | DELETE |
/projects/{project_id} |
Löschen eines Projekts |
| Projekt abrufen | GET |
/projects/{project_id} |
Projektdetails abrufen |
| Projekte auflisten | GET |
/projects |
Projekte auflisten |
Branches
| Operation | Methode | Endpunkt | Dokumentation |
|---|---|---|---|
| Branch erstellen | POST |
/projects/{project_id}/branches |
Einen Zweig erstellen |
| Branch aktualisieren | PATCH |
/projects/{project_id}/branches/{branch_id} |
Aktualisiere Verzweigungseinstellungen |
| Verzweigung löschen | DELETE |
/projects/{project_id}/branches/{branch_id} |
Löschen einer Verzweigung |
| Verzweigung abrufen | GET |
/projects/{project_id}/branches/{branch_id} |
Filialen anzeigen |
| Zweige auflisten | GET |
/projects/{project_id}/branches |
Branches auflisten |
Endpunkte (Berechnet und Lesen von Replikaten)
| Operation | Methode | Endpunkt | Dokumentation |
|---|---|---|---|
| Endpunkt erstellen | POST |
/projects/{project_id}/branches/{branch_id}/endpoints |
Erstellen einer Berechnung / Erstellen eines Lesereplikats |
| Endpunkt aktualisieren | PATCH |
/projects/{project_id}/branches/{branch_id}/endpoints/{endpoint_id} |
Bearbeiten einer Berechnung / Bearbeiten eines Lesereplikats |
| Löschen eines Endpunkts | DELETE |
/projects/{project_id}/branches/{branch_id}/endpoints/{endpoint_id} |
Löschen einer Recheneinheit / Löschen eines Lesereplikats |
| Endpunkt abrufen | GET |
/projects/{project_id}/branches/{branch_id}/endpoints/{endpoint_id} |
Rechner anzeigen |
| Endpunkte auflisten | GET |
/projects/{project_id}/branches/{branch_id}/endpoints |
Berechnungen anzeigen |
Datenbank-Zugangsdaten
| Operation | Methode | Endpunkt | Dokumentation |
|---|---|---|---|
| Datenbankanmeldeinformationen generieren | POST |
/credentials |
OAuth-Tokenauthentifizierung |
Operationen
| Operation | Methode | Endpunkt | Dokumentation |
|---|---|---|---|
| Vorgang abrufen | GET |
/projects/{project_id}/operations/{operation_id} |
Siehe Beispiel unten |
Vorgang abrufen
Überprüfen Sie den Status eines lang andauernden Vorgangs anhand des Ressourcennamens.
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());
Befehlszeilenschnittstelle (CLI)
Die CLI wartet automatisch, bis Vorgänge standardmäßig abgeschlossen sind. Verwenden Sie --no-wait zum Überspringen des Abfragens.
# Create project without waiting
databricks postgres create-project --no-wait ...
# Later, check the operation status
databricks postgres get-operation projects/my-project/operations/abc123
cURL
# Get operation status
curl -X GET "$WORKSPACE/api/2.0/postgres/projects/my-project/operations/abc123" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq
Antwortformat:
{
"name": "projects/my-project/operations/abc123",
"done": true,
"response": {
"@type": "type.googleapis.com/databricks.postgres.v1.Project",
"name": "projects/my-project",
...
}
}
Felder:
-
done:falsewährend der Bearbeitung,truenach Abschluss -
response: Enthält das Ergebnis, wenndonetrueist. -
error: Enthält Fehlerdetails, wenn der Vorgang fehlgeschlagen ist.
Allgemeine Muster
Ressourcen-Namensgebung
Ressourcen folgen einem hierarchischen Benennungsmuster, bei dem untergeordnete Ressourcen ihren übergeordneten Elementen zugeordnet sind.
Projekte verwenden dieses Format:
projects/{project_id}
Untergeordnete Ressourcen wie Vorgänge werden unter ihrem übergeordneten Projekt geschachtelt:
projects/{project_id}/operations/{operation_id}
Dies bedeutet, dass Sie die übergeordnete Projekt-ID für den Zugriff auf Vorgänge oder andere untergeordnete Ressourcen benötigen.
Ressourcen-IDs:
Beim Erstellen von Ressourcen müssen Sie eine Ressourcen-ID angeben (z. B. my-app) für die Parameter project_id, branch_id oder endpoint_id. Diese ID wird Teil des Ressourcenpfads in API-Aufrufen (z. B. projects/my-app/branches/development).
Sie können optional Ihrer Ressource eine display_name aussagekräftige Beschriftung vergeben. Wenn Sie keinen Anzeigenamen angeben, verwendet das System Ihre Ressourcen-ID als Anzeigenamen.
:::tipp: Suchen von Ressourcen auf der Benutzeroberfläche
Um ein Projekt in der Lakebase-Benutzeroberfläche zu finden, suchen Sie in der Projektliste nach dem Anzeigenamen. Wenn Sie beim Erstellen des Projekts keinen benutzerdefinierten Anzeigenamen angegeben haben, suchen Sie nach Ihrem project_id (z. B. "my-app").
:::
Hinweis
Ressourcen-IDs können nach der Erstellung nicht mehr geändert werden.
Requirements:
- Muss 1 bis 63 Zeichen lang sein
- Nur Kleinbuchstaben, Ziffern und Bindestriche
- Kann nicht mit einem Bindestrich beginnen oder enden
- Beispiele:
my-app, ,analytics-dbcustomer-123
Lang andauernde Vorgänge (LROs)
Erstellen, Aktualisieren und Löschen geben ein databricks.longrunning.Operation Objekt zurück, das einen Abschlussstatus bereitstellt.
Beispiel-Vorgangsantwort:
{
"name": "projects/my-project/operations/abc123",
"done": false
}
Abfrage zum Abschluss mithilfe von 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());
Befehlszeilenschnittstelle (CLI)
Die CLI wartet automatisch, bis Vorgänge standardmäßig abgeschlossen sind. Verwenden Sie --no-wait, um sofort zurückzukehren:
databricks postgres create-project --no-wait ...
cURL
# Poll the operation
curl "$WORKSPACE/api/2.0/postgres/projects/my-project/operations/abc123" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq '.done'
Alle paar Sekunden abfragen, bis donetrue ist.
Aktualisieren von Masken
Aktualisierungsvorgänge erfordern einen update_mask Parameter, der angibt, welche Felder geändert werden sollen. Dadurch wird verhindert, dass nicht verknüpfte Felder versehentlich überschrieben werden.
Formatunterschiede:
| Methode | Format | Example |
|---|---|---|
| REST API | Query parameter (Abfrageparameter) | ?update_mask=spec.display_name |
| Python SDK | FieldMask-Objekt | update_mask=FieldMask(field_mask=["spec.display_name"]) |
| Befehlszeilenschnittstelle (CLI) | Positionsargument | update-project NAME spec.display_name |