Udostępnij za pośrednictwem


Najlepsze rozwiązania dotyczące optymalizacji kosztów

W tym artykule opisano najlepsze rozwiązania dotyczące zasad optymalizacji kosztów zorganizowanych według zasady.

1. Wybieranie optymalnych zasobów

Używanie formatów danych zoptymalizowanych pod kątem wydajności

Aby jak najlepiej wykorzystać platformę analizy danych usługi Databricks, musisz użyć usługi Delta Lake jako struktury magazynu. Ułatwia tworzenie prostszych i bardziej niezawodnych potoków ETL oraz oferuje wiele ulepszeń wydajności, które mogą znacznie przyspieszyć obciążenia w porównaniu z użyciem plików Parquet, ORC i JSON. Zobacz Zalecenia dotyczące optymalizacji w usłudze Azure Databricks. Jeśli obciążenie jest również uruchomione na obliczeniach zadań, przekłada się to bezpośrednio na krótszy czas pracy zasobów obliczeniowych, co prowadzi do obniżenia kosztów.

Korzystanie z obliczeń zadań

Zadanie to sposób uruchamiania kodu nieinterakcyjnego w wystąpieniu obliczeniowym usługi Databricks. Na przykład obciążenie wyodrębniania, transformacji i ładowania (ETL) można uruchomić interaktywnie lub zgodnie z harmonogramem. Oczywiście można również uruchamiać zadania interaktywnie w interfejsie użytkownika notesu. Jednak w przypadku obliczeń zadań obciążenia nieinterakcyjne będą kosztować znacznie mniej niż w przypadku obliczeń wszystkich celów. Zobacz omówienie cennika, aby porównać obliczenia zadań i obliczenia all-purpose.

Dodatkową korzyścią dla niektórych zadań jest to, że każde zadanie lub przepływ pracy może działać w nowym wystąpieniu obliczeniowym, izolując obciążenia od siebie. Jednak wielozadajne przepływy pracy mogą również ponownie używać zasobów obliczeniowych dla wszystkich zadań, więc czas uruchamiania obliczeń występuje tylko raz na przepływ pracy. Zobacz Use Azure Databricks compute with your jobs (Używanie obliczeń usługi Azure Databricks z zadaniami).

Używanie usługi SQL Warehouse dla obciążeń SQL

W przypadku interaktywnych obciążeń SQL usługa Databricks SQL Warehouse jest najbardziej opłacalnym aparatem. Zobacz omówienie cennika. Wszystkie magazyny SQL są domyślnie dostarczane z usługą Photon, co przyspiesza istniejące wywołania interfejsu API SQL i ramki danych i zmniejsza całkowity koszt obciążenia.

Ponadto bezserwerowe magazyny SQL obsługują inteligentne zarządzanie obciążeniami (IWM), zestaw funkcji, które zwiększają bezserwerową zdolność usługi Databricks do szybkiego i ekonomicznego przetwarzania dużych zapytań.

Używanie aktualnych środowisk uruchomieniowych dla obciążeń

Platforma Azure Databricks udostępnia różne środowiska uruchomieniowe zoptymalizowane pod kątem zadań inżynierii danych (Databricks Runtime) lub zadań uczenia maszynowego (Databricks Runtime for Machine Learning). Środowiska uruchomieniowe są tworzone w celu zapewnienia najlepszego wyboru bibliotek dla zadań podrzędnych oraz zapewnienia, że wszystkie udostępnione biblioteki są aktualne i współpracują ze sobą optymalnie. Środowiska Uruchomieniowe usługi Databricks są wydawane w regularnych okresach, zapewniając poprawę wydajności między głównymi wersjami. Te ulepszenia wydajności często powodują oszczędności kosztów ze względu na bardziej wydajne wykorzystanie zasobów obliczeniowych.

Używaj tylko procesorów GPU dla odpowiednich obciążeń

Maszyny wirtualne z procesorami GPU mogą znacznie przyspieszyć obliczenia uczenia głębokiego, ale są znacznie droższe niż maszyny tylko do procesora CPU. Używaj wystąpień procesora GPU tylko w przypadku obciążeń, które mają biblioteki przyspieszone przez procesor GPU.

