Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Von Bedeutung
Lakebase Autoscaling ist die neueste Version von Lakebase mit automatischer Berechnung, Skalierung bis Null, Verzweigung und sofortiger Wiederherstellung. Unterstützte Regionen finden Sie unter "Verfügbarkeit der Region". Wenn Sie ein Lakebase Provisioned-Benutzer sind, lesen Sie Lakebase Provisioned.
In diesem Handbuch wird beschrieben, wie Sie hohe Verfügbarkeit für Ihre Lakebase-Endpunkte aktivieren und verwalten können. Hintergrundinformationen dazu, wie hochverfügbarkeit funktioniert und wie sich sekundäre Computeinstanzen von eigenständigen Lesereplikaten unterscheiden, finden Sie unter "Hohe Verfügbarkeit".
Hohe Verfügbarkeit aktivieren
Um hohe Verfügbarkeit zu ermöglichen, legen Sie den Computetyp und die HA-Konfiguration in der Benutzeroberfläche fest, oder konfigurieren Sie den Endpunkt EndpointGroupSpec über die API-Schnittstelle.
Voraussetzungen
- Die Skalierung auf Null muss deaktiviert sein. In der Benutzeroberfläche Skalieren auf 0 in der Schublade für Berechnungsänderungen auf Aus festlegen. Legen Sie über die API in der Endpunktspezifikation fest
no_suspension: true(als Updatemaske verwendenspec.suspension).
Benutzeroberfläche
Klicken Sie nach dem Erstellen eines Projekts auf den primären Compute-Link aus dem Projektdashboard, um die Compute-Bearbeitungsschublade zu öffnen.
Legen Sie den Computetyp auf "Hohe Verfügbarkeit" fest, und wählen Sie dann unter "Hohe Verfügbarkeit" eine Konfiguration aus:
- 2 (1 primär, 1 sekundär),
- 3 (1 primär, 2 sekundär)
- oder 4 (1 primäre Instanz, 3 sekundäre Instanzen) Recheninstanzen insgesamt.
Lakebase stellt sekundäre Compute-Instanzen in verschiedenen Verfügbarkeitszonen bereit. Sobald alle Computeinstanzen aktiv sind, verfügt der Endpunkt über ein automatisches Failover.
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
}
}
}'
cURL
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
Konfigurieren des schreibgeschützten Zugriffs auf sekundäre Compute-Instanzen
Erlauben Sie den Zugriff auf schreibgeschützte Computeinstanzen steuert, ob sekundäre Computeinstanzen Lesedatenverkehr über die -ro Verbindungszeichenfolge bedienen.
Benutzeroberfläche
- Klicken Sie auf der Registerkarte "Computes " auf " Bearbeiten " auf der primären Berechnung.
- Aktivieren oder deaktivieren Sie unter
"Hohe Verfügbarkeit" die Option "Zugriff auf schreibgeschützte Computeinstanzen zulassen" . - Klicke auf Speichern.
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
}
}
}'
cURL
# 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
Warnung
Wenn nur eine sekundäre Computeinstanz vorhanden ist und Lesezugriff aktiviert ist, wird der gesamte Lesedatenverkehr in der -ro Verbindungszeichenfolge während eines Failovers unterbrochen, bis ein Ersatz hinzugefügt wird. Konfigurieren Sie für einen robusten Lesezugriff zwei oder mehr sekundäre Computeinstanzen mit aktiviertem Lesezugriff.
Ändern der Anzahl der sekundären Computeinstanzen
Benutzeroberfläche
- Klicken Sie auf der Registerkarte "Computes " auf " Bearbeiten " auf der primären Berechnung.
- Wählen Sie unter "Hohe Verfügbarkeit" eine neue Computekonfiguration aus der Dropdownliste aus (2, 3 oder 4 Computeinstanzen insgesamt).
- Klicke auf Speichern.
Hinweis
Um die hohe Verfügbarkeit zu deaktivieren, legen Sie den Computetyp auf single compute zurück. Dadurch werden alle sekundären Computeinstanzen entfernt, und Ihr Endpunkt kehrt zu einer Konfiguration mit einer einzelnen Berechnung zurück.
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 }
}
}'
cURL
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
Status und Rollen der hohen Verfügbarkeit anzeigen
Auf der Registerkarte "Computes" wird jede Computeinstanz in Ihrer Hochverfügbarkeitskonfiguration mit der aktuellen Rolle, dem Status und der Zugriffsebene angezeigt.
| Kolumne | Werte |
|---|---|
| Rolle | Primär, sekundär |
| Status | Start, Aktiv |
| Access | Lese-/Schreibzugriff (primär), Nur-Lesezugriff (sekundäre Instanz für Computing mit aktiviertem Zugriff), Deaktiviert (sekundäre Instanz für Computing ohne Lesezugriff) |
Der primäre Computeheader zeigt auch die Endpunkt-ID, den automatischen Skalierungsbereich und die sekundäre Anzahl an (z. B. 8 ↔ 16 CU · 3 secondaries).
Abrufen von Verbindungszeichenfolgen
Benutzeroberfläche
Klicken Sie auf "Verbinden" auf dem primären Rechner, um das Dialogfeld "Verbindungsdetails" zu öffnen. Die Compute-Dropdownliste listet beide Verbindungsoptionen für Ihren Endpunkt mit hoher Verfügbarkeit auf.
| Rechenoption | Verbindungszeichenfolge | Verwendung für |
|---|---|---|
Primary (name) ● Active |
{endpoint-id}.database.{region}.databricks.com |
Alle Schreibverbindungen und Lese-/Schreibverbindungen |
Secondary (name) ● Active RO |
{endpoint-id}-ro.database.{region}.databricks.com |
Auslagern des Lesens auf sekundäre Compute-Instanzen |
Die -ro Verbindungszeichenfolge ist nur verfügbar, wenn Zugriff auf schreibgeschützte Compute-Instanzen erlauben aktiviert ist.
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}'
cURL
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}'
Vollständige Verbindungszeichenfolge Referenz finden Sie unter Connection strings.
Nächste Schritte
- Hohe Verfügbarkeit – Konzepte, Failoververhalten und bewährte Methoden
- Lesereplikate – eigenständige Lesereplikate für zusätzliche Lesekapazität ohne Gewährleistung der Hochverfügbarkeit
- Verbindungszeichenfolgen