Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Usługa obliczeniowa to zwirtualizowana usługa, która obsługuje Postgres dla projektów Lakebase. Każdy oddział ma jedno podstawowe obliczenie (z możliwością odczytu i zapisu). Obliczenia są wymagane do nawiązania połączenia z gałęzią i uzyskania dostępu do jej danych. Aby zapoznać się z omówieniem relacji obliczeń i punktów końcowych, zobacz Obliczenia i punkty końcowe.
Informacje o obliczeniach
Omówienie obliczeń
Zasoby obliczeniowe zapewniają moc obliczeniową i pamięć wymaganą do wykonywania zapytań, zarządzania połączeniami i obsługi operacji bazy danych. Każdy projekt ma podstawowe obliczenia odczytu i zapisu dla swojej gałęzi domyślnej.
Aby nawiązać połączenie z bazą danych w gałęzi, należy użyć obliczeń skojarzonych z tą gałęzią. Większe obliczenia zużywają więcej godzin obliczeniowych w tym samym okresie aktywnego czasu niż mniejsze obliczenia.
Identyfikatory obliczeniowe
Każde środowisko obliczeniowe ma trzy identyfikatory, dostępne z menu Pobierz identyfikator na karcie Obliczenia:
| Identyfikator | Źródło | Przykład | Używane w |
|---|---|---|---|
| Nazwa | Identyfikator punktu końcowego ustawiony na primary dla domyślnego środowiska obliczeniowego. Określony przez użytkownika podczas tworzenia punktów końcowych za pośrednictwem interfejsu API. |
primary |
Ścieżka zasobu interfejsu API (.../endpoints/primary) |
| UID | Wygenerowany przez system | ep-sweet-butterfly-y2nm75e1 |
Nazwa hosta połączenia |
| Nazwa zasobu | Pełna ścieżka interfejsu API | projects/my-project/branches/production/endpoints/primary |
Wywołania interfejsu API |
Nazwa hosta w parametry połączenia używa UID a nie nazwy obliczeniowej.
Ustalanie rozmiaru zasobów obliczeniowych
Dostępne rozmiary obliczeniowe
Usługa Lakebase Postgres obsługuje następujące rozmiary obliczeniowe:
- Skalowanie automatyczne oblicza: od 0,5 CU do 64 CU (0,5, a następnie liczba całkowita zwiększa się: 1, 2, 3... 64)
- Większe jednostki obliczeniowe o stałej wielkości: od 65 CU do 112 CU
Uwaga / Notatka
Aplikacja Lakebase wyświetla podzbiór często używanych rozmiarów. Korzystając z interfejsu API Postgres, narzędzia Terraform, pakietów zasobów usługi Databricks lub zestawu SDK usługi Databricks, można ustawić dowolną wartość całkowitą CU: 1–64 na potrzeby obliczeń skalowania automatycznego i 65–112 dla większych obliczeń o stałym rozmiarze.
Co znajduje się w jednostce obliczeniowej?
Każda jednostka obliczeniowa (CU) przydziela około 2 GB pamięci RAM dla instancji bazy danych wraz ze wszystkimi skojarzonymi zasobami CPU i lokalnymi dyskami SSD. Skalowanie w górę zwiększa te zasoby liniowo. Usługa Postgres dystrybuuje przydzieloną pamięć między wieloma składnikami:
- Bufory pamięci bazy danych
- Pamięć procesu roboczego
- Inne procesy ze stałymi wymaganiami dotyczącymi pamięci
Wydajność różni się w zależności od rozmiaru danych i złożoności zapytań. Przed skalowaniem, przetestuj i zoptymalizuj zapytania. Pamięć skalują się automatycznie.
Specyfikacje obliczeniowe
| Jednostki obliczeniowe | RAM | Maksymalna liczba połączeń |
|---|---|---|
| 0,5 CU | Około 1 GB | 105 |
| 1 CU | około 2 GB | 218 |
| 2 jednostki obliczeniowe (CU) | ~4 GB | 443 |
| 3 jednostki obliczeniowe (CU) | ~6 GB | 668 |
| 4 jednostki obliczeniowe (CU) | ~8 GB | 894 |
| 5 CU | ~10 GB | 1119 |
| 6 CU (jeśli CU wymaga wyjaśnienia lub ma polski odpowiednik, należy to dodać) | ~12 GB | 1344 |
| 7 CU | ~14 GB | 1570 |
| 8 Jednostki Obliczeniowe (CU) | ~16 GB | 1795 |
| 9 CU | ~18 GB | 2020 |
| 10 Jednostek Obliczeniowych (CU) | ~20 GB | 2246 |
| 12 CU | ~24 GB | 2696 |
| 14 CU | ~28 GB | 3147 |
| 16 jednostek obliczeniowych | ~32 GB | 3597 |
| 24 jednostki obliczeniowe (CU) | ~48 GB | 3993 |
| 28 jednostek obliczeniowych | ~56 GB | 3993 |
| 32 jednostki obliczeniowe (CU) | ~64 GB | 3993 |
| 36 jednostek CU | ~72 GB | 3993 |
| 40 jednostki obliczeniowe | ~80 GB | 3993 |
| 44 jednostki obliczeniowe (CU) | ~88 GB | 3993 |
| 48 jednostek obliczeniowych (CU) | ~96 GB | 3993 |
| 52 CU | ~104 GB | 3993 |
| 56 Jednostek Obliczeniowych (CU) | ~112 GB | 3993 |
| 60 jednostek obliczeniowych (CU) | ~120 GB | 3993 |
| 64 Jednostek Obliczeniowych (CU) | ~128 GB | 3993 |
| 72 jednostek obliczeniowych (CU) | ~144 GB | 3993 |
| 80 jednostek obliczeniowych (CU) | ~160 GB | 3993 |
| 88 CU | ~176 GB | 3993 |
| 96 CU | ~192 GB | 3993 |
| 104 CU | ~208 GB | 3993 |
| 112 CU | ~224 GB | 3993 |
Limity połączeń dla jednostek obliczeniowych z automatycznym skalowaniem: Gdy włączone jest automatyczne skalowanie, maksymalna liczba połączeń jest określana przez mniejszą z dwóch wartości: maksymalną liczbę CU i 8× minimalną liczbę CU. Jeśli na przykład skonfigurujesz skalowanie automatyczne z zakresu od 2 do 8 CU, limit połączenia wynosi 1795 (limit dla 8 cu).
Limity połączeń repliki do odczytu: Limity połączeń przetwarzania repliki do odczytu są synchronizowane z podstawowymi ustawieniami przetwarzania operacji odczytu i zapisu. Aby uzyskać szczegółowe informacje, zobacz Zarządzanie replikami do odczytu .
Uwaga / Notatka
Niektóre połączenia są zarezerwowane do użytku systemowego i administracyjnego. Z tego powodu SHOW max_connections może być wyświetlana wyższa wartość niż Maksymalna liczba połączeń pokazana w powyższej tabeli lub w sekcji Edytowanie zasobów obliczeniowych w aplikacji Lakebase. Wartości w tabeli i szufladzie odzwierciedlają rzeczywistą liczbę połączeń dostępnych do bezpośredniego użycia, a jednocześnie SHOW max_connections zawiera połączenia zarezerwowane.
Wskazówki dotyczące określania rozmiaru
Podczas wybierania rozmiaru obliczeniowego należy wziąć pod uwagę następujące czynniki:
| Czynnik | Rekomendacja |
|---|---|
| Złożoność zapytań | Złożone zapytania analityczne korzystają z większych rozmiarów obliczeniowych |
| Połączenia współbieżne | Więcej połączeń wymaga dodatkowego procesora CPU i pamięci |
| objętość danych | Większe zestawy danych mogą potrzebować większej ilości pamięci w celu uzyskania optymalnej wydajności |
| Czas odpowiedzi | Krytyczne aplikacje mogą wymagać większych obliczeń w celu zapewnienia spójnej wydajności |
Optymalna strategia ustalania rozmiaru
Wybierz rozmiar obliczeniowy na podstawie wymagań dotyczących danych:
- Pełny zestaw danych w pamięci: wybierz rozmiar obliczeniowy, który może przechowywać cały zestaw danych w pamięci, aby uzyskać najlepszą wydajność
- Zestaw roboczy w pamięci: w przypadku dużych zestawów danych upewnij się, że często używane dane mieszczą się w pamięci
- Limity połączeń: wybierz rozmiar, który obsługuje przewidywane maksymalne połączenia współbieżne
Skalowanie automatyczne
Usługa Lakebase obsługuje konfiguracje obliczeń o stałym rozmiarze i skalowaniu automatycznym. Skalowanie automatyczne dynamicznie dostosowuje zasoby obliczeniowe na podstawie zapotrzebowania na obciążenia, optymalizując zarówno wydajność, jak i koszt.
| Typ konfiguracji | Description |
|---|---|
| Stały rozmiar (0,5–64 CU) | Wybierz stały rozmiar obliczeniowy, który nie jest skalowany przy użyciu zapotrzebowania na obciążenia. Dostępne dla jednostek obliczeniowych od 0,5 CU do 64 CU |
| Skalowanie automatyczne (0,5–64 CU) | Użyj suwaka, aby określić minimalne i maksymalne rozmiary obliczeniowe. Lakebase zwiększa i zmniejsza skalę w tych granicach na podstawie bieżącego obciążenia. Dostępne dla obliczeń do 64 CU (128 GB) |
| Większe jednostki obliczeniowe o stałej wielkości (80–112 CU) | Wybierz większy zasób obliczeniowy o stałej wielkości i mocy do 112 CU. Te większe obliczenia są dostępne tylko jako stałe rozmiary i nie obsługują skalowania automatycznego |
Limit skalowania automatycznego: Skalowanie automatyczne jest obsługiwane w przypadku obliczeń do 64 CU (128 GB). W przypadku obciążeń wymagających więcej niż 64 CU dostępne są większe instancje obliczeniowe o stałym rozmiarze: 80, 96 lub 112 CU.
Konfigurowanie skalowania automatycznego
Aby włączyć lub dostosować skalowanie automatyczne dla obliczeń, edytuj obliczenia i użyj suwaka, aby ustawić minimalne i maksymalne rozmiary obliczeniowe.
Aby zapoznać się z omówieniem sposobu działania skalowania automatycznego, zobacz Autoskalowanie.
Zagadnienia dotyczące skalowania automatycznego
Aby uzyskać optymalną wydajność skalowania automatycznego:
- Ustaw minimalny rozmiar obliczeniowy wystarczająco duży, aby buforować zestaw roboczy w pamięci
- Należy wziąć pod uwagę, że niska wydajność może wystąpić do momentu skalowania obliczeń w górę i buforowania danych
- Limity połączeń zależą od mniejszej z dwóch wartości: maksymalnej wartości CU i 8 × minimalnej wartości CU
Ograniczenia zakresu skalowania automatycznego: różnica między maksymalnymi i minimalnymi rozmiarami obliczeniowymi nie może przekraczać 16 CU (czyli max - min ≤ 16 CU). Na przykład można skonfigurować skalowanie automatyczne z zakresu od 8 do 24 CU lub z 48 do 64 CU, ale nie z 0,5 do 32 CU (co byłoby zakresem 31,5 CU). Suwak w aplikacji Lakebase automatycznie wymusza to ograniczenie. W przypadku obciążeń roboczych wymagających więcej niż 64 CU należy użyć większych instancji obliczeniowych o stałym rozmiarze, o wielkości do 112 CU.
Skalowanie do zera
Funkcja skalowania do zera usługi Lakebase automatycznie przenosi zasoby obliczeniowe do stanu bezczynności po okresie braku aktywności, co zmniejsza koszty baz danych, które nie są stale aktywne.
Skalowanie do zera jest dostępne tylko dla obliczeń o wartości 32 CU lub mniej. Dla obliczeń skalujących automatycznie maksymalny rozmiar musi wynosić 32 CU lub mniejszy. Większe zasoby obliczeniowe nie mogą korzystać ze skalowania do zera.
| Konfiguracja | Description |
|---|---|
| Skalowanie do zera włączone | Środowisko obliczeniowe automatycznie zawiesza się po braku aktywności, aby zmniejszyć koszty |
| Skalowanie do zera wyłączone | Utrzymanie systemu zawsze aktywnych obliczeń, które eliminują opóźnienie uruchamiania |
Aby zapoznać się z omówieniem działania skalowania do zera, zobacz Skalowanie do zera. Aby skonfigurować skalowanie do zera dla obliczeń, zobacz Konfigurowanie skalowania do zera.
Tworzenie obliczeń i zarządzanie nimi
Przegląd obliczeń
Wyświetlanie w interfejsie użytkownika
Aby wyświetlić obliczenia dla gałęzi, przejdź do strony Gałęzie projektu w aplikacji Lakebase i wybierz gałąź, aby wyświetlić kartę Obliczenia .
Karta Obliczenia zawiera informacje o wszystkich obliczeniach skojarzonych z gałęzią. Informacje wyświetlane na karcie Obliczenia zostały opisane w poniższej tabeli.
| Szczegół | Description |
|---|---|
| Typ obliczeniowy | Typ obliczeniowy to Podstawowa (odczyt-zapis) lub Replika do odczytu (tylko do odczytu). Gałąź może mieć jedną podstawową (odczyt-zapis) i wiele obliczeń repliki do odczytu (tylko do odczytu). |
| Status | Bieżący stan: Aktywny lub Wstrzymany (gdy środowisko obliczeniowe zostało zawieszone z powodu skalowania do zera). Pokazuje datę i godzinę wstrzymania obliczeń. |
| UID | Unikatowy identyfikator wygenerowany przez system dla obliczeń, który zaczyna się od prefiksu ep- . Ta wartość jest wyświetlana w nazwie hosta połączenia. Zobacz Identyfikatory obliczeniowe. |
| rozmiar | Rozmiar obliczeniowy w jednostkach obliczeniowych (CU). Przedstawia pojedynczą wartość CU (na przykład 8 CU) dla obliczeń o stałym rozmiarze. Przedstawia zakres (na przykład 8–16) dla obliczeń z włączonym skalowaniem automatycznym. |
| Ostatnia aktywna | Data i godzina ostatniego aktywnego działania obliczeń. |
Dla każdego środowiska obliczeniowego można wykonywać następujące czynności:
- Kliknij przycisk Połącz , aby otworzyć okno dialogowe połączenia ze szczegółami połączenia dla gałęzi skojarzonej z obliczeniami. Okno dialogowe zawiera przełącznik Puli połączeń dla natywnych ról haseł Postgres. Zobacz Nawiązywanie połączenia z bazą danych i Używanie puli połączeń.
- Kliknij przycisk Edytuj , aby zmodyfikować rozmiar obliczeniowy (stały lub automatyczny zakres skalowania) i skonfigurować ustawienia skalowania do zera. Zobacz Edytowanie obliczeń.
- Kliknij ikonę menu, aby uzyskać dostęp do dodatkowych opcji:
- Monitorowanie aktywności: wyświetlanie działań obliczeniowych i metryk wydajności. Zobacz Monitorowanie bazy danych.
- Uruchom ponownie środowisko obliczeniowe: uruchom ponownie środowisko obliczeniowe, aby rozwiązać problemy z połączeniem lub zastosować zmiany konfiguracji. Zobacz Ponowne uruchamianie obliczeń.
Aby dodać replikę do odczytu do gałęzi, kliknij pozycję Dodaj replikę do odczytu. Repliki do odczytu to obliczenia tylko do odczytu, które umożliwiają skalowanie w poziomie, umożliwiając odciążanie obciążenia odczytu z podstawowych obliczeń. Zobacz Repliki do odczytu i Zarządzanie replikami do odczytu.
Programistyczne pozyskiwanie zasobów obliczeniowych
Aby uzyskać szczegółowe informacje na temat określonej jednostki obliczeniowej przy użyciu interfejsu API Postgres:
zestaw SDK Python
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}")
W zestawie SDK uzyskaj dostęp do hosta za pośrednictwem ( endpoint.status.hosts.host nie endpoint.status.host).
zestaw SDK Java
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
# Get endpoint details
databricks postgres get-endpoint projects/my-project/branches/production/endpoints/my-compute --output json | jq
skręt
curl "$WORKSPACE/api/2.0/postgres/projects/my-project/branches/production/endpoints/my-compute" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq
Obliczanie listy programowo
Aby wyświetlić listę wszystkich obliczeń i replik do odczytu dla gałęzi przy użyciu interfejsu API Postgres:
zestaw SDK Python
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()
W zestawie SDK uzyskaj dostęp do hosta za pośrednictwem ( endpoint.status.hosts.host nie endpoint.status.host).
zestaw SDK Java
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
# List endpoints for a branch
databricks postgres list-endpoints projects/my-project/branches/production --output json | jq
skręt
curl "$WORKSPACE/api/2.0/postgres/projects/my-project/branches/production/endpoints" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq
Uwaga / Notatka
Typowe konfiguracje gałęzi:
- 1 punkt końcowy: podstawowy do obsługi głównych operacji obliczeniowych z dostępem do zapisu i odczytu
- 2+ punkty końcowe: podstawowe zasoby obliczeniowe i co najmniej jedna replika do odczytu
Edytowanie obliczeń
Możesz edytować obliczenia, aby zmienić jego rozmiar, konfigurację skalowania automatycznego lub ustawienia skalowania do zera. Nazwy obliczeniowe są tylko do odczytu i nie można ich zmienić.
Aby edytować obliczenia:
interfejs użytkownika
- Przejdź do karty Obliczenia w Twojej gałęzi w aplikacji Lakebase.
- Kliknij przycisk Edytuj dla obliczeń, dostosuj ustawienia, a następnie kliknij przycisk Zapisz.
zestaw SDK Python
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}")
Aby zaktualizować wiele pól, dołącz je zarówno do specyfikacji, jak i maski aktualizacji:
# 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}")
zestaw SDK Java
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");
Aby zaktualizować wiele pól, dołącz je zarówno do specyfikacji, jak i maski aktualizacji:
// 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
# 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
}
}'
skręt
# 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
Uwaga / Notatka
Zmiany ustawień obliczeniowych zaczęły obowiązywać natychmiast i mogą powodować krótkie przerwy w połączeniu podczas ponownego uruchamiania.
Konfigurowanie skalowania do zera
Aby skonfigurować skalowanie do zera, uwzględnij spec.suspension w masce aktualizacji. Ustaw suspend_timeout_duration wartość (60s–604800s), aby zdefiniować limit czasu braku aktywności lub no_suspension: true wyłączyć go. Nie ustawiaj obu tych jednocześnie. Ustawienie no_suspension: false jest nieprawidłowe i zwraca błąd. Domyślnie dla gałęzi production włączono skalowanie do zera z 24-godzinnym limitem czasu.
Skalowanie do zera jest dostępne tylko dla obliczeń o wartości 32 CU lub mniejszych (dla obliczeń automatycznego skalowania maksymalny rozmiar musi wynosić 32 CU lub mniej). Ustawienie limitu czasu wstrzymania dla większego zasobu obliczeniowego powoduje błąd.
interfejs użytkownika
- Przejdź do karty Obliczenia w Twojej gałęzi w aplikacji Lakebase.
- Kliknij przycisk Edytuj dla obliczeń, a następnie włącz lub wyłącz ustawienie skalowania do zera. Po włączeniu skonfiguruj limit czasu braku aktywności z zakresu od 60 sekund do 7 dni.
- Kliknij Zapisz.
zestaw SDK Python
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.postgres import Endpoint, EndpointSpec, EndpointType, FieldMask
from google.protobuf.duration_pb2 import Duration
w = WorkspaceClient()
endpoint_name = "projects/my-project/branches/production/endpoints/my-compute"
# Disable scale to zero (compute stays active indefinitely)
endpoint_spec = EndpointSpec(
endpoint_type=EndpointType.ENDPOINT_TYPE_READ_WRITE,
no_suspension=True
)
w.postgres.update_endpoint(
name=endpoint_name,
endpoint=Endpoint(name=endpoint_name, spec=endpoint_spec),
update_mask=FieldMask(field_mask=["spec.suspension"])
).wait()
# Enable scale to zero with a 5-minute inactivity timeout (60s–604800s)
endpoint_spec = EndpointSpec(
endpoint_type=EndpointType.ENDPOINT_TYPE_READ_WRITE,
suspend_timeout_duration=Duration(seconds=300)
)
w.postgres.update_endpoint(
name=endpoint_name,
endpoint=Endpoint(name=endpoint_name, spec=endpoint_spec),
update_mask=FieldMask(field_mask=["spec.suspension"])
).wait()
zestaw SDK Java
import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.service.postgres.*;
import com.google.protobuf.Duration;
import com.google.protobuf.FieldMask;
WorkspaceClient w = new WorkspaceClient();
String endpointName = "projects/my-project/branches/production/endpoints/my-compute";
FieldMask updateMask = FieldMask.newBuilder()
.addPaths("spec.suspension")
.build();
// Disable scale to zero (compute stays active indefinitely)
EndpointSpec noSuspensionSpec = new EndpointSpec()
.setNoSuspension(true);
w.postgres().updateEndpoint(
new UpdateEndpointRequest()
.setName(endpointName)
.setEndpoint(new Endpoint().setSpec(noSuspensionSpec))
.setUpdateMask(updateMask)
);
// Enable scale to zero with a 5-minute inactivity timeout (60s–604800s)
EndpointSpec timeoutSpec = new EndpointSpec()
.setSuspendTimeoutDuration(
Duration.newBuilder().setSeconds(300).build()
);
w.postgres().updateEndpoint(
new UpdateEndpointRequest()
.setName(endpointName)
.setEndpoint(new Endpoint().setSpec(timeoutSpec))
.setUpdateMask(updateMask)
);
CLI
# Disable scale to zero (compute stays active indefinitely)
databricks postgres update-endpoint \
projects/my-project/branches/production/endpoints/my-compute \
spec.suspension \
--json '{
"spec": {
"no_suspension": true
}
}'
# Enable scale to zero with a 5-minute inactivity timeout (60s–604800s)
databricks postgres update-endpoint \
projects/my-project/branches/production/endpoints/my-compute \
spec.suspension \
--json '{
"spec": {
"suspend_timeout_duration": "300s"
}
}'
skręt
# Disable scale to zero (compute stays active indefinitely)
curl -X PATCH "$WORKSPACE/api/2.0/postgres/projects/my-project/branches/production/endpoints/my-compute?update_mask=spec.suspension" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"name": "projects/my-project/branches/production/endpoints/my-compute",
"spec": {
"no_suspension": true
}
}' | jq
# Enable scale to zero with a 5-minute inactivity timeout (60s–604800s)
curl -X PATCH "$WORKSPACE/api/2.0/postgres/projects/my-project/branches/production/endpoints/my-compute?update_mask=spec.suspension" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"name": "projects/my-project/branches/production/endpoints/my-compute",
"spec": {
"suspend_timeout_duration": "300s"
}
}' | jq
Wyłącz lub włącz zasób obliczeniowy
Wyłączenie obliczeń zawiesza je i blokuje wszystkie nowe połączenia. W przeciwieństwie do skalowania do zera wyłączonego zasobu obliczeniowego nie można wybudzić ani za pomocą próby połączenia, ani z poziomu aplikacji Lakebase. Aby ją ponownie włączyć, użyj interfejsu API.
zestaw SDK Python
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.postgres import Endpoint, EndpointSpec, EndpointType, FieldMask
w = WorkspaceClient()
endpoint_name = "projects/my-project/branches/production/endpoints/my-compute"
# Disable a compute (blocks all connections)
endpoint_spec = EndpointSpec(
endpoint_type=EndpointType.ENDPOINT_TYPE_READ_WRITE,
disabled=True
)
w.postgres.update_endpoint(
name=endpoint_name,
endpoint=Endpoint(name=endpoint_name, spec=endpoint_spec),
update_mask=FieldMask(field_mask=["spec.disabled"])
).wait()
# Re-enable a compute
endpoint_spec = EndpointSpec(
endpoint_type=EndpointType.ENDPOINT_TYPE_READ_WRITE,
disabled=False
)
w.postgres.update_endpoint(
name=endpoint_name,
endpoint=Endpoint(name=endpoint_name, spec=endpoint_spec),
update_mask=FieldMask(field_mask=["spec.disabled"])
).wait()
Aby sprawdzić, czy środowisko obliczeniowe jest obecnie wyłączone, należy odczytać wartość ze stanu punktu końcowego. Ustawiono wartość na spec.disabled, ale odczytasz ją z powrotem z elementu status.disabled:
endpoint = w.postgres.get_endpoint(
name="projects/my-project/branches/production/endpoints/my-compute"
)
print(endpoint.status.disabled) # True = disabled, False or None = enabled
CLI
# Disable a compute (blocks all connections)
databricks postgres update-endpoint \
projects/my-project/branches/production/endpoints/my-compute \
spec.disabled \
--json '{
"spec": {
"disabled": true
}
}'
# Re-enable a compute
databricks postgres update-endpoint \
projects/my-project/branches/production/endpoints/my-compute \
spec.disabled \
--json '{
"spec": {
"disabled": false
}
}'
Aby sprawdzić, czy środowisko obliczeniowe jest obecnie wyłączone, odczyt status.disabled z punktu końcowego:
databricks postgres get-endpoint projects/my-project/branches/production/endpoints/my-compute --output json | jq '.status.disabled'
skręt
# Disable a compute (blocks all connections)
curl -X PATCH "$WORKSPACE/api/2.0/postgres/projects/my-project/branches/production/endpoints/my-compute?update_mask=spec.disabled" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"name": "projects/my-project/branches/production/endpoints/my-compute",
"spec": {
"disabled": true
}
}' | jq
# Re-enable a compute
curl -X PATCH "$WORKSPACE/api/2.0/postgres/projects/my-project/branches/production/endpoints/my-compute?update_mask=spec.disabled" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"name": "projects/my-project/branches/production/endpoints/my-compute",
"spec": {
"disabled": false
}
}' | jq
Aby sprawdzić, czy środowisko obliczeniowe jest obecnie wyłączone, odczyt status.disabled z punktu końcowego:
curl "$WORKSPACE/api/2.0/postgres/projects/my-project/branches/production/endpoints/my-compute" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq '.status.disabled'
Uwaga / Notatka
Po ponownym włączeniu obliczeń nowe próby nawiązania połączenia mogą zakończyć się niepowodzeniem do momentu zakończenia ponownego uruchomienia obliczeń.
Ponowne uruchamianie obliczeń
Uruchom ponownie środowisko obliczeniowe, aby zastosować aktualizacje, rozwiązać problemy z wydajnością lub pobrać zmiany konfiguracji.
Aby ponownie uruchomić środowisko obliczeniowe:
- Przejdź do karty Obliczenia w Twojej gałęzi w aplikacji Lakebase.
- Kliknij
menu dla obliczeń, wybierz pozycję Uruchom ponownie i potwierdź operację.
Ważne
Ponowne uruchomienie obliczeń przerywa wszystkie aktywne połączenia. Skonfiguruj aplikacje do automatycznego ponownego nawiązywania połączenia, aby uniknąć długotrwałych przerw.
Dodatkowe zasoby
- Panel metryk
- Skalowanie automatyczne
- Skalowanie do zera
- Repliki do odczytu