Większość obciążeń nie korzysta z bibliotek przyspieszanych przez procesor GPU, więc nie korzystają z wystąpień z obsługą procesora GPU. Administratorzy obszarów roboczych mogą ograniczyć maszyny gpu i zasoby obliczeniowe, aby zapobiec niepotrzebnemu użyciu. Zobacz wpis w blogu "Czy procesory GPU są naprawdę drogie? Testowanie porównawcze procesorów GPU na potrzeby wnioskowania w klastrach usługi Databricks".

Korzystanie z usług bezserwerowych dla obciążeń

Przypadki użycia analizy biznesowej

Obciążenia analizy biznesowej zwykle zużywają dane w seriach i generują wiele współbieżnych zapytań. Na przykład ktoś używający narzędzia analizy biznesowej może zaktualizować pulpit nawigacyjny lub napisać zapytanie, a następnie po prostu przeanalizować wyniki bez dalszej interakcji z platformą. W tym scenariuszu platforma danych:

  • Przerywa bezczynne zasoby obliczeniowe, aby zmniejszyć koszty.
  • Szybko udostępnia zasoby obliczeniowe, gdy użytkownik żąda nowych lub zaktualizowanych danych za pomocą narzędzia analizy biznesowej.

Magazyny SQL usługi Azure Databricks bezserwerowe mają czas uruchamiania w minutach, więc wielu użytkowników zwykle akceptuje wyższy koszt i nie kończy ich w okresach bezczynności. Z drugiej strony bezserwerowe magazyny SQL są uruchamiane i skalowane w górę w ciągu kilku sekund, dzięki czemu można osiągnąć natychmiastowe zakończenie dostępności i bezczynności. Powoduje to doskonałe środowisko użytkownika i ogólne oszczędności kosztów.

Ponadto bezserwerowe magazyny SQL Warehouse są skalowane w dół wcześniej niż magazyny bezserwerowe, co powoduje obniżenie kosztów.

Obsługa modeli uczenia maszynowego i sztucznej inteligencji

Większość modeli jest obsługiwana jako interfejs API REST na potrzeby integracji z aplikacją internetową lub kliencką; usługa obsługująca model otrzymuje różne obciążenia żądań w czasie, a platforma obsługująca model powinna zawsze zapewniać wystarczające zasoby, ale tylko tyle, ile jest rzeczywiście potrzebnych (skalowanie i skalowanie w dół).

Obsługa modeli mozaiki sztucznej inteligencji korzysta z obliczeń bezserwerowych i udostępnia usługę o wysokiej dostępności i małych opóźnieniach do wdrażania modeli. Usługa automatycznie skaluje się w górę lub w dół, aby sprostać zmianom zapotrzebowania, zmniejszając koszty infrastruktury podczas optymalizowania wydajności opóźnień.

Użyj odpowiedniego typu wystąpienia

Korzystanie z najnowszej generacji typów wystąpień w chmurze prawie zawsze zapewnia korzyści z wydajności, ponieważ oferują najlepszą wydajność i najnowsze funkcje.

Na podstawie obciążeń ważne jest również, aby wybrać odpowiednią rodzinę wystąpień, aby uzyskać najlepszy współczynnik wydajności/ceny. Oto kilka prostych reguł kciuka:

  • Pamięć zoptymalizowana pod kątem uczenia maszynowego, dużych obciążeń mieszania i rozlania
  • Obliczenia zoptymalizowane pod kątem obciążeń przesyłania strumieniowego ze strukturą i zadań konserwacji (takich jak optymalizacja i próżnia)
  • Magazyn zoptymalizowany pod kątem obciążeń korzystających z buforowania, takich jak ad hoc i interaktywna analiza danych
  • Procesor GPU zoptymalizowany pod kątem określonych obciążeń uczenia maszynowego i dl
  • Ogólnego przeznaczenia w przypadku braku określonych wymagań

Wybieranie najbardziej wydajnego rozmiaru obliczeniowego

