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 is de nieuwste versie van Lakebase, met automatisch schalen van rekenkracht, schaal-tot-nul, branching-functionaliteit en direct herstellen. Zie Beschikbaarheid van regio's voor ondersteunde regio's. Als u een door Lakebase ingericht gebruiker bent, raadpleegt u Lakebase Ingericht.
Een compute is een gevirtualiseerde dienst die Postgres uitvoert voor uw Lakebase-projecten. Elke vertakking heeft één primaire berekening (lezen/schrijven). Er is een computersysteem vereist om verbinding te maken met een vestiging en toegang te krijgen tot zijn gegevens. Zie Computes en eindpunten voor een overzicht van de relatie tussen berekeningen en eindpunten.
Inzicht in berekeningen
Overzicht van computing
Rekenresources bieden de verwerkingskracht en het geheugen die nodig zijn voor het uitvoeren van query's, het beheren van verbindingen en het verwerken van databasebewerkingen. Elk project heeft een primaire rekenkracht voor lezen/schrijven voor de standaardvertakking.
Als u verbinding wilt maken met een database in een vertakking, moet u een rekenproces gebruiken dat aan die vertakking is gekoppeld. Grotere berekeningen verbruiken meer rekenuren gedurende dezelfde periode van actieve tijd dan kleinere berekeningen.
Computeridentificatoren
Elke berekening heeft drie id's die toegankelijk zijn via het menu Id ophalen op het tabblad Berekeningen:
| Identificatie | bron | Voorbeeld | Gebruikt in |
|---|---|---|---|
| Naam | De eindpunt-ID, ingesteld op primary voor de standaard rekenopslag. Door de gebruiker opgegeven bij het maken van eindpunten via de API. |
primary |
API-resourcepad (.../endpoints/primary) |
| UID | Door systeem gegenereerd | ep-sweet-butterfly-y2nm75e1 |
Hostnaam van verbinding |
| Naam van bron | Volledig API-pad | projects/my-project/branches/production/endpoints/primary |
API-aanroepen |
De hostnaam in uw verbindingsreeks gebruikt de UID, niet de rekennaam.
Berekening van de computergrootte
Beschikbare rekengrootten
Lakebase Postgres ondersteunt de volgende rekengrootten:
- Berekeningen voor automatische schaalaanpassing: 0,5 CU tot 32 CU (0,5, vervolgens gehele getallen: 1, 2, 3... 16, en vervolgens 24, 28, 32)
- Grotere berekeningen met vaste grootte: 36 CU tot 112 CU (36, 40, 44, 48, 52, 56, 60, 64, 72, 80, 88, 96, 104, 112)
Wat is er in een rekeneenheid?
Elke compute-eenheid (CU) wijst ongeveer 2 GB RAM toe aan het database-exemplaar, samen met alle bijbehorende CPU- en lokale SSD-resources. Door omhoog te schalen worden deze resources lineair verhoogd. Postgres distribueert het toegewezen geheugen over meerdere onderdelen:
- Databasecaches
- Werkgeheugen
- Andere processen met vaste geheugenvereisten
Prestaties variëren op basis van de gegevensgrootte en querycomplexiteit. Voordat u query's gaat schalen, testen en optimaliseren. Opslag wordt automatisch geschaald.
Opmerking
Lakebase Provisioned versus automatisch schalen: In Lakebase Provisioned, heeft elke rekeneenheid ongeveer 16 GB RAM toegewezen. In Lakebase Autoscaling wijst elke CU 2 GB RAM toe. Deze wijziging biedt meer gedetailleerde schaalopties en kostenbeheer.
Berekeningsspecificaties
| Rekeneenheden | RAM | Maximum aantal verbindingen |
|---|---|---|
| 0,5 CU | ongeveer 1 GB | 104 |
| 1 CU | ~2 gigabyte | 209 |
| 2 CU | ~4 GB | 419 |
| 3 CU | ~6 GB | 629 |
| 4 CU | ~8 GB | 839 |
| 5 CU | ~10 GB | 1049 |
| 6 Compute Units | ~12 GB | 1258 |
| 7 CU | ~14 GB | 1468 |
| 8 CU | ~16 GB | 1678 |
| 9 CU | ~18 GB | 1888 |
| 10 CU | ~20 GB | 2098 |
| 12 Compute Units | ~24 GB | 2517 |
| 14 CU | ~28 GB | 2937 |
| 16 CU | ~32 GB | 3357 |
| 24 CU | ~48 GB | 4000 |
| 28 CU | ~56 GB | 4000 |
| 32 CU | ~64 GB | 4000 |
| 36 CU | ~72 GB | 4000 |
| 40 CU | ~80 GB | 4000 |
| 44 CU | ~88 GB | 4000 |
| 48 Compute Units (CU) | ~96 GB | 4000 |
| 52 CU | ~104 GB | 4000 |
| 56 CU | ~112 GB | 4000 |
| 60 CU | ~120 GB | 4000 |
| 64 Compute Units | ~128 GB | 4000 |
| 72 CU | ~144 GB | 4000 |
| 80 rekenkundige eenheden (CU) | ~160 GB | 4000 |
| 88 CU | ~176 GB | 4000 |
| 96 CU | ~192 GB | 4000 |
| 104 CU | ~208 GB | 4000 |
| 112 CU | ~224 GB | 4000 |
Verbindingslimieten voor berekeningen voor automatisch schalen: wanneer automatisch schalen is ingeschakeld, wordt het maximum aantal verbindingen bepaald door de maximale CU-grootte in uw bereik voor automatisch schalen. Als u bijvoorbeeld automatische schaalaanpassing tussen 2-8 CU configureert, is de verbindingslimiet 1678 (de limiet voor 8 CU).
Verbindingslimieten voor leesreplica's: Verbindingslimieten voor leesreplica's worden gesynchroniseerd met uw primaire computerinstellingen voor lezen en schrijven. Zie Leesreplica's beheren voor meer informatie.
Opmerking
Sommige verbindingen zijn gereserveerd voor systeem- en beheergebruik.
SHOW max_connections Daarom kan een hogere waarde worden weergegeven dan de maximumverbindingen die worden weergegeven in de bovenstaande tabel of in de rekenlade bewerken in de Lakebase-app. De waarden in de tabel en lade weerspiegelen het werkelijke aantal verbindingen dat beschikbaar is voor direct gebruik, en SHOW max_connections omvat gereserveerde verbindingen.
Richtlijnen voor het aanpassen van de grootte
Houd bij het selecteren van een rekenkracht rekening met de volgende factoren:
| Kenmerk | Aanbeveling |
|---|---|
| Querycomplexiteit | Complexe analytische query's profiteren van grotere rekenkracht |
| Gelijktijdige verbindingen | Meer verbindingen vereisen extra CPU en geheugen |
| gegevensvolume | Grotere gegevenssets hebben mogelijk meer geheugen nodig voor optimale prestaties |
| Reactietijd | Kritieke toepassingen vereisen mogelijk grotere berekeningen voor consistente prestaties |
Optimale groottestrategie
Selecteer een rekenkracht op basis van uw gegevensvereisten:
- Volledige gegevensset in het geheugen: kies een rekenkracht die uw volledige gegevensset in het geheugen kan bevatten voor de beste prestaties
- Werkset in het geheugen: Voor grote gegevenssets zorgt u ervoor dat uw veelgebruikte gegevens in het geheugen passen
- Verbindingslimieten: Selecteer een grootte die ondersteuning biedt voor de verwachte maximale gelijktijdige verbindingen
Automatisch schalen
Lakebase biedt ondersteuning voor rekenconfiguraties met een vaste grootte en automatische schaalaanpassing. Met automatisch schalen worden rekenresources dynamisch aangepast op basis van de vraag naar workloads, waardoor zowel de prestaties als de kosten worden geoptimaliseerd.
| Configuratietype | Description |
|---|---|
| Vaste grootte (0,5-32 CU) | Kies een vaste computergrootte die niet schaalbaar is met de workloadvraag. Beschikbaar voor berekeningen van 0,5 CU tot 32 CU |
| Automatisch schalen (0,5-32 CU) | Gebruik een schuifregelaar om minimale en maximale rekengrootten op te geven. Lakebase schaalt omhoog en omlaag binnen deze grenzen op basis van de huidige belasting. Beschikbaar voor computaties tot 32 CU |
| Grotere berekeningen met vaste grootte (36-112 CU) | Selecteer een grotere berekening met vaste grootte van 36 CU tot 112 CU. Deze grotere berekeningen zijn alleen beschikbaar als vaste grootten en bieden geen ondersteuning voor automatisch schalen |
Limiet voor automatisch schalen: Automatische schaalaanpassing wordt ondersteund voor berekeningen tot 32 CU. Voor workloads waarvoor meer dan 32 CU is vereist, zijn grotere berekeningen met vaste grootte van 36 CU tot 112 CU beschikbaar.
Automatische schaalaanpassing configureren
Als u automatische schaalaanpassing voor een berekening wilt in- of aanpassen, bewerkt u de berekening en gebruikt u de schuifregelaar om minimale en maximale rekengrootten in te stellen.
Zie Automatisch schalen voor een overzicht van hoe automatisch schalen werkt.
Overwegingen voor automatisch schalen
Voor optimale prestaties van automatisch schalen:
- Stel de minimum rekenkracht in die groot genoeg is om uw werkset in het geheugen te cachen.
- Houd er rekening mee dat er slechte prestaties kunnen optreden totdat de rekenkracht omhoog wordt geschaald en uw gegevens in de cache worden opgeslagen
- Uw verbindingslimieten zijn gebaseerd op de maximale rekenkracht in uw bereik voor automatisch schalen
Beperkingen voor automatisch schalen: het verschil tussen uw maximale en minimale rekenkracht mag niet groter zijn dan 16 CU (dat wil max - min ≤ 16 CUgezegd). U kunt bijvoorbeeld automatische schaalaanpassing configureren van 8 tot 24 CU, of van 16 tot 32 CU, maar niet van 0,5 tot 32 CU (wat een bereik van 31,5 CU is). Deze beperking zorgt voor beheerbaar schaalgedrag terwijl u nog steeds flexibiliteit biedt. Met de schuifregelaar in de Lakebase-app wordt deze beperking automatisch afgedwongen wanneer u uw bereik voor automatisch schalen configureert. Voor workloads waarvoor meer dan 32 CU is vereist, gebruikt u grotere berekeningen met een vaste grootte.
Schalen naar nul
De functie scale-to-zero van Lakebase zet automatisch een berekening over in een niet-actieve status na een periode van inactiviteit, waardoor de kosten voor databases die niet continu actief zijn, worden verlaagd.
| Configuratie | Description |
|---|---|
| Opschalen naar nul ingeschakeld | Compute wordt automatisch onderbroken na inactiviteit om de kosten te verlagen |
| Schalen naar nul uitgeschakeld | Onderhoud een 'always-active' rekenproces dat opstartlatentie elimineert |
Schaal naar nul configureren
Als u schaal naar nul wilt in- of aanpassen voor een berekening, bewerkt u de berekening en schakelt u de instelling voor schalen naar nul in. Wanneer deze optie is ingeschakeld, kunt u de time-out voor inactiviteit configureren.
Opmerking
Wanneer u een project maakt, wordt de production vertakking gemaakt met een rekenproces waarvoor standaard scale-to-zero is uitgeschakeld, wat betekent dat de berekening altijd actief blijft. U kunt indien nodig scale-to-zero inschakelen voor deze berekening.
Zie Schalen naar nul voor een overzicht van hoe schalen naar nul werkt.
Berekeningen maken en beheren
Berekeningen weergeven
Weergeven in de gebruikersinterface
Als u de berekeningen voor een vertakking wilt bekijken, gaat u naar de pagina Branches van uw project in de Lakebase-app en selecteert u een vertakking om het tabblad Computes weer te geven.
Op het tabblad Berekeningen wordt informatie weergegeven over alle berekeningen die zijn gekoppeld aan de vertakking. De informatie die op het tabblad Berekeningen wordt weergegeven, wordt beschreven in de volgende tabel.
| Het detail | Description |
|---|---|
| Rekentype | Het rekentype is primair (lezen/schrijven) of Leesreplica (alleen-lezen). Een vertakking kan één primaire berekening (lezen/schrijven) en meerdere leesreplica's (alleen-lezen) hebben. |
| Status | Huidige status: Actief of Onderbroken (wanneer de computing is onderbroken vanwege afschalen naar nul). Geeft de datum en tijd weer waarop de berekening is onderbroken. |
| UID | De door het systeem gegenereerde unieke id voor de berekening, die begint met een ep- voorvoegsel. Deze waarde wordt weergegeven in de hostnaam van de verbinding. Zie Compute-identificatoren. |
| grootte | De rekenkracht in rekeneenheden (CU). Toont één CU-waarde (bijvoorbeeld 8 CU) voor berekeningen met vaste grootte. Toont een bereik (bijvoorbeeld 8-16) voor berekeningen waarvoor automatisch schalen is ingeschakeld. |
| Laatst actief | De datum en tijd waarop de berekening voor het laatst actief was. |
Voor elke berekening kunt u het volgende doen:
- Klik op Verbinding maken om een verbindingsdialoogvenster te openen met verbindingsgegevens voor de vertakking die is gekoppeld aan de berekening. Het dialoogvenster bevat een wisselknop voor verbindingspooling voor native Postgres-wachtwoordrollen. Zie Verbinding maken met uw database en verbindingspooling gebruiken.
- Klik op Bewerken om de rekengrootte (vast of automatisch schalen) te wijzigen en de instellingen voor schaal naar nul te configureren. Zie Een berekening bewerken.
- Klik op het menupictogram voor toegang tot extra opties:
- Activiteit bewaken: Rekenactiviteit en prestatiegegevens weergeven. Zie Uw database controleren.
- Rekenproces opnieuw opstarten: start de berekening opnieuw om verbindingsproblemen op te lossen of configuratiewijzigingen toe te passen. Zie Een rekenproces opnieuw opstarten.
Als u een leesreplica-berekening wilt toevoegen aan de vertakking, klikt u op Leesreplica toevoegen. Leesreplica's zijn alleen-lezen-instanties die horizontale schaalvergroting mogelijk maken door leesworkloads van uw primaire instantie over te dragen. Zie Leesreplica's en Leesreplica's beheren.
Programmatisch een rekenproces ophalen
Voor meer informatie over een specifieke berekening met behulp van de Postgres-API:
Python SDK
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
# Get endpoint details
endpoint = w.postgres.get_endpoint(
name="projects/my-project/branches/production/endpoints/my-compute"
)
print(f"Endpoint: {endpoint.name}")
print(f"Type: {endpoint.status.endpoint_type}")
print(f"State: {endpoint.status.current_state}")
print(f"Host: {endpoint.status.hosts.host}")
print(f"Min CU: {endpoint.status.autoscaling_limit_min_cu}")
print(f"Max CU: {endpoint.status.autoscaling_limit_max_cu}")
Verkrijg in de SDK toegang tot de host via endpoint.status.hosts.host (niet endpoint.status.host).
Java SDK
import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.service.postgres.Endpoint;
WorkspaceClient w = new WorkspaceClient();
// Get endpoint details
Endpoint endpoint = w.postgres().getEndpoint(
"projects/my-project/branches/production/endpoints/my-compute"
);
System.out.println("Endpoint: " + endpoint.getName());
System.out.println("Type: " + endpoint.getStatus().getEndpointType());
System.out.println("State: " + endpoint.getStatus().getCurrentState());
System.out.println("Host: " + endpoint.getStatus().getHosts().getHost());
System.out.println("Min CU: " + endpoint.getStatus().getAutoscalingLimitMinCu());
System.out.println("Max CU: " + endpoint.getStatus().getAutoscalingLimitMaxCu());
CLI (Command Line Interface)
# Get endpoint details
databricks postgres get-endpoint projects/my-project/branches/production/endpoints/my-compute --output json | jq
curl
curl "$WORKSPACE/api/2.0/postgres/projects/my-project/branches/production/endpoints/my-compute" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq
Berekeningen programmatisch weergeven
Alle berekeningen en leesreplica's voor een vertakking weergeven met behulp van de Postgres-API:
Python SDK
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
# List all endpoints for a branch
endpoints = list(w.postgres.list_endpoints(
parent="projects/my-project/branches/production"
))
for endpoint in endpoints:
print(f"Endpoint: {endpoint.name}")
print(f" Type: {endpoint.status.endpoint_type}")
print(f" State: {endpoint.status.current_state}")
print(f" Host: {endpoint.status.hosts.host}")
print(f" CU Range: {endpoint.status.autoscaling_limit_min_cu}-{endpoint.status.autoscaling_limit_max_cu}")
print()
Verkrijg in de SDK toegang tot de host via endpoint.status.hosts.host (niet endpoint.status.host).
Java SDK
import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.service.postgres.*;
WorkspaceClient w = new WorkspaceClient();
// List all endpoints for a branch
for (Endpoint endpoint : w.postgres().listEndpoints("projects/my-project/branches/production")) {
System.out.println("Endpoint: " + endpoint.getName());
System.out.println(" Type: " + endpoint.getStatus().getEndpointType());
System.out.println(" State: " + endpoint.getStatus().getCurrentState());
System.out.println(" Host: " + endpoint.getStatus().getHosts().getHost());
System.out.println(" CU Range: " + endpoint.getStatus().getAutoscalingLimitMinCu() +
"-" + endpoint.getStatus().getAutoscalingLimitMaxCu());
System.out.println();
}
CLI (Command Line Interface)
# List endpoints for a branch
databricks postgres list-endpoints projects/my-project/branches/production --output json | jq
curl
curl "$WORKSPACE/api/2.0/postgres/projects/my-project/branches/production/endpoints" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq
Opmerking
Typische vertakkingsconfiguraties:
- 1 eindpunt: alleen primaire rekenkracht voor lezen/schrijven
- 2+ eindpunten: Primaire rekenkracht plus een of meerdere leesreplica's
Een rekenproces bewerken
U kunt een berekening bewerken om de grootte, de configuratie voor automatisch schalen of de instellingen voor schaal naar nul te wijzigen. Rekennamen hebben het kenmerk Alleen-lezen en kunnen niet worden gewijzigd.
Een berekening bewerken:
UI (Gebruikersinterface)
- Navigeer naar het tabblad Computes van uw tak in de Lakebase-app.
- Klik op Bewerken voor de berekening, pas uw instellingen aan en klik op Opslaan.
Python SDK
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.postgres import Endpoint, EndpointSpec, EndpointType, FieldMask
w = WorkspaceClient()
# Update a single field (max CU)
endpoint_spec = EndpointSpec(endpoint_type=EndpointType.ENDPOINT_TYPE_READ_WRITE, autoscaling_limit_max_cu=6.0)
endpoint = Endpoint(
name="projects/my-project/branches/production/endpoints/my-compute",
spec=endpoint_spec
)
result = w.postgres.update_endpoint(
name="projects/my-project/branches/production/endpoints/my-compute",
endpoint=endpoint,
update_mask=FieldMask(field_mask=["spec.autoscaling_limit_max_cu"])
).wait()
print(f"Updated max CU: {result.status.autoscaling_limit_max_cu}")
Als u meerdere velden wilt bijwerken, moet u deze opnemen in zowel de specificatie als het updatemasker:
# Update multiple fields (min and max CU)
endpoint_spec = EndpointSpec(
endpoint_type=EndpointType.ENDPOINT_TYPE_READ_WRITE,
autoscaling_limit_min_cu=1.0,
autoscaling_limit_max_cu=8.0
)
endpoint = Endpoint(
name="projects/my-project/branches/production/endpoints/my-compute",
spec=endpoint_spec
)
result = w.postgres.update_endpoint(
name="projects/my-project/branches/production/endpoints/my-compute",
endpoint=endpoint,
update_mask=FieldMask(field_mask=[
"spec.autoscaling_limit_min_cu",
"spec.autoscaling_limit_max_cu"
])
).wait()
print(f"Updated min CU: {result.status.autoscaling_limit_min_cu}")
print(f"Updated max CU: {result.status.autoscaling_limit_max_cu}")
Java SDK
import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.service.postgres.*;
import com.google.protobuf.FieldMask;
WorkspaceClient w = new WorkspaceClient();
// Update a single field (max CU)
EndpointSpec endpointSpec = new EndpointSpec()
.setAutoscalingLimitMaxCu(6.0);
FieldMask updateMask = FieldMask.newBuilder()
.addPaths("spec.autoscaling_limit_max_cu")
.build();
w.postgres().updateEndpoint(
new UpdateEndpointRequest()
.setName("projects/my-project/branches/production/endpoints/my-compute")
.setEndpoint(new Endpoint().setSpec(endpointSpec))
.setUpdateMask(updateMask)
);
System.out.println("Update initiated");
Als u meerdere velden wilt bijwerken, moet u deze opnemen in zowel de specificatie als het updatemasker:
// Update multiple fields (min and max CU)
EndpointSpec endpointSpec = new EndpointSpec()
.setAutoscalingLimitMinCu(1.0)
.setAutoscalingLimitMaxCu(8.0);
FieldMask updateMask = FieldMask.newBuilder()
.addPaths("spec.autoscaling_limit_min_cu")
.addPaths("spec.autoscaling_limit_max_cu")
.build();
w.postgres().updateEndpoint(
new UpdateEndpointRequest()
.setName("projects/my-project/branches/production/endpoints/my-compute")
.setEndpoint(new Endpoint().setSpec(endpointSpec))
.setUpdateMask(updateMask)
);
System.out.println("Update initiated");
CLI (Command Line Interface)
# Update a single field (max CU)
databricks postgres update-endpoint projects/my-project/branches/production/endpoints/my-compute spec.autoscaling_limit_max_cu \
--json '{
"spec": {
"autoscaling_limit_max_cu": 6.0
}
}'
# Update multiple fields (min and max CU)
databricks postgres update-endpoint projects/my-project/branches/production/endpoints/my-compute "spec.autoscaling_limit_min_cu,spec.autoscaling_limit_max_cu" \
--json '{
"spec": {
"autoscaling_limit_min_cu": 1.0,
"autoscaling_limit_max_cu": 8.0
}
}'
curl
# Update a single field (max CU)
curl -X PATCH "$WORKSPACE/api/2.0/postgres/projects/my-project/branches/production/endpoints/my-compute?update_mask=spec.autoscaling_limit_max_cu" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"name": "projects/my-project/branches/production/endpoints/my-compute",
"spec": {
"autoscaling_limit_max_cu": 6.0
}
}' | jq
# Update multiple fields (min and max CU)
curl -X PATCH "$WORKSPACE/api/2.0/postgres/projects/my-project/branches/production/endpoints/my-compute?update_mask=spec.autoscaling_limit_min_cu,spec.autoscaling_limit_max_cu" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"name": "projects/my-project/branches/production/endpoints/my-compute",
"spec": {
"autoscaling_limit_min_cu": 1.0,
"autoscaling_limit_max_cu": 8.0
}
}' | jq
Opmerking
Wijzigingen in de rekeninstellingen worden onmiddellijk van kracht en kunnen korte verbindingsonderbrekingen veroorzaken tijdens het opnieuw opstarten.
Een rekenproces opnieuw starten
Start een berekening opnieuw om updates toe te passen, prestatieproblemen op te lossen of configuratiewijzigingen op te halen.
Een rekenproces opnieuw starten:
- Navigeer naar het tabblad Computes van uw tak in de Lakebase-app.
- Klik op het
voor het rekentoestel, selecteer Opnieuw opstarten en bevestig de bewerking.
Belangrijk
Als u een rekenproces opnieuw start, worden alle actieve verbindingen onderbroken. Configureer uw toepassingen om automatisch opnieuw verbinding te maken om langdurige onderbrekingen te voorkomen.