Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Fontos
A Lakebase automatikus skálázása bétaverzióban érhető el a következő régiókban: eastus2, , westeuropewestus.
A Lakebase Autoscaling a Lakebase legújabb verziója automatikus skálázási számítással, nullára skálázással, elágaztatással és azonnali visszaállítással. A Lakebase Provisioned szolgáltatással való összehasonlításához tekintse meg a verziók közötti választást.
Ez a lap áttekintést nyújt a Lakebase automatikus skálázási API-járól, beleértve a hitelesítést, az elérhető végpontokat és a REST API, a Databricks CLI és a Databricks SDK-k (Python, Java, Go) használatának gyakori mintáit.
A teljes API-referencia a Postgres API dokumentációjában található.
Fontos
A Lakebase Postgres API bétaverzióban érhető el. Az API-végpontok, paraméterek és viselkedések változhatnak.
Authentication
A Lakebase automatikus skálázási API munkaterületszintű OAuth-hitelesítést használ a projektinfrastruktúra kezeléséhez (projektek létrehozása, beállítások konfigurálása stb.).
Megjegyzés:
Két kapcsolattípus: Ez az API platformkezelésre (projektek, ágak, számítások létrehozása) használható. Adatbázis-hozzáféréshez (lekérdezési adatokhoz való csatlakozáshoz):
- SQL-ügyfelek (psql, pgAdmin, DBeaver): Használjon Lakebase OAuth-jogkivonatokat vagy Postgres-jelszavakat. Lásd: Hitelesítés.
- Data API (RESTful HTTP): A Lakebase OAuth-jogkivonatok használata. Lásd a Data API-t.
- Programozási nyelvillesztők (psycopg, SQLAlchemy, JDBC): Lakebase OAuth-jogkivonatok vagy Postgres-jelszavak használata. Lásd a rövid útmutatót.
A két hitelesítési réteg teljes magyarázatát lásd: Hitelesítési architektúra.
Hitelesítés beállítása
Hitelesítés a Databricks parancssori felületével:
databricks auth login --host https://your-workspace.cloud.databricks.com
A bejelentkezéshez kövesse a böngészőben megjelenő utasításokat. A parancssori felület gyorsítótárazza az OAuth-jogkivonatot a következő helyen: ~/.databricks/token-cache.json.
Ezután válassza ki a hozzáférési módszert:
Python SDK
Az SDK egységes hitelesítést használ, és automatikusan kezeli az OAuth-jogkivonatokat:
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
Java SDK
Az SDK egységes hitelesítést használ, és automatikusan kezeli az OAuth-jogkivonatokat:
import com.databricks.sdk.WorkspaceClient;
WorkspaceClient w = new WorkspaceClient();
parancssori felület
A parancsok automatikusan használják a gyorsítótárazott tokent:
databricks postgres list-projects
göndörít
Hozzon létre egy jogkivonatot a közvetlen API-hívásokhoz:
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}"
Az OAuth-jogkivonatok egy óra elteltével lejárnak. Szükség szerint újragenerálódik.
További részletekért lásd: Felhasználók hozzáférésének engedélyezése a Databrickshez az OAuth használatával.
Elérhető végpontok (bétaverzió)
Minden végpont az alap elérési utat /api/2.0/postgres/használja.
Projektek
| Operation | Metódus | Végpont | Documentation |
|---|---|---|---|
| Projekt létrehozása | POST |
/projects |
Projekt létrehozása |
| Projekt frissítése | PATCH |
/projects/{project_id} |
Általános beállítások |
| Projekt törlése | DELETE |
/projects/{project_id} |
Projektek törlése |
| Projekt lekérése | GET |
/projects/{project_id} |
Projekt részleteinek lekérése |
| Projektek listázása | GET |
/projects |
Projektek listázása |
Ágak
| Operation | Metódus | Végpont | Documentation |
|---|---|---|---|
| Elágazás létrehozása | POST |
/projects/{project_id}/branches |
Ág létrehozása |
| Ág frissítése | PATCH |
/projects/{project_id}/branches/{branch_id} |
Ágbeállítások frissítése |
| Ág törlése | DELETE |
/projects/{project_id}/branches/{branch_id} |
Ág törlése |
| Ág lekérése | GET |
/projects/{project_id}/branches/{branch_id} |
Ágak megtekintése |
| Ágak listázása | GET |
/projects/{project_id}/branches |
Ágak listázása |
Végpontok (számítási és olvasási replikák)
| Operation | Metódus | Végpont | Documentation |
|---|---|---|---|
| Végpont létrehozása | POST |
/projects/{project_id}/branches/{branch_id}/endpoints |
Számítási erőforrás létrehozása / Olvasási replika létrehozása |
| Végpont frissítése | PATCH |
/projects/{project_id}/branches/{branch_id}/endpoints/{endpoint_id} |
Számítás szerkesztése / Olvasási replika szerkesztése |
| Végpont törlése | DELETE |
/projects/{project_id}/branches/{branch_id}/endpoints/{endpoint_id} |
Számítási erőforrás törlése / Olvasási replika törlése |
| Végpont lekérése | GET |
/projects/{project_id}/branches/{branch_id}/endpoints/{endpoint_id} |
Számítások megtekintése |
| Végpontok listázása | GET |
/projects/{project_id}/branches/{branch_id}/endpoints |
Számítások megtekintése |
Adatbázis hitelesítő adatai
| Operation | Metódus | Végpont | Documentation |
|---|---|---|---|
| Adatbázis hitelesítő adatainak létrehozása | POST |
/credentials |
OAuth-jogkivonat hitelesítése |
Műveletek
| Operation | Metódus | Végpont | Documentation |
|---|---|---|---|
| Művelet lekérése | GET |
/projects/{project_id}/operations/{operation_id} |
Lásd az alábbi példát |
Művelet lekérése
Ellenőrizze egy hosszú ideig futó művelet állapotát az erőforrás neve alapján.
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());
parancssori felület
A parancssori felület automatikusan megvárja, amíg a műveletek alapértelmezés szerint befejeződnek. A polling kihagyásához használja a --no-wait kódot.
# Create project without waiting
databricks postgres create-project --no-wait ...
# Later, check the operation status
databricks postgres get-operation projects/my-project/operations/abc123
göndörít
# Get operation status
curl -X GET "$WORKSPACE/api/2.0/postgres/projects/my-project/operations/abc123" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq
Válaszformátum:
{
"name": "projects/my-project/operations/abc123",
"done": true,
"response": {
"@type": "type.googleapis.com/databricks.postgres.v1.Project",
"name": "projects/my-project",
...
}
}
Mezők:
-
done:falseamíg folyamatban van,trueha befejeződött -
response: Az eredményt tartalmazza, hadonetrue -
error: Hiba részleteit tartalmazza, ha a művelet sikertelen volt
Gyakori minták
Erőforrások elnevezése
Az erőforrások hierarchikus elnevezési mintát követnek, amelyben a gyermekerőforrások hatóköre a szülőre terjed ki.
A projektek a következő formátumot használják:
projects/{project_id}
A gyermekerőforrások, például a műveletek beágyazva vannak a szülőprojektjükbe:
projects/{project_id}/operations/{operation_id}
Ez azt jelenti, hogy a műveletek vagy más gyermekerőforrások eléréséhez a szülőprojekt-azonosítóra van szüksége.
Erőforrásazonosítók:
Erőforrások létrehozásakor meg kell adnia egy erőforrás-azonosítót (például my-app) az project_id, branch_idvagy endpoint_id paraméter számára. Ez az azonosító az API-hívások (például projects/my-app/branches/development) erőforrás-elérési útjának részévé válik.
Igény szerint megadhat egy olyan címkét display_name , amely leíróbb címkét ad az erőforrásnak. Ha nem ad meg megjelenítendő nevet, a rendszer az erőforrás-azonosítót használja megjelenítési névként.
:::tipp Erőforrások keresése a felhasználói felületen
Ha meg szeretne keresni egy projektet a Lakebase felhasználói felületén, keresse meg a megjelenítendő nevét a projektek listájában. Ha a projekt létrehozásakor nem adott meg egyéni megjelenítendő nevet, keressen rá a project_id kifejezésre (például "saját alkalmazás").
:::
Megjegyzés:
Az erőforrás-azonosítók létrehozása után nem módosíthatók.
Követelmények:
- 1–63 karakter hosszúnak kell lennie
- Csak kisbetűk, számjegyek és kötőjelek
- Nem lehet kötőjellel kezdeni vagy végződni
- Példák:
my-app, ,analytics-dbcustomer-123
Hosszú ideig futó műveletek (LPO-k)
A létrehozási, frissítési és törlési műveletek egy databricks.longrunning.Operation befejezési állapotot biztosító objektumot adnak vissza.
Példa műveleti válaszra:
{
"name": "projects/my-project/operations/abc123",
"done": false
}
Lekérdezés a getOperation használatával való befejezéshez:
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());
parancssori felület
A parancssori felület automatikusan megvárja, amíg a műveletek alapértelmezés szerint befejeződnek. Azonnali visszatérésre használható --no-wait :
databricks postgres create-project --no-wait ...
göndörít
# Poll the operation
curl "$WORKSPACE/api/2.0/postgres/projects/my-project/operations/abc123" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq '.done'
Kérdezzen le néhány másodpercenként, amíg done nem lesz true.
Maszkok frissítése
A frissítési műveletekhez paraméter update_mask szükséges, amely meghatározza, hogy mely mezőket kell módosítani. Ez megakadályozza a nem kapcsolódó mezők véletlen felülírását.
Formátumeltérés:
| Metódus | Formátum | Example |
|---|---|---|
| REST API | Lekérdezési paraméter | ?update_mask=spec.display_name |
| Python SDK | FieldMask objektum | update_mask=FieldMask(field_mask=["spec.display_name"]) |
| parancssori felület | Pozíció szerinti argumentum | update-project NAME spec.display_name |