Usługa Azure Databricks uruchamia jedną funkcję wykonawczą na węzeł roboczy. W związku z tym terminy „funkcja wykonawcza” i „węzeł roboczy” są używane zamiennie w kontekście architektury usługi Azure Databricks. Często patrzy się na wielkość klastra przez pryzmat liczby węzłów roboczych, ale istnieją inne ważne czynniki, które należy wziąć pod uwagę:

  • Łączna liczba rdzeni funkcji wykonawczej (obliczenia): całkowita liczba rdzeni we wszystkich funkcjach wykonawczych. Określa to maksymalną równoległość wystąpienia obliczeniowego.
  • Łączna ilość pamięci wykonawczej: łączna ilość pamięci RAM we wszystkich funkcjach wykonawczych. Określa to, ile danych można przechowywać w pamięci przed rozlaniem ich na dysk.
  • Magazyn lokalny funkcji wykonawczej: typ i ilość magazynu na dysku lokalnym. Dysk lokalny jest używany głównie w przypadku rozlewów podczas mieszania i buforowania.

Dodatkowe zagadnienia obejmują typ i rozmiar wystąpienia procesu roboczego, które mają również wpływ na powyższe czynniki. Podczas określania rozmiaru zasobów obliczeniowych należy wziąć pod uwagę następujące kwestie:

  • Ile danych będzie zużywać obciążenie?
  • Jaka jest złożoność obliczeniowa obciążenia?
  • Skąd odczytujesz dane?
  • W jaki sposób dane są partycjonowane w magazynie zewnętrznym?
  • Ile równoległości potrzebujesz?

Szczegółowe informacje i przykłady można znaleźć w sekcji Zagadnienia dotyczące ustalania rozmiaru zasobów obliczeniowych.

Ocena aparatów zapytań zoptymalizowanych pod kątem wydajności

Photon to natywny aparat zapytań usługi Databricks o wysokiej wydajności, który przyspiesza obciążenia SQL i wywołania interfejsu API ramki danych (na potrzeby pozyskiwania danych, ETL, przesyłania strumieniowego, nauki o danych i interakcyjnych zapytań). Aplikacja Photon jest zgodna z interfejsami API platformy Apache Spark, więc rozpoczęcie pracy jest tak proste, jak włączanie — brak zmian kodu i brak blokady.

Obserwowane przyspieszenie może prowadzić do znacznych oszczędności kosztów, a miejsca pracy, które są regularnie uruchamiane, powinny być oceniane, aby sprawdzić, czy są nie tylko szybsze, ale także tańsze z Photon.

2. Dynamiczne przydzielanie zasobów

Korzystanie z automatycznego skalowania zasobów obliczeniowych

Dzięki skalowaniu automatycznemu usługa Databricks dynamicznie przenosi pracowników do uwzględnienia cech zadania. Niektóre części potoku mogą intensywniej obciążać obliczenia niż inne, a usługa Databricks automatycznie dodaje dodatkowych procesów roboczych w tych fazach pracy (i usuwa je, gdy nie są już potrzebne). Skalowanie automatyczne może obniżyć ogólne koszty w porównaniu ze statycznie wielkością wystąpienia obliczeniowego.

Skalowanie automatyczne obliczeń ma ograniczenia dotyczące skalowania w dół rozmiaru klastra dla obciążeń przesyłania strumieniowego ze strukturą. Usługa Databricks zaleca używanie tabel delta live z rozszerzonym skalowaniem automatycznym na potrzeby obciążeń przesyłania strumieniowego.

Korzystanie z automatycznego kończenia

