Udostępnij za pośrednictwem


Metodologia sukcesu implementacji usługi Synapse: Ocena projektu puli platformy Spark

Uwaga

Ten artykuł stanowi część sukcesu implementacji usługi Azure Synapse według serii artykułów projektowych. Aby zapoznać się z omówieniem serii, zobacz Sukces implementacji usługi Azure Synapse zgodnie z projektem.

Należy ocenić projekt puli platformy Apache Spark, aby zidentyfikować problemy i sprawdzić, czy spełnia ona wytyczne i wymagania. Oceniając projekt przed rozpoczęciem opracowywania rozwiązań, można uniknąć blokowania i nieoczekiwanych zmian projektu. Dzięki temu można chronić oś czasu i budżet projektu.

Platforma Apache Spark w usłudze Synapse udostępnia równoległe przetwarzanie danych platformy Apache Spark w usłudze Azure Synapse Analytics. Ta ocena zawiera wskazówki dotyczące tego, kiedy platforma Apache Spark w usłudze Azure Synapse to — lub nie — odpowiednie rozwiązanie dla obciążenia. Opisuje on kwestie, które należy wziąć pod uwagę podczas oceniania elementów projektu rozwiązania, które zawierają pule platformy Spark.

Dopasuj analizę luk

Podczas planowania wdrożenia pul platformy Spark za pomocą usługi Azure Synapse najpierw upewnij się, że są one najlepsze dla twojego obciążenia.

Weź pod uwagę następujące kwestie.

  • Czy obciążenie wymaga inżynierii danych/przygotowania danych?
    • Platforma Apache Spark działa najlepiej w przypadku obciążeń, które wymagają:
      • Czyszczenie danych.
      • Przekształcanie częściowo ustrukturyzowanych danych, takich jak XML, na relacyjne.
      • Złożone przekształcanie tekstu, takie jak dopasowywanie rozmyte lub przetwarzanie języka naturalnego (NLP).
      • Przygotowywanie danych do uczenia maszynowego (ML).
  • Czy obciążenie związane z inżynierią danych/przygotowywaniem danych obejmuje złożone lub proste przekształcenia? A czy szukasz podejścia z małą ilością kodu/bez kodu?
    • W przypadku prostych przekształceń, takich jak usuwanie kolumn, zmienianie typów danych kolumn lub łączenie zestawów danych, rozważ utworzenie potoku usługi Azure Synapse przy użyciu działania przepływu danych.
    • Działania przepływu danych zapewniają podejście o niskim kodzie/braku kodu w celu przygotowania danych.
  • Czy obciążenie wymaga uczenia maszynowego na danych big data?
    • Platforma Apache Spark dobrze sprawdza się w przypadku dużych zestawów danych, które będą używane dla uczenia maszynowego. Jeśli używasz małych zestawów danych, rozważ użycie usługi Azure Machine Learning jako usługi obliczeniowej.
  • Czy planujesz przeprowadzić eksplorację danych lub analizę zapytań ad hoc na danych big data?
    • Platforma Apache Spark w usłudze Azure Synapse udostępnia język Python/Scala/SQL/. Eksploracja danych oparta na platformie NET. Jeśli jednak potrzebujesz pełnego środowiska języka Transact-SQL (T-SQL), rozważ użycie bezserwerowej puli SQL.
  • Czy masz bieżące obciążenie Spark/Hadoop i potrzebujesz ujednoliconej platformy danych big data?
    • Usługa Azure Synapse udostępnia ujednoliconą platformę analityczną do pracy z danymi big data. Istnieją pule platform Spark i SQL bezserwerowe dla zapytań ad hoc oraz dedykowana pula SQL do raportowania i obsługi danych.
    • Przeniesienie z obciążenia Spark/Hadoop ze środowiska lokalnego (lub innego środowiska w chmurze) może obejmować refaktoryzację, którą należy wziąć pod uwagę.
    • Jeśli szukasz podejścia metodą "lift-and-shift" środowiska danych big data apache ze środowiska lokalnego do chmury i musisz spełnić ścisłą umowę dotyczącą poziomu usług inżynierii danych (SLA), rozważ użycie usługi Azure HDInsight.

Zagadnienia dotyczące architektury

Aby upewnić się, że pula platformy Apache Spark spełnia wymagania dotyczące doskonałości operacyjnej, wydajności, niezawodności i zabezpieczeń, istnieją kluczowe obszary do zweryfikowania w architekturze.

