Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu kılavuz, Lakebase uç noktalarınız için yüksek kullanılabilirliği etkinleştirmeyi ve yönetmeyi kapsar. Nasıl yüksek kullanılabilirliğin çalıştığı ve ikincil işlem örneklerinin tek başına okuma çoğaltmalarından nasıl farklı olduğu hakkında arka plan bilgisi için bkz. Yüksek kullanılabilirlik.
Yüksek kullanılabilirliği etkinleştirme
Yüksek kullanılabilirliği etkinleştirmek için kullanıcı arabiriminde işlem türünü ve HA yapılandırmasını ayarlayın veya uç noktaları EndpointGroupSpec API aracılığıyla yapılandırın.
Önkoşullar
- Sıfıra ölçekleme devre dışı bırakılmalıdır. Kullanıcı arabiriminde, düzenleme işlem çekmecesinde Ölçek'i sıfır olarak sıfır olarak Kapalı olarak ayarlayın. API aracılığıyla, uç nokta belirtiminde ayarlayın
no_suspension: true(güncelleştirme maskesi olarak kullanınspec.suspension).
Kullanıcı Arayüzü (UI)
Proje oluşturduktan sonra, işlem çekmecesini düzenlemek için proje panosundaki birincil işlem bağlantısına tıklayın.
İşlem türü'nüYüksek kullanılabilirlik olarak ayarlayın, ardından Yüksek kullanılabilirlik bölümünden bir Yapılandırma seçin:
- 2 (1 birincil, 1 ikincil),
- 3 (1 birincil, 2 ikincil),
- veya 4 (1 birincil, 3 ikincil) toplam işlem örneği.
Lakebase, farklı kullanılabilirlik alanlarında ikincil işlem örnekleri sağlar. Tüm işlem örnekleri etkinleştirildikten sonra uç nokta otomatik olarak devre aktarımı gerçekleştirir.
Python SDK'sı
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
}
}
}'
Kıvrım
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
İkincil işlem örneklerine salt okunur erişimi yapılandırma
Salt okunur işlem örneklerine erişimi izin ver ikincil işlem örneklerinin -ro bağlantı dizesi aracılığıyla okuma trafiğine hizmet verip vermediğini denetler.
Kullanıcı Arayüzü (UI)
- İşlemler sekmesinde, birincil işlemde Düzenle'ye tıklayın.
- Yüksek kullanılabilirlik altında, Salt okunur işlem örneklerine erişime izin ver seçeneğini işaretleyin veya işaretini kaldırın.
- Kaydet'e tıklayın.
Python SDK'sı
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
}
}
}'
Kıvrım
# 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
Uyarı
Yalnızca bir ikincil işlem örneği ve okuma erişimi etkinleştirildiğinde, -ro bağlantı dizesi üzerindeki tüm okuma trafiği, bir değiştirme eklenene kadar yük devretme sırasında kesilir. Dayanıklı okuma erişimi için, okuma erişimi etkin iki veya daha fazla ikincil işlem örneği yapılandırın.
İkincil işlem örneklerinin sayısını değiştirme
Kullanıcı Arayüzü (UI)
- İşlemler sekmesinde, birincil işlemde Düzenle'ye tıklayın.
- Yüksek kullanılabilirlik bölümünde açılan listeden yeni bir İşlem yapılandırması seçin (toplam işlem örneği sayısı 2, 3 veya 4).
- Kaydet'e tıklayın.
Uyarı
Yüksek kullanılabilirliği devre dışı bırakmak için İşlem türü'nüyeniden Tek işlem olarak ayarlayın. Bu, tüm ikincil işlem örneklerini kaldırır ve uç noktanız tek işlem yapılandırmasına döner.
Python SDK'sı
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 }
}
}'
Kıvrım
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
Yüksek kullanılabilirlik durumunu ve rollerini görüntüleme
İşlemler sekmesi, yüksek kullanılabilirlik yapılandırmanızdaki her işlem örneğini geçerli rolü, durumu ve erişim düzeyiyle gösterir.
| Köşe yazısı | Değerler |
|---|---|
| Rol | Birincil, İkincil |
| Statü | Başlıyor, Etkin |
| Access | Okuma/Yazma (birincil), Salt okunur (erişimi etkinleştirilmiş ikincil işlem örneği), Devre Dışı (okuma erişimi olmayan ikincil işlem örneği) |
Birincil işlem üst bilgisi ayrıca uç nokta kimliğini, otomatik ölçeklendirme aralığını ve ikincil sayıyı (örneğin 8 ↔ 16 CU · 3 secondaries) gösterir.
Bağlantı dizelerini alma
Kullanıcı Arayüzü (UI)
Bağlantı ayrıntıları iletişim kutusunu açmak için birincil bilgi işlem aygıtında Bağlan'a tıklayın. Hesaplama açılır listesi, yüksek kullanılabilirlik uç noktanız için her iki bağlantı seçeneğini de listeler.
| Hesaplama seçeneği | Bağlantı dizesi | Kullanmak için |
|---|---|---|
Primary (name) ● Active |
{endpoint-id}.database.{region}.databricks.com |
Tüm yazma ve okuma/yazma bağlantıları |
Secondary (name) ● Active RO |
{endpoint-id}-ro.database.{region}.databricks.com |
İkincil işlem örneklerine okuma yükünü aktarın |
-ro bağlantı dizesi yalnızca Salt okunur işlem örneklerine erişim izni ver etkinleştirildiğinde kullanılabilir.
Python SDK'sı
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}'
Kıvrım
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}'
Eksiksiz bağlantı dizesi başvurusu için bkz. Bağlantı Dizeleri.
Sonraki Adımlar
- Yüksek kullanılabilirlik — kavramlar, yük devretme davranışı ve en iyi yöntemler
- Okuma çoğaltmaları — yüksek kullanılabilirlik olmadan ek okuma kapasitesi için tek başına okuma çoğaltmaları
- Bağlantı dizeleri