Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Belangrijk
Lakebase Autoscaling bevindt zich in de bètaversie van de volgende regio's: eastus2, , westeuropewestus.
Lakebase Autoscaling is de nieuwste versie van Lakebase met automatisch schalen van rekenkracht, schalen naar nul, vertakkingen en direct herstellen. Voor een vergelijking van functies met Lakebase Ingericht, zie het kiezen tussen de versies.
Deze pagina bevat een overzicht van de Lakebase Automatische schaalaanpassings-API, waaronder verificatie, beschikbare eindpunten en algemene patronen voor het werken met de REST API, Databricks CLI en Databricks SDK's (Python, Java, Go).
Zie de Postgres-API-documentatie voor de volledige API-naslaginformatie.
Belangrijk
De Lakebase Postgres-API bevindt zich in de bètaversie. API-eindpunten, -parameters en -gedrag kunnen worden gewijzigd.
Authenticatie
De Automatische schaalaanpassings-API van Lakebase maakt gebruik van OAuth-verificatie op werkruimteniveau voor het beheren van de projectinfrastructuur (projecten maken, instellingen configureren, enzovoort).
Opmerking
Twee typen connectiviteit: deze API is bedoeld voor platformbeheer (het maken van projecten, vertakkingen, berekeningen). Voor databasetoegang (verbinding maken met querygegevens):
- SQL-clients (psql, pgAdmin, DBeaver): Gebruik Lakebase OAuth-tokens of Postgres-wachtwoorden. Zie Verificatie.
- Data-API (RESTful HTTP): Gebruik OAuth-tokens voor Lakebase. Zie gegevens-API.
- Stuurprogramma's voor programmeertalen (psycopg, SQLAlchemy, JDBC): Gebruik Lakebase OAuth-tokens of Postgres-wachtwoorden. Zie snelstartgids.
Zie de verificatiearchitectuur voor een volledige uitleg van deze twee verificatielagen.
authenticatie instellen
Verifiëren met behulp van de Databricks CLI:
databricks auth login --host https://your-workspace.cloud.databricks.com
Volg de browserprompts om u aan te melden. De CLI slaat uw OAuth-token op in ~/.databricks/token-cache.jsonde cache.
Kies vervolgens uw toegangsmethode:
Python SDK
De SDK maakt gebruik van geïntegreerde verificatie en verwerkt automatisch OAuth-tokens:
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
Java SDK
De SDK maakt gebruik van geïntegreerde verificatie en verwerkt automatisch OAuth-tokens:
import com.databricks.sdk.WorkspaceClient;
WorkspaceClient w = new WorkspaceClient();
CLI (Command Line Interface)
Opdrachten maken automatisch gebruik van het token in de cache:
databricks postgres list-projects
curl
Genereer een token voor directe API-aanroepen:
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-tokens verlopen na één uur. Genereer indien nodig opnieuw.
Zie Gebruikerstoegang tot Databricks autoriseren met OAuth voor meer informatie.
Beschikbare eindpunten (bèta)
Alle eindpunten gebruiken het basispad /api/2.0/postgres/.
Projecten
| Operation | Methode | Eindpunt | Documentation |
|---|---|---|---|
| Project maken | POST |
/projects |
Een project maken |
| Project bijwerken | PATCH |
/projects/{project_id} |
Algemene instellingen |
| Project verwijderen | DELETE |
/projects/{project_id} |
Een project verwijderen |
| Project ophalen | GET |
/projects/{project_id} |
Projectdetails ophalen |
| Projecten weergeven | GET |
/projects |
Projecten weergeven |
Branches
| Operation | Methode | Eindpunt | Documentation |
|---|---|---|---|
| Vertakking maken | POST |
/projects/{project_id}/branches |
Een branch maken |
| Branch bijwerken | PATCH |
/projects/{project_id}/branches/{branch_id} |
Vertakkingsinstellingen bijwerken |
| Vertakking verwijderen | DELETE |
/projects/{project_id}/branches/{branch_id} |
Een vertakking verwijderen |
| Branch ophalen | GET |
/projects/{project_id}/branches/{branch_id} |
Vertakkingen weergeven |
| Lijst vertakkingen | GET |
/projects/{project_id}/branches |
Vertakkingen weergeven |
Eindpunten (berekeningen en leesreplica's)
| Operation | Methode | Eindpunt | Documentation |
|---|---|---|---|
| Eindpunt maken | POST |
/projects/{project_id}/branches/{branch_id}/endpoints |
Een rekenproces maken / Een leesreplica maken |
| Eindpunt bijwerken | PATCH |
/projects/{project_id}/branches/{branch_id}/endpoints/{endpoint_id} |
Een rekenproces / bewerkenEen leesreplica bewerken |
| Eindpunt verwijderen | DELETE |
/projects/{project_id}/branches/{branch_id}/endpoints/{endpoint_id} |
Een rekenproces / verwijderenEen leesreplica verwijderen |
| Eindpunt ophalen | GET |
/projects/{project_id}/branches/{branch_id}/endpoints/{endpoint_id} |
Berekeningen weergeven |
| Eindpunten vermelden | GET |
/projects/{project_id}/branches/{branch_id}/endpoints |
Berekeningen weergeven |
Databasegegevens
| Operation | Methode | Eindpunt | Documentation |
|---|---|---|---|
| Databasereferentie genereren | POST |
/credentials |
OAuth-tokenverificatie |
Operationeel beheer
| Operation | Methode | Eindpunt | Documentation |
|---|---|---|---|
| Bewerking ophalen | GET |
/projects/{project_id}/operations/{operation_id} |
Zie het onderstaande voorbeeld |
Bewerking ophalen
Controleer de status van een langdurige bewerking met behulp van de naam van de bron.
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());
CLI (Command Line Interface)
De CLI wacht automatisch totdat bewerkingen standaard zijn voltooid. Gebruik --no-wait dit om polling over te slaan:
# 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
Antwoordindeling:
{
"name": "projects/my-project/operations/abc123",
"done": true,
"response": {
"@type": "type.googleapis.com/databricks.postgres.v1.Project",
"name": "projects/my-project",
...
}
}
Velden:
-
done:falsetijdens uitvoering,truewanneer voltooid -
response: Bevat het resultaat wanneerdoneistrue -
error: Bevat foutdetails als de bewerking is mislukt
Algemene patronen
Naamgeving van hulpbronnen
Resources volgen een hiërarchisch naamgevingspatroon waarbij onderliggende resources binnen de context van hun bovenliggende resources worden geplaatst.
Projecten gebruiken deze indeling:
projects/{project_id}
Onderliggende hulpmiddelen, zoals bewerkingen, worden geplaatst onder het hoofdproject.
projects/{project_id}/operations/{operation_id}
Dit betekent dat u de ouderproject-id nodig hebt voor toegang tot bewerkingen of andere onderliggende resources.
Resource-ID's:
Bij het maken van resources moet u een resource-id (zoals my-app) opgeven voor de project_id, branch_idof endpoint_id parameter. Deze id maakt deel uit van het resourcepad in API-aanroepen (zoals projects/my-app/branches/development).
U kunt eventueel een display_name beschrijvend label opgeven om uw resource een meer beschrijvend label te geven. Als u geen weergavenaam opgeeft, gebruikt het systeem uw resource-id als weergavenaam.
:::tip resources zoeken in de gebruikersinterface
Als u een project wilt zoeken in de gebruikersinterface van Lakebase, zoekt u de weergavenaam in de lijst met projecten. Als u geen aangepaste weergavenaam hebt opgegeven bij het maken van het project, zoekt u naar uw project_id (zoals 'mijn-app').
:::
Opmerking
Resource-id's kunnen niet worden gewijzigd na het maken.
Vereisten:
- Moet 1-63 tekens lang zijn
- Alleen kleine letters, cijfers en afbreekstreepjes
- Kan niet beginnen of eindigen met een afbreekstreepje
- Voorbeelden:
my-app,analytics-dbcustomer-123
Langlopende bewerkingen (LROs)
Met de bewerkingen voor maken, bijwerken en verwijderen wordt een databricks.longrunning.Operation object geretourneerd dat de voltooiingsstatus biedt.
Voorbeeld van een bewerkingsantwoord:
{
"name": "projects/my-project/operations/abc123",
"done": false
}
Peiling voor voltooiing met 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());
CLI (Command Line Interface)
De CLI wacht automatisch totdat bewerkingen standaard zijn voltooid. Gebruik --no-wait dit om onmiddellijk terug te keren:
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'
Poll om de paar seconden totdat donetrue is.
Maskers bijwerken
Bijwerkbewerkingen vereisen een update_mask parameter die aangeeft welke velden moeten worden gewijzigd. Dit voorkomt dat niet-gerelateerde velden per ongeluk worden overschreven.
Verschillen in opmaak:
| Methode | Formaat | Example |
|---|---|---|
| REST API | Zoekopdrachtparameter | ?update_mask=spec.display_name |
| Python SDK | FieldMask-object | update_mask=FieldMask(field_mask=["spec.display_name"]) |
| CLI (Command Line Interface) | Positioneel argument | update-project NAME spec.display_name |