Obsługa wielu dzierżaw i usługa Azure Database for PostgreSQL
Wiele wielodostępnych rozwiązań na platformie Azure korzysta z systemu zarządzania relacyjnymi bazami danych typu open source w usłudze Azure Database for PostgreSQL. W tym artykule zapoznamy się z funkcjami usługi Azure Database for PostgreSQL, które są przydatne podczas pracy z systemami wielodostępnymi. Ten artykuł zawiera również linki do wskazówek i przykładów dotyczących korzystania z usługi Azure Database for PostgreSQL w rozwiązaniu wielodostępnym.
Tryby wdrażania
Istnieją dwa tryby wdrażania dostępne dla usługi Azure Database for PostgreSQL, które są odpowiednie do użycia z aplikacjami wielodostępnymi:
- Azure Database for PostgreSQL — serwer elastyczny — jest to dobry wybór w przypadku większości wdrożeń wielodostępnych, które nie wymagają wysokiej skalowalności zapewnianej przez usługę Azure Cosmos DB for PostgreSQL.
- Azure Cosmos DB for PostgreSQL — zarządzana usługa bazy danych platformy Azure przeznaczona dla rozwiązań wymagających wysokiego poziomu skali, która często obejmuje aplikacje wielodostępne. Ta usługa jest częścią rodziny produktów usługi Azure Cosmos DB.
Uwaga
Azure Database for PostgreSQL — pojedynczy serwer znajduje się na ścieżce wycofania i ma zostać wycofany do 28 marca 2025 r. Nie zaleca się obsługi nowych obciążeń wielodostępnych.
Funkcje usługi Azure Database for PostgreSQL, które obsługują wielodostępność
Podczas tworzenia aplikacji wielodostępnej przy użyciu usługi Azure Database for PostgreSQL istnieje wiele funkcji, których można użyć do ulepszenia rozwiązania.
Uwaga
Niektóre funkcje są dostępne tylko w określonych trybach wdrażania. Te funkcje są wskazane w poniższych wskazówkach.
Zabezpieczenia na poziomie wiersza
Zabezpieczenia na poziomie wiersza są przydatne do wymuszania izolacji na poziomie dzierżawy podczas korzystania z tabel udostępnionych. W usłudze PostgreSQL zabezpieczenia na poziomie wiersza są implementowane przez zastosowanie zasad zabezpieczeń wierszy do tabel w celu ograniczenia dostępu do wierszy według dzierżawy.
Może to mieć niewielki wpływ na wydajność podczas implementowania zabezpieczeń na poziomie wiersza w tabeli. W związku z tym może być konieczne utworzenie dodatkowych indeksów w tabelach z włączonymi zabezpieczeniami na poziomie wiersza, aby zapewnić, że wydajność nie ma wpływu. Zaleca się użycie technik testowania wydajnościowego w celu sprawdzenia, czy obciążenie spełnia wymagania dotyczące wydajności punktu odniesienia po włączeniu zabezpieczeń na poziomie wiersza.
Więcej informacji:
Skalowanie w poziomie przy użyciu fragmentowania
Wzorzec fragmentowania umożliwia skalowanie obciążenia między wieloma bazami danych lub serwerami baz danych.
Rozwiązania, które wymagają bardzo wysokiego poziomu skali, mogą używać usługi Azure Cosmos DB for PostgreSQL. Ten tryb wdrażania umożliwia fragmentowanie w poziomie dzierżaw na wielu serwerach (węzłach). Korzystając z tabel rozproszonych w wielodostępnych bazach danych, można upewnić się, że wszystkie dane dzierżawy są przechowywane w tym samym węźle, co zwiększa wydajność zapytań.
Uwaga
Od października 2022 r. usługa Azure Database for PostgreSQL Hiperskala (Citus) została przemianowana na usługę Azure Cosmos DB for PostgreSQL i przeniesiona do rodziny produktów Cosmos DB.
Więcej informacji:
- Projektowanie wielodostępnej bazy danych przy użyciu usługi Azure Cosmos DB for PostgreSQL
- Rozproszone tabele
- Wybieranie kolumny dystrybucji w tabeli rozproszonej.
- Przewodnik dotyczący korzystania z rozwiązania Citus dla aplikacji wielodostępnych.
Buforowanie połączeń
Baza danych Postgres używa modelu opartego na procesie dla połączeń. Ten model sprawia, że nieefektywne zachowanie dużej liczby bezczynnych połączeń. Niektóre architektury wielodostępne wymagają dużej liczby aktywnych połączeń, co negatywnie wpłynie na wydajność serwera Postgres.
Buforowanie połączeń za pośrednictwem narzędzia PgBouncer jest instalowane domyślnie w usłudze Azure Database for PostgreSQL — serwer elastyczny.
Więcej informacji:
- Narzędzie PgBouncer w usłudze Azure Database for PostgreSQL — serwer elastyczny
- Buforowanie połączeń w usłudze Azure Cosmos DB for PostgreSQL
- Steps to install and set up PgBouncer connection pooling proxy with Azure Database for PostgreSQL (Procedura instalowania i konfigurowania serwera proxy puli połączeń PgBouncer w przypadku usługi Azure Database for PostgreSQL)
Uwierzytelnianie Microsoft Entra
Azure Database for PostgreSQL — serwer elastyczny obsługuje uwierzytelnianie połączeń przy użyciu identyfikatora Entra firmy Microsoft. Ta funkcja umożliwia obciążenia aplikacji w środowisku wielodostępnym w celu uwierzytelniania w bazie danych przy użyciu jednostki usługi specyficznej dla dzierżawy lub tożsamości zarządzanej, co oznacza, że dostęp do bazy danych można ograniczyć do pojedynczej dzierżawy. Łącząc uwierzytelnianie identyfikatora Entra firmy Microsoft z zasadami zabezpieczeń wierszy specyficznych dla dzierżawy, można zmniejszyć ryzyko uzyskania dostępu do danych innej dzierżawy z poziomu wielodostępnej bazy danych. Więcej informacji:
- Uwierzytelnianie firmy Microsoft w usłudze Azure Database for PostgreSQL — serwer elastyczny
- Nawiązywanie połączenia za pomocą tożsamości zarządzanej z usługą Azure Database for PostgreSQL — serwer elastyczny
Współautorzy
Ten artykuł jest obsługiwany przez firmę Microsoft. Pierwotnie został napisany przez następujących współautorów.
Główny autor:
- Daniel Scott-Raynsford | Partner TechnologyStrateg
Inni współautorzy:
- John Downs | Główny inżynier oprogramowania
- Arsen Vladimirskiy | Główny inżynier klienta, fasttrack dla platformy Azure
- Paul Burpo | Główny inżynier klienta, fasttrack dla niezależnych dostawców oprogramowania platformy Azure
- Assaf Fraenkel | Starszy inżynier/architekt danych, usługa Azure FastTrack dla niezależnych dostawców oprogramowania i start-up
Aby wyświetlić niepubalne profile serwisu LinkedIn, zaloguj się do serwisu LinkedIn.
Następne kroki
Przejrzyj metody magazynowania i danych pod kątem wielodostępności.