Usługa Azure Databricks udostępnia kilka funkcji ułatwiających kontrolowanie kosztów dzięki zmniejszeniu bezczynności zasobów i kontrolowaniu czasu wdrażania zasobów obliczeniowych.

  • Skonfiguruj automatyczne kończenie wszystkich interakcyjnych zasobów obliczeniowych. Po upływie określonego czasu bezczynności zasób obliczeniowy zostanie zamknięty. Zobacz Automatyczne kończenie.
  • W przypadku przypadków użycia, w których zasoby obliczeniowe są potrzebne tylko w godzinach pracy, zasoby obliczeniowe można skonfigurować z automatycznym kończeniem, a zaplanowany proces może ponownie uruchomić obliczenia (i ewentualnie wstępne dane w razie potrzeby) rano przed powrotem użytkowników na swoich pulpitach. Zobacz CACHE SELECT (WYBIERANIE PAMIĘCI PODRĘCZNEJ).
  • Jeśli czas uruchamiania obliczeń jest zbyt długi, rozważ użycie pul klastrów, zobacz Najlepsze rozwiązania dotyczące puli. Pule usługi Azure Databricks to zestaw bezczynnych, gotowych do użycia wystąpień. Gdy węzły klastra są tworzone przy użyciu wystąpień bezczynnych, czas uruchamiania klastra i automatycznego skalowania jest zmniejszany. Jeśli pule nie mają bezczynnych wystąpień, pule rozszerzają się, przydzielając nowe wystąpienie od dostawcy wystąpień w celu uwzględnienia żądania klastra.

Usługa Azure Databricks nie pobiera opłat za jednostki usługi Databricks (DBU), podczas gdy wystąpienia są bezczynne w puli, co skutkuje oszczędnościami kosztów. Rozliczenia dostawcy wystąpień mają zastosowanie.

Używanie zasad obliczeniowych do kontrolowania kosztów

Zasady obliczeniowe mogą wymuszać wiele ograniczeń specyficznych dla kosztów dla zasobów obliczeniowych. Zobacz Doskonałość operacyjna — używanie zasad obliczeniowych. Na przykład:

  • Włącz skalowanie automatyczne klastra z ustawioną minimalną liczbą węzłów roboczych.
  • Włącz automatyczne kończenie działania klastra z rozsądną wartością (na przykład 1 godzinę), aby uniknąć płacenia za czas bezczynności.
  • Upewnij się, że można wybrać tylko ekonomiczne wystąpienia maszyn wirtualnych. Postępuj zgodnie z najlepszymi rozwiązaniami dotyczącymi konfiguracji klastra. Zobacz Najlepsze rozwiązania dotyczące konfiguracji obliczeniowej.
  • Stosowanie strategii wystąpienia typu spot.

3. Monitorowanie i kontrolowanie kosztów

Monitorowanie kosztów

Tabele systemu rozliczeniowego umożliwiają monitorowanie rozliczanego użycia konta usługi Azure Databricks. Zobacz Informacje o tabelach systemu użycia rozliczanego.

Najlepszym rozwiązaniem jest monitorowanie pełnych kosztów (w tym maszyn wirtualnych, magazynu i infrastruktury sieci). Można to osiągnąć za pomocą narzędzi do zarządzania kosztami dostawcy usług w chmurze lub przez dodanie narzędzi innych firm.

Tagowanie klastrów pod kątem przypisywania kosztów

Aby ogólnie monitorować koszty i dokładnie przypisywać użycie usługi Azure Databricks do jednostek biznesowych i zespołów w organizacji na potrzeby obciążeń zwrotnych, możesz tagować klastry, magazyny SQL i pule. Te tagi są propagowane do szczegółowych jednostek usługi Databricks (DBU) i maszyn wirtualnych dostawcy usług w chmurze oraz użycia magazynu obiektów blob na potrzeby analizy kosztów.

Upewnij się, że kontrola kosztów i przypisanie są brane pod uwagę podczas konfigurowania obszarów roboczych i klastrów dla zespołów i przypadków użycia. Usprawnia to tagowanie i zwiększa dokładność przypisywania kosztów.

Łączne koszty obejmują maszynę wirtualną dbU, dysk i wszelkie powiązane koszty sieci. W przypadku bezserwerowych magazynów SQL koszt jednostki DBU obejmuje już koszty maszyny wirtualnej i dysku.

Tagi zasobów usługi Azure Databricks można używać w narzędziach analizy kosztów w witrynie Azure Portal

Implementowanie możliwości obserwowania w celu śledzenia i obciążenia zwrotnego kosztów