Doskonałość operacyjna

Aby uzyskać doskonałość operacyjną, oceń następujące kwestie.

  • Środowisko: podczas konfigurowania środowiska zaprojektuj pulę platformy Spark, aby korzystać z funkcji, takich jak autoskalowanie i alokacja dynamiczna. Ponadto, aby zmniejszyć koszty, rozważ włączenie funkcji automatycznego wstrzymywania.
  • Zarządzanie pakietami: określ, czy wymagane biblioteki platformy Apache Spark będą używane na poziomie obszaru roboczego, puli lub sesji. Aby uzyskać więcej informacji, zobacz Zarządzanie bibliotekami dla platformy Apache Spark w usłudze Azure Synapse Analytics.
  • Monitorowanie: platforma Apache Spark w usłudze Azure Synapse zapewnia wbudowane monitorowanie pul platformy Spark i aplikacji przy tworzeniu każdej sesji platformy Spark. Rozważ również zaimplementowanie monitorowania aplikacji za pomocą usług Azure Log Analytics lub Prometheus i Grafana, których można użyć do wizualizacji metryk i dzienników.

Efektywność wydajności

Aby uzyskać wydajność, należy ocenić następujące kwestie.

  • Rozmiar pliku i typ pliku: rozmiar pliku i liczba plików mają wpływ na wydajność. Zaprojektuj architekturę, aby upewnić się, że typy plików sprzyja natywnym pozyskiwaniu za pomocą platformy Apache Spark. Ponadto pochylij się w kierunku mniejszej liczby dużych plików zamiast wielu małych plików.
  • Partycjonowanie: określ, czy partycjonowanie na poziomie folderu i/lub pliku zostanie zaimplementowane dla obciążenia. Partycje folderów ograniczają ilość danych do wyszukiwania i odczytu. Partycje plików zmniejszają ilość danych, które mają być przeszukiwane wewnątrz pliku , ale mają zastosowanie tylko do określonych formatów plików, które należy wziąć pod uwagę w początkowej architekturze.

Niezawodność

Aby uzyskać niezawodność, należy ocenić następujące kwestie.

  • Dostępność: pule platformy Spark mają czas rozpoczęcia od trzech do czterech minut. Zainstalowanie wielu bibliotek może potrwać dłużej. Podczas projektowania obciążeń wsadowych i przesyłania strumieniowego zidentyfikuj umowę SLA dotyczącą wykonywania zadania z informacji o ocenie i określ, która architektura najlepiej spełnia Twoje potrzeby. Należy również wziąć pod uwagę, że każde wykonanie zadania tworzy nowy klaster puli Spark.
  • Tworzenie punktów kontrolnych: przesyłanie strumieniowe platformy Apache Spark ma wbudowany mechanizm tworzenia punktów kontrolnych. Tworzenie punktów kontrolnych umożliwia odzyskanie strumienia po ostatnim przetworzonym wpisie, jeśli wystąpi błąd w węźle w puli.

Zabezpieczenia

W przypadku zabezpieczeń należy ocenić następujące kwestie.

  • Dostęp do danych: dostęp do danych musi być brany pod uwagę dla konta usługi Azure Data Lake Storage (ADLS) dołączonego do obszaru roboczego usługi Synapse. Ponadto określ poziomy zabezpieczeń wymagane do uzyskania dostępu do danych, które nie należą do środowiska usługi Azure Synapse. Zapoznaj się z informacjami zebranymi podczas etapu oceny.
  • Sieć: przejrzyj informacje o sieci i wymagania zebrane podczas oceny. Jeśli projekt obejmuje zarządzaną sieć wirtualną z usługą Azure Synapse, rozważ implikacje, jakie będzie miało to wymaganie na platformie Apache Spark w usłudze Azure Synapse. Jedną z nich jest brak możliwości korzystania z usługi Spark SQL podczas uzyskiwania dostępu do danych.

Następne kroki

W następnym artykule z serii sukcesów usługi Azure Synapse według projektu dowiesz się, jak ocenić plan projektu nowoczesnego magazynu danych przed rozpoczęciem projektu.

Aby uzyskać więcej informacji na temat najlepszych rozwiązań, zobacz Apache Spark for Azure Synapse Guidance (Wskazówki dotyczące platformy Apache Spark dla usługi Azure Synapse).