Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Importante
La scalabilità automatica di Lakebase è la versione più recente di Lakebase, con calcolo autoscalabile, scalabilità fino a zero, ramificazione e ripristino immediato. Per le aree supportate, vedere Disponibilità dell'area. Se sei un utente provisioning di Lakebase, vedere Lakebase provisioning.
Questa guida illustra l'abilitazione e la gestione della disponibilità elevata per gli endpoint Lakebase. Per informazioni generali sul funzionamento della disponibilità elevata e sul modo in cui le istanze di calcolo secondarie differiscono dalle repliche di lettura autonome, vedere Disponibilità elevata.
Abilitare la disponibilità elevata
Per abilitare la disponibilità elevata, impostare il tipo di calcolo e la configurazione a disponibilità elevata nell'interfaccia utente o configurare l'endpoint tramite l'API EndpointGroupSpec .
Prerequisiti
- Scala a zero deve essere disabilitata. Nell'interfaccia utente impostare Scale su zero su Off nel pannello di calcolo di modifica. Tramite l'API impostare
no_suspension: truenella specifica dell'endpoint (usarespec.suspensioncome maschera di aggiornamento).
INTERFACCIA UTENTE
Dopo aver creato un progetto, fare clic sul collegamento di calcolo primario dal dashboard del progetto per aprire il pannello di calcolo di modifica.
Dashboard del progetto che mostra il ramo di produzione con il suo collegamento computazionale principale
Impostare Tipo di calcolo su Disponibilità elevata, quindi scegliere una configurazione in Disponibilità elevata:
- 2 (1 primario, 1 secondario),
- 3 (1 primario, 2 secondari)
- o 4 (1 istanze di calcolo primarie, 3 secondarie) totali.
Lakebase effettua il provisioning di istanze di calcolo secondarie in zone di disponibilità diverse. Quando tutte le istanze di calcolo sono attive, l'endpoint ha il failover automatico.
PYTHON SDK
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.postgres import (
Endpoint, EndpointSpec, EndpointType, EndpointGroupSpec, FieldMask
)
w = WorkspaceClient()
endpoint_name = "projects/my-project/branches/production/endpoints/my-endpoint"
result = w.postgres.update_endpoint(
name=endpoint_name,
endpoint=Endpoint(
name=endpoint_name,
spec=EndpointSpec(
endpoint_type=EndpointType.ENDPOINT_TYPE_READ_WRITE,
group=EndpointGroupSpec(
min=2,
max=2,
enable_readable_secondaries=True
)
)
),
update_mask=FieldMask(field_mask=["spec.group"])
).wait()
print(f"Group size: {result.status.group.max}")
print(f"Host: {result.status.hosts.host}")
print(f"Read-only host: {result.status.hosts.read_only_host}")
CLI
databricks postgres update-endpoint \
projects/my-project/branches/production/endpoints/my-endpoint \
"spec.group" \
--json '{
"spec": {
"group": {
"min": 2,
"max": 2,
"enable_readable_secondaries": true
}
}
}'
curva
curl -X PATCH "$DATABRICKS_HOST/api/2.0/postgres/projects/my-project/branches/production/endpoints/my-endpoint?update_mask=spec.group" \
-H "Authorization: Bearer $DATABRICKS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "projects/my-project/branches/production/endpoints/my-endpoint",
"spec": {
"group": {
"min": 2,
"max": 2,
"enable_readable_secondaries": true
}
}
}' | jq
Configurare l'accesso in sola lettura alle istanze di calcolo secondarie
Consenti l'accesso alle istanze di calcolo di sola lettura controlla se le istanze di calcolo secondarie gestiscono il traffico di lettura tramite la stringa di connessione -ro.
INTERFACCIA UTENTE
- Nella scheda Calcolo fare clic su Modifica nell'ambiente di calcolo primario.
- In Disponibilità elevata, selezionare o deselezionare Consenti l'accesso alle istanze di calcolo di sola lettura.
- Fare clic su Salva.
PYTHON SDK
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.postgres import (
Endpoint, EndpointSpec, EndpointType, EndpointGroupSpec, FieldMask
)
w = WorkspaceClient()
endpoint_name = "projects/my-project/branches/production/endpoints/my-endpoint"
# Get current group size first
current = w.postgres.get_endpoint(name=endpoint_name)
current_size = current.status.group.max
w.postgres.update_endpoint(
name=endpoint_name,
endpoint=Endpoint(
name=endpoint_name,
spec=EndpointSpec(
endpoint_type=EndpointType.ENDPOINT_TYPE_READ_WRITE,
group=EndpointGroupSpec(
min=current_size,
max=current_size,
enable_readable_secondaries=True # set False to disable
)
)
),
update_mask=FieldMask(field_mask=["spec.group.enable_readable_secondaries"])
).wait()
CLI
# Replace 2 with your current group size
databricks postgres update-endpoint \
projects/my-project/branches/production/endpoints/my-endpoint \
"spec.group.enable_readable_secondaries" \
--json '{
"spec": {
"group": {
"min": 2,
"max": 2,
"enable_readable_secondaries": true
}
}
}'
curva
# Replace 2 with your current group size
curl -X PATCH "$DATABRICKS_HOST/api/2.0/postgres/projects/my-project/branches/production/endpoints/my-endpoint?update_mask=spec.group.enable_readable_secondaries" \
-H "Authorization: Bearer $DATABRICKS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "projects/my-project/branches/production/endpoints/my-endpoint",
"spec": {
"group": {
"min": 2,
"max": 2,
"enable_readable_secondaries": true
}
}
}' | jq
Avviso
Con solo un'istanza di calcolo secondaria e l'accesso in lettura abilitato, tutto il traffico in lettura nella stringa di connessione -ro viene interrotto durante un failover fino a quando non viene aggiunta un'istanza sostitutiva. Per l'accesso in lettura resiliente, configurare due o più istanze di calcolo secondarie con l'accesso in lettura abilitato.
Modificare il numero di istanze di calcolo secondarie
INTERFACCIA UTENTE
- Nella scheda Calcolo fare clic su Modifica nell'ambiente di calcolo primario.
- In Disponibilità elevata scegliere una nuova configurazione di calcolo dall'elenco a discesa (2, 3 o 4 istanze di calcolo totali).
- Fare clic su Salva.
Annotazioni
Per disabilitare la disponibilità elevata, impostare il tipo di calcolo su Calcolo singolo. In questo modo vengono rimosse tutte le istanze di calcolo secondarie e l'endpoint torna a una configurazione a calcolo singolo.
PYTHON SDK
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.postgres import (
Endpoint, EndpointSpec, EndpointType, EndpointGroupSpec, FieldMask
)
w = WorkspaceClient()
endpoint_name = "projects/my-project/branches/production/endpoints/my-endpoint"
# Scale to 3 compute instances (1 primary + 2 secondaries)
w.postgres.update_endpoint(
name=endpoint_name,
endpoint=Endpoint(
name=endpoint_name,
spec=EndpointSpec(
endpoint_type=EndpointType.ENDPOINT_TYPE_READ_WRITE,
group=EndpointGroupSpec(min=3, max=3)
)
),
update_mask=FieldMask(field_mask=["spec.group.min", "spec.group.max"])
).wait()
CLI
# Scale to 3 compute instances (1 primary + 2 secondaries)
databricks postgres update-endpoint \
projects/my-project/branches/production/endpoints/my-endpoint \
"spec.group.min,spec.group.max" \
--json '{
"spec": {
"group": { "min": 3, "max": 3 }
}
}'
curva
curl -X PATCH "$DATABRICKS_HOST/api/2.0/postgres/projects/my-project/branches/production/endpoints/my-endpoint?update_mask=spec.group.min,spec.group.max" \
-H "Authorization: Bearer $DATABRICKS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "projects/my-project/branches/production/endpoints/my-endpoint",
"spec": {
"group": { "min": 3, "max": 3 }
}
}' | jq
Visualizzare lo stato e i ruoli a disponibilità elevata
La scheda Calcolo mostra ogni istanza di calcolo nella configurazione a disponibilità elevata con il ruolo, lo stato e il livello di accesso correnti.
| colonna | Valori |
|---|---|
| Role | Primario, Secondario |
| Stato | Avvio, Attivo |
| Access | Lettura/scrittura (primaria), sola lettura (istanza di calcolo secondaria con accesso abilitato), Disabilitata (istanza di calcolo secondaria senza accesso in lettura) |
L'intestazione di calcolo primaria mostra anche l'ID endpoint, l'intervallo di scalabilità automatica e il conteggio secondario ,ad esempio 8 ↔ 16 CU · 3 secondaries.
Ottenere stringhe di connessione
INTERFACCIA UTENTE
Fare clic su Connetti nel calcolo primario per aprire la finestra di dialogo dei dettagli della connessione. L'elenco a discesa Compute contiene entrambe le opzioni della connessione per l'endpoint ad alta disponibilità.
| Opzione di calcolo | Stringa di connessione | Usare per |
|---|---|---|
Primary (name) ● Active |
{endpoint-id}.database.{region}.databricks.com |
Tutte le operazioni di scrittura e le connessioni di lettura/scrittura |
Secondary (name) ● Active RO |
{endpoint-id}-ro.database.{region}.databricks.com |
Eseguire l'offload in istanze di calcolo secondarie |
La stringa di connessione -ro è disponibile solo quando Consenti l'accesso alle istanze di calcolo di sola lettura è attivato.
PYTHON SDK
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
endpoint = w.postgres.get_endpoint(
name="projects/my-project/branches/production/endpoints/my-endpoint"
)
print(f"Read/write host: {endpoint.status.hosts.host}")
print(f"Read-only host: {endpoint.status.hosts.read_only_host}")
CLI
databricks postgres get-endpoint \
projects/my-project/branches/production/endpoints/my-endpoint \
-o json | jq '{rw_host: .status.hosts.host, ro_host: .status.hosts.read_only_host}'
curva
curl -X GET "$DATABRICKS_HOST/api/2.0/postgres/projects/my-project/branches/production/endpoints/my-endpoint" \
-H "Authorization: Bearer $DATABRICKS_TOKEN" \
| jq '{rw_host: .status.hosts.host, ro_host: .status.hosts.read_only_host}'
Per un riferimento completo alle stringhe di connessione, vedere Stringhe di connessione.
Passaggi successivi
- Disponibilità elevata : concetti, comportamento di failover e procedure consigliate
- Repliche di lettura autonome per una capacità di lettura aggiuntiva senza alta disponibilità
- stringhe di connessione