Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważne
Skalowanie automatyczne bazy danych Lakebase znajduje się w wersji beta w następujących regionach: eastus2, westeurope, westus.
Autoskalowanie bazy danych Lakebase to najnowsza wersja bazy danych Lakebase z automatycznym skalowaniem obliczeniowym, skalowaniem do zera, rozgałęzianiem i natychmiastowym przywracaniem. Aby zapoznać się z porównaniem funkcji z Lakebase Provisioned, sprawdź wybieranie między wersjami.
Ta strona zawiera omówienie interfejsu API automatycznego skalowania usługi Lakebase, w tym uwierzytelniania, dostępnych punktów końcowych i typowych wzorców pracy z interfejsem API REST, interfejsem wiersza polecenia usługi Databricks i zestawami SDK usługi Databricks (Python, Java, Go).
Aby uzyskać pełną dokumentację interfejsu API, zobacz dokumentację interfejsu API bazy danych Postgres.
Ważne
Interfejs API Postgres w Lakebase jest w wersji beta. Punkty końcowe interfejsu API, parametry i zachowania mogą ulec zmianie.
Authentication
Interfejs API automatycznego skalowania usługi Lakebase używa uwierzytelniania OAuth na poziomie obszaru roboczego do zarządzania infrastrukturą projektu (tworzenie projektów, konfigurowanie ustawień itp.).
Uwaga / Notatka
Dwa typy łączności: ten interfejs API służy do zarządzania platformą (tworzenie projektów, gałęzi, obliczeń). Aby uzyskać dostęp do bazy danych (nawiązywanie połączenia z danymi):
- Klienci SQL (psql, pgAdmin, DBeaver): użyj tokenów OAuth bazy danych Lakebase lub haseł Postgres. Zobacz Uwierzytelnianie.
- Interfejs API danych (RESTful HTTP): użyj tokenów OAuth bazy danych Lakebase. Zobacz Interfejs API danych.
- Sterowniki języka programowania (psycopg, SQLAlchemy, JDBC): użyj tokenów OAuth bazy danych Lakebase lub haseł Postgres. Zobacz Szybki start.
Aby uzyskać pełne wyjaśnienie tych dwóch warstw uwierzytelniania, zobacz Architektura uwierzytelniania.
Konfigurowanie uwierzytelniania
Uwierzytelnianie przy użyciu interfejsu wiersza polecenia usługi Databricks:
databricks auth login --host https://your-workspace.cloud.databricks.com
Postępuj zgodnie z monitami przeglądarki, aby się zalogować. Interfejs wiersza polecenia buforuje token OAuth pod adresem ~/.databricks/token-cache.json.
Następnie wybierz metodę dostępu:
Zestaw SDK dla języka Python
Zestaw SDK używa ujednoliconego uwierzytelniania i automatycznie obsługuje tokeny OAuth:
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
Java SDK
Zestaw SDK używa ujednoliconego uwierzytelniania i automatycznie obsługuje tokeny OAuth:
import com.databricks.sdk.WorkspaceClient;
WorkspaceClient w = new WorkspaceClient();
CLI
Polecenia automatycznie używają buforowanego tokenu:
databricks postgres list-projects
skręt
Wygeneruj token dla bezpośrednich wywołań interfejsu 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}"
Tokeny OAuth wygasają po godzinie. W razie potrzeby wygeneruj ponownie.
Aby uzyskać więcej informacji, zobacz Autoryzowanie dostępu użytkowników do usługi Databricks przy użyciu protokołu OAuth.
Dostępne punkty końcowe (wersja beta)
Wszystkie punkty końcowe używają ścieżki /api/2.0/postgres/podstawowej .
Projekty
| Operation | Metoda | Endpoint | Dokumentacja |
|---|---|---|---|
| Tworzenie projektu | POST |
/projects |
Utwórz projekt |
| Aktualizowanie projektu | PATCH |
/projects/{project_id} |
Ustawienia ogólne |
| Usuwanie projektu | DELETE |
/projects/{project_id} |
Usuwanie projektu |
| Pobierz projekt | GET |
/projects/{project_id} |
Uzyskaj szczegóły projektu |
| Lista projektów | GET |
/projects |
Wyświetlanie listy projektów |
Gałęzie
| Operation | Metoda | Endpoint | Dokumentacja |
|---|---|---|---|
| Utworzyć odgałęzienie | POST |
/projects/{project_id}/branches |
Tworzenie gałęzi |
| Aktualizuj gałąź | PATCH |
/projects/{project_id}/branches/{branch_id} |
Aktualizowanie ustawień gałęzi |
| Usuń gałąź | DELETE |
/projects/{project_id}/branches/{branch_id} |
Usuwanie gałęzi |
| Pobieranie gałęzi | GET |
/projects/{project_id}/branches/{branch_id} |
Wyświetlanie gałęzi |
| Wyświetl gałęzie | GET |
/projects/{project_id}/branches |
Lista gałęzi |
Punkty końcowe (obliczenia i repliki do odczytu)
| Operation | Metoda | Endpoint | Dokumentacja |
|---|---|---|---|
| Tworzenie punktu końcowego | POST |
/projects/{project_id}/branches/{branch_id}/endpoints |
Tworzenie obliczeń / Tworzenie repliki do odczytu |
| Aktualizowanie punktu końcowego | PATCH |
/projects/{project_id}/branches/{branch_id}/endpoints/{endpoint_id} |
Edytowanie obliczeń / Edytowanie repliki do odczytu |
| Usuń punkt końcowy | DELETE |
/projects/{project_id}/branches/{branch_id}/endpoints/{endpoint_id} |
Usuwanie obliczeń / Usuwanie repliki do odczytu |
| Pobierz punkt końcowy | GET |
/projects/{project_id}/branches/{branch_id}/endpoints/{endpoint_id} |
Wyświetlanie obliczeń |
| Wymień punkty końcowe | GET |
/projects/{project_id}/branches/{branch_id}/endpoints |
Wyświetlanie obliczeń |
Poświadczenia bazy danych
| Operation | Metoda | Endpoint | Dokumentacja |
|---|---|---|---|
| Generowanie poświadczeń bazy danych | POST |
/credentials |
Uwierzytelnianie tokenu OAuth |
Operacji
| Operation | Metoda | Endpoint | Dokumentacja |
|---|---|---|---|
| Operacja pobierania | GET |
/projects/{project_id}/operations/{operation_id} |
Zobacz przykład poniżej |
Pobieranie operacji
Sprawdź stan długotrwałej operacji według nazwy zasobu.
Zestaw SDK dla języka Python
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
Interfejs wiersza polecenia automatycznie czeka na ukończenie operacji domyślnie. Użyj polecenia --no-wait , aby pominąć sondowanie:
# Create project without waiting
databricks postgres create-project --no-wait ...
# Later, check the operation status
databricks postgres get-operation projects/my-project/operations/abc123
skręt
# Get operation status
curl -X GET "$WORKSPACE/api/2.0/postgres/projects/my-project/operations/abc123" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq
Format odpowiedzi:
{
"name": "projects/my-project/operations/abc123",
"done": true,
"response": {
"@type": "type.googleapis.com/databricks.postgres.v1.Project",
"name": "projects/my-project",
...
}
}
Pola:
-
done:falsew toku,truepo zakończeniu -
response: zawiera wynik, gdydonejesttrue -
error: zawiera szczegóły błędu, jeśli operacja nie powiodła się
Często używane wzorce
Nazewnictwo zasobów
Zasoby są zgodne ze wzorcem nazewnictwa hierarchicznego, w którym zasoby podrzędne są ograniczone do ich elementu nadrzędnego.
Projekty używają tego formatu:
projects/{project_id}
Zasoby podrzędne, takie jak operacje, są zagnieżdżone w ramach projektu nadrzędnego.
projects/{project_id}/operations/{operation_id}
Oznacza to, że potrzebujesz identyfikatora projektu nadrzędnego, aby uzyskać dostęp do operacji lub innych zasobów podrzędnych.
Identyfikatory zasobów:
Podczas tworzenia zasobów należy podać identyfikator zasobu (na przykład my-app) dla parametru project_id, branch_idlub endpoint_id . Ten identyfikator staje się częścią ścieżki zasobu w wywołaniach interfejsu API (takich jak projects/my-app/branches/development).
Opcjonalnie możesz podać element , display_name aby nadać zasobowi bardziej opisową etykietę. Jeśli nie określisz nazwy wyświetlanej, system używa identyfikatora zasobu jako nazwy wyświetlanej.
:::tip Znajdowanie zasobów w interfejsie użytkownika
Aby zlokalizować projekt w interfejsie użytkownika usługi Lakebase, wyszukaj jego nazwę wyświetlaną na liście projektów. Jeśli podczas tworzenia projektu nie ustanowisz własnej nazwy wyświetlanej, wyszukaj nazwę project_id (np. "my-app").
:::
Uwaga / Notatka
Nie można zmienić identyfikatorów zasobów po utworzeniu.
Wymagania:
- Musi mieć długość od 1 do 63 znaków
- Małe litery, cyfry i łączniki tylko
- Nie można zaczynać ani kończyć myślnikiem
- Przykłady:
my-app, ,analytics-dbcustomer-123
Długotrwałe operacje (LROs)
Operacje tworzenia, aktualizowania i usuwania zwracają databricks.longrunning.Operation obiekt, który zapewnia stan ukończenia.
Przykładowa odpowiedź operacji:
{
"name": "projects/my-project/operations/abc123",
"done": false
}
Sonduj pod kątem ukończenia przy użyciu polecenia GetOperation:
Zestaw SDK dla języka Python
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
Interfejs wiersza polecenia automatycznie czeka na ukończenie operacji domyślnie. Użyj polecenia --no-wait , aby natychmiast zwrócić:
databricks postgres create-project --no-wait ...
skręt
# Poll the operation
curl "$WORKSPACE/api/2.0/postgres/projects/my-project/operations/abc123" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq '.done'
Sonduj co kilka sekund, aż done stanie się true.
Aktualizuj maski
Operacje aktualizacji wymagają parametru update_mask określającego pola do zmodyfikowania. Zapobiega to przypadkowemu zastępowaniu niepowiązanych pól.
Różnice w formatach:
| Metoda | Format | Example |
|---|---|---|
| interfejs API REST | Parametr zapytania | ?update_mask=spec.display_name |
| Zestaw SDK dla języka Python | Obiekt FieldMask | update_mask=FieldMask(field_mask=["spec.display_name"]) |
| CLI | Argument pozycyjny | update-project NAME spec.display_name |