Planowanie, skalowanie i utrzymywanie rozwiązania bramy krytycznej dla działania firmy
Ten artykuł jest przeznaczony dla każdego, kto planuje wdrożyć lokalną bramę danych w scenariuszu krytycznym dla działania firmy. Lokalna brama danych ma kluczowe znaczenie dla działania firmy, jeśli jest niezbędna do normalnego działania firmy i obsługuje dane krytyczne dla działania firmy.
Jeśli bramy krytyczne dla działania firmy nie są prawidłowo zarządzane, mogą wystąpić nieudane zapytania lub niska wydajność. W przypadku prawidłowego planowania, skalowania i utrzymania rozwiązania bramy krytycznej dla działania firmy można zminimalizować prawdopodobieństwo wystąpienia problemu wpływającego na firmę.
Terminologia
W tym artykule są używane następujące ważne terminy:
- Brama: lokalna aplikacja bramy danych zainstalowana na komputerze.
- Serwer bramy: komputer z systemem Windows (maszyna wirtualna lub komputer fizyczny/serwer), który ma zainstalowaną lokalną aplikację bramy danych.
- Klaster bramy: zestaw bram, które współpracują ze sobą (i mogą być ze zrównoważonym obciążeniem).
- Członek bramy: brama, która jest częścią klastra bramy.
Na poniższej ilustracji przedstawiono relację między pojęciami zdefiniowanymi powyżej.
Rekomendacje dla bram krytycznych dla działania firmy
W przypadku bram o znaczeniu krytycznym dla działania firmy bramy muszą być wdrażane i zarządzane prawidłowo, aby zapewnić wysoką dostępność, dobrą wydajność i skalowalność z możliwością utrzymania. Nieprawidłowe wdrażanie bram może spowodować niską wydajność, nieudane zapytania i trudności w diagnozowaniu potencjalnych problemów. Może to również utrudniać skalowanie bram w górę i w poziomie w miarę wzrostu użycia.
Aby zapewnić optymalną skalowalność, wydajność i przepływność, postępuj zgodnie z zaleceniami w następnych sekcjach.
Znajomość wszystkich kluczy odzyskiwania bramy
Upewnij się, że wszystkie klucze odzyskiwania bramy są znane i przechowywane w bezpiecznym miejscu. Bez klucza odzyskiwania nie można odzyskać ani obniżyć poziomu bram. To ograniczenie jest zgodnie z projektem. Jeśli utracisz klucze odzyskiwania, jedyną opcją jest utworzenie nowych bram i ponowne utworzenie źródeł danych. Ponadto nie można dodawać nowych bram do klastra bez klucza odzyskiwania, co ograniczyłoby skalowalność w przyszłości.
Przechowuj klucze odzyskiwania w bezpiecznym miejscu tak samo jak w przypadku przechowywania poświadczeń administracyjnych, takich jak bezpieczne hasło, do których mogą uzyskiwać dostęp tylko autoryzowani administratorzy.
Jeśli obecnie nie znasz wszystkich kluczy odzyskiwania bramy, jest to znaczące ryzyko biznesowe. Natychmiast utwórz nowe klastry bramy i rozpocznij migrację obciążeń do klastrów bramy.
Obciążenia programistyczne i obciążenia krytyczne dla działania firmy
Oddziel obciążenia programistyczne od krytycznych dla działania firmy, konfigurując co najmniej jeden klaster bramy programistycznej i co najmniej jeden produkcyjny klaster bramy zgodnie z poniższym opisem.
Użyj klastra bramy programistycznej, aby przetestować nowe modele semantyczne, raporty, zapytania itd. Po zweryfikowaniu nowego obciążenia zmigruj go do klastra bramy krytycznej dla działania firmy. Ten proces uniemożliwia nowym, nietestowanym lub eksperymentalnym obciążeniom wpływ na obciążenia produkcyjne.
Użyj również klastrów bram deweloperskich, aby przetestować nowe aktualizacje bramy przed zastosowaniem aktualizacji do klastrów bramy o znaczeniu krytycznym dla działania firmy. Nowe aktualizacje bramy powinny być wdrażane przez co najmniej 24 godziny w klastrach bram deweloperskich przed ich zastosowaniem w klastrach bram o znaczeniu krytycznym dla działania firmy.
Używanie wielu klastrów bramy
Jeśli tworzysz klaster bramy dla dużej liczby użytkowników w organizacji, musisz utworzyć wiele klastrów bramy na podstawie jednostek biznesowych lub mniejszych, aby ograniczyć potencjalny wpływ na wydajność do małego podzestawu użytkowników.
Nie zalecamy użycia pojedynczego klastra bramy o znaczeniu krytycznym dla działania firmy (chyba że firma jest mała). W scenariuszu klastra pojedynczej bramy jeden użytkownik może wysłać zapytanie, które powoduje znaczący wpływ na wydajność całego ruchu w bramie. Jeśli brama jest używana w całej firmie, wpływ na wydajność może mieć wpływ na całą firmę. Ponadto, gdy klaster bramy jest używany w całej firmie, może być trudniejsze do zidentyfikowania, które zapytanie może powodować problem z wydajnością podczas korzystania z funkcji monitorowania wydajności bramy.
Korzystanie z funkcji wysokiej dostępności i równoważenia obciążenia bramy
Zawsze używaj funkcji wysokiej dostępności i równoważenia obciążenia bramy dla dowolnego klastra bramy krytycznego dla działania firmy.
- Wysoka dostępność: eliminuje pojedynczy punkt awarii.
- Równoważenie obciążenia: automatycznie dystrybuuje obciążenie na wszystkich serwerach bramy w klastrze.
Skonfiguruj co najmniej dwie bramy na klaster bramy w przypadku, gdy brama przejdzie w tryb offline z jakiegokolwiek powodu. Ta konfiguracja gwarantuje, że awaria pojedynczej bramy nie spowoduje awarii całego klastra bramy. Ponadto w bramach można włączyć limity procesora CPU, pamięci, współbieżności, aby lepiej rozłożyć obciążenie między klaster bramy.
Planowanie i obsługa skalowalności klastra bramy
Skonfigurowanie klastra bramy przy użyciu naszych zalecanych wytycznych dotyczących sprzętu i oprogramowania gwarantuje, że klaster działa z dobrą wydajnością. Bramy, które nie są prawidłowo skalowane, mogą powodować niską wydajność. Istnieje wiele czynników, które należy wziąć pod uwagę, aby mieć dobrą wydajność w klastrze bramy.
Określanie specyfikacji sprzętu serwera bramy
Specyfikacje serwera bramy (procesor CPU, pamięć, dysk itd.) są ważnym czynnikiem, ponieważ w większości przypadków przekształcenia dodatku Power Query są stosowane do danych na serwerze bramy. W związku z tym serwer bramy musi mieć wystarczającą ilość zasobów, pamięci i mocy obliczeniowej, aby obsłużyć wszystkie przekształcenia danych.
Jeśli musisz wybrać rozmiar serwera, istnieją dwie metryki, które są najważniejsze: pamięć i procesor CPU. Potrzebujesz zarówno dużo pamięci, jak i mocy procesora CPU, aby przetworzyć kroki przekształcania danych dodatku Power Query w bramie. Ważne jest, aby serwer bramy był wystarczająco zaawansowany, aby przetworzyć największe obciążenie. Jeśli serwer bramy nie może obsłużyć obciążenia, zapytanie bezpośrednie lub odświeżanie danych zakończy się niepowodzeniem. Ważne jest również, aby zrozumieć, ile zapytań jest wykonywanych w tym samym czasie.
Te różne opcje zapytania mają inny wpływ na serwer bramy.
Typ kwerendy | Współczynnik limitu |
---|---|
Importuj | Pamięć |
DirectQuery | Procesor CPU |
Live Połączenie | Procesor CPU |
Podczas importowania cały zestaw danych musi być odpytywane i przetwarzane, co jest dużym obciążeniem pamięci. Import ten często trwa dłużej. Zapytania bezpośrednie i dynamiczne Połączenie ions są często obciążane procesorami CPU. W większości przypadków zapytania bezpośrednie są wykonywane wiele razy, aby przetwarzać tylko niewielką część danych. Ponieważ przetwarzana jest tylko niewielka część danych, te zapytania bezpośrednie nie są zwykle zadaniem z dużą ilością pamięci. Jednak ze względu na to, że zapytania są wykonywane wiele razy na żądanie, może to być intensywne wykorzystanie procesora CPU.
W zależności od obciążenia rozważ optymalizację serwera bramy pod kątem pamięci lub procesora CPU.
Kiedy należy skalować klaster bramy
Skalowanie jest ważnym aspektem klastra bramy krytycznej dla działania firmy. W miarę zwiększania użycia klastra bramy klaster bramy musi być skalowany w górę i/lub skalowany w poziomie, aby zapewnić dobrą wydajność. Zalecamy rozpoczęcie skalowania klastra bramy w poziomie, jeśli wcześniej skalowano w górę bramy w klastrze.
Skalowanie i dystrybucja obciążenia ruchu między poszczególnymi węzłami w klastrze to złożony proces, który różni się w zależności od poszczególnych scenariuszy. Chociaż nie ma ostatecznego modelu, aby upewnić się, że cały ruch bramy będzie przewidywalnie obsłużony, limity wymienione poniżej wskazują na potrzebę skalowania. Ogólnie rzecz biorąc, zalecamy skalowanie w górę (dodawanie węzłów do klastra) preferencyjnie w celu skalowania w górę (zwiększenie użycia procesora CPU, pamięci RAM lub miejsca na dysku w poszczególnych węzłach). Skalowanie w górę zwykle jest bardziej efektywne w przypadku możliwości całego systemu do obsługi dodatkowego ruchu. Skalowanie w górę ma również pozytywny wpływ na łączną przepustowość, która może przetworzyć klaster, podczas gdy skalowanie w górę zwykle nie jest możliwe. Jeśli co najmniej jeden węzeł bramy pokazuje wskazania osiągnięcia progów opisanych poniżej, skalowanie klastra w poziomie powinno być zdecydowanie brane pod uwagę.
Procesor CPU: użycie procesora CPU przekracza 80% przez dłuższy czas, jednak czasami krótkie (poniżej 5 minut) skoki maksymalnej liczby procesorów CPU nie są nietypowe.
Pamięć RAM: Dostępna pamięć spada poniżej 20% regularnie.
Dysk: Wolne miejsce na dysku często spada poniżej 5 GB. Ten spadek może również wskazywać na konieczność skonfigurowania buforowania lub buforowania katalogów bardziej strategicznie.
Współbieżność: uruchamianie ponad 40 zapytań jednocześnie w jednym węźle.
Ponieważ odświeżanie i zapytania rozproszone między węzłami bramy mogą mieć znacznie różne profile, zalecamy również przeprowadzenie dodatkowej kontroli w długotrwałych zadaniach intensywnie korzystających z pamięci. Optymalizacja zapytań w takich przypadkach może mieć ogromny wpływ na wydajność i skalowalność, nie tylko w przypadku poszczególnych raportów i odświeżeń, ale w całym systemie. Zalecamy izolowanie odświeżeń, o których mowa w jednym dedykowanym klastrze bramy, aby ocenić charakterystykę wydajności i przeprowadzić optymalizację przy użyciu diagnostyki planu zapytań, wskaźników składania i wszystkich innych opublikowanych zaleceń dotyczących wydajności. Ta izolacja minimalizuje ilość pobranych danych i wymaganą ilość danych po przetworzeniu. Ta izolacja może być również używana jako długoterminowa strategia sekwencji długotrwałych zadań ETL w dedykowanym klastrze bramy w celu zmniejszenia rywalizacji z innymi typowymi odświeżeniami w całej organizacji.
Skalowanie klastra bramy w górę
Skalowanie w górę polega na zwiększeniu specyfikacji (procesora CPU, pamięci, dysku itd.) serwerów bramy.
Skalowanie w górę może być wymagane, jeśli osiągnięto maksymalny procesor CPU lub pamięć, gdy brama wykonuje co najmniej jedno zapytanie. Zapytanie można wykonać tylko na jednym serwerze bramy, dlatego serwer bramy musi mieć wystarczającą ilość dostępnych zasobów, aby przetworzyć całe zapytanie wraz z wynikowymi danymi.
Skalowanie klastra bramy w górę
Skalowanie w poziomie jest wymagane, jeśli serwer bramy ma już wysokie specyfikacje (innymi słowy, serwer bramy został już skalowany w górę) lub osiągnięto limity tego, co pojedynczy serwer bramy może zarządzać ze względu na liczbę wykonywanych zapytań współbieżnych. Zwiększenie obciążenia opartego na szerokim zakresie w całym zestawie elementów członkowskich bramy jest dobrym wskaźnikiem, że skalowanie klastra przez dodanie węzłów jest prawidłowym przebiegiem akcji. Kiedy skalowanie klastra bramy zapewnia określone progi wskazujące czas skalowania. Aby uzyskać więcej informacji na temat skalowania w poziomie, przejdź do tematu Korzystanie z funkcji wysokiej dostępności i równoważenia obciążenia bramy.
Skalowanie przez utworzenie nowych klastrów bramy
Jeśli użycie zasobów klastra bramy jest wysokie lub wyjątkowo duża liczba użytkowników korzysta z klastra bramy, można utworzyć nowy klaster bramy. Następnie można zmigrować podzbiór obciążenia do nowego klastra bramy. Jeśli duża liczba użytkowników korzysta z jednego klastra bramy, prawdopodobieństwo, że użytkownik może wysłać zapytanie, które powoduje znaczny wpływ na wydajność w całym klastrze bramy, znacznie wzrasta.
Wyjątkowo duża liczba użytkowników korzystających z jednego klastra bramy jest wskaźnikiem, że należy utworzyć nowy klaster bramy.
Monitorowanie i rozwiązywanie problemów z wydajnością bramy
Ważne jest, aby monitorować ogólną wydajność bram krytycznych dla działania firmy przy użyciu funkcji monitorowania wydajności bramy. Za pomocą tej funkcji można również rozwiązywać problemy z wydajnością, identyfikować wąskie gardła i identyfikować zapytania wpływające na ogólną wydajność bramy. Ta funkcja jest również ważnym narzędziem pomagającym określić, kiedy skalować klaster bramy.
Jeśli zidentyfikujesz zapytanie jako mające duży wpływ na bramę, co spowoduje niską ogólną wydajność, może być możliwe ponowne zapisywanie zapytania, aby było bardziej wydajne i zminimalizować wpływ na wydajność.
Jeśli firma Microsoft identyfikuje niską wydajność spowodowaną przez bramę lub składnik związany z bramą, taki jak przeciążona pojemność usługi Power BI Premium, przeciążony składnik musi zostać usunięty przez skalowanie lub zmniejszenie obciążenia. Firma Microsoft nie bada niskiej wydajności w przypadku przeciążenia bramy lub składnika związanego z bramą.