Podczas pracy ze złożonymi ekosystemami technicznymi proaktywne zrozumienie nieznanych elementów jest kluczem do utrzymania stabilności platformy i kontrolowania kosztów. Możliwość obserwacji umożliwia analizowanie i optymalizowanie systemów na podstawie generowanych danych. Różni się to od monitorowania, które koncentruje się na identyfikowaniu nowych wzorców, a nie na śledzeniu znanych problemów.

Usługa Databricks zapewnia doskonałe możliwości wglądu w tabele systemowe, które są magazynami analitycznymi hostowanymi w usłudze Databricks danych operacyjnych konta klienta znalezionych w wykazie systemu. Zapewniają one wgląd w dane historyczne na koncie i zawierają przyjazne dla użytkownika informacje tabelaryczne dotyczące telemetrii platformy.

Zobacz blog: Intelligently Balance Cost Optimization and Reliability on Databricks (Inteligentne równoważenie kosztów i niezawodność w usłudze Databricks)

Regularne udostępnianie raportów kosztów

Generowanie raportów kosztów miesięcznych w celu śledzenia wzrostu i anomalii zużycia. Udostępnij te raporty według przypadków użycia lub zespołu zespołom, które są właścicielami obciążeń przy użyciu tagowania klastra. Eliminuje to niespodzianki i umożliwia zespołom proaktywne dostosowywanie obciążeń, jeśli koszty staną się zbyt wysokie.

Monitorowanie kosztów ruchu wychodzącego usługi Delta Sharing i zarządzanie nimi

W przeciwieństwie do innych platform udostępniania danych udostępnianie różnicowe nie wymaga replikacji danych. Ten model ma wiele zalet, ale oznacza to, że dostawca chmury może pobierać opłaty za ruch wychodzący podczas udostępniania danych w chmurach lub regionach. Zobacz Monitorowanie kosztów ruchu wychodzącego usługi Delta Sharing (dla dostawców) i zarządzanie nimi, aby monitorować opłaty za ruch wychodzący i zarządzać nimi.

4. Projektowanie ekonomicznych obciążeń

Równoważenie zawsze włączonego i wyzwalanego przesyłania strumieniowego

Tradycyjnie, gdy ludzie myślą o transmisji strumieniowej, terminy takie jak "w czasie rzeczywistym", "24/7" lub "zawsze włączone" przychodzą na myśl. Jeśli pozyskiwanie danych odbywa się w czasie rzeczywistym, bazowe zasoby obliczeniowe muszą działać 24/7, generując koszty co godzinę dnia.

Jednak nie każdy przypadek użycia, który opiera się na ciągłym strumieniu zdarzeń, wymaga natychmiastowego dodania tych zdarzeń do zestawu danych analizy. Jeśli wymaganie biznesowe dla przypadku użycia wymaga tylko nowych danych co kilka godzin lub każdego dnia, to wymaganie może zostać spełnione tylko z kilkoma uruchomieniami dziennie, co spowoduje znaczne obniżenie kosztów obciążeń. Usługa Databricks zaleca używanie przesyłania strumieniowego ze strukturą AvailableNow z wyzwalaczem dla obciążeń przyrostowych, które nie mają wymagań dotyczących małych opóźnień. Zobacz Konfigurowanie przyrostowego przetwarzania wsadowego.

Równowaga między wystąpieniami nadmiarowymi na żądanie i pojemnością

Wystąpienia typu spot korzystają z nadmiarowych zasobów maszyn wirtualnych w chmurze, które są dostępne w niższej cenie. Aby zaoszczędzić koszty, usługa Azure Databricks obsługuje tworzenie klastrów przy użyciu wystąpień typu spot. Usługa Databricks zaleca, aby pierwsze wystąpienie (sterownik Platformy Spark) zawsze było maszyną wirtualną na żądanie. Wystąpienia typu spot są dobrym wyborem w przypadku obciążeń, w których dopuszczalne jest dłuższe, ponieważ co najmniej jedno wystąpienie typu spot zostało eksmitowanych przez dostawcę usług w chmurze.