Udostępnij przez


Metodologia sukcesu implementacji Synapse: Ocena projektu puli Spark

Uwaga

Ten artykuł jest częścią serii artykułów „Sukces implementacji Azure Synapse zgodnie z założeniami projektowymi.” Aby zapoznać się z omówieniem serii, zobacz Sukces implementacji usługi Azure Synapse zgodnie z projektem.

Należy ocenić projekt puli 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. W ten sposób chronisz harmonogram 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. It describes points to consider when you're evaluating your solution design elements that incorporate Spark pools.

Fit gap analysis

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.
      • Complex free-text transformation, like fuzzy matching or natural language processing (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?
    • For simple transformations, like removing columns, changing column data types, or joining datasets, consider creating an Azure Synapse pipeline by using a data flow activity.
    • Działania przepływu danych zapewniają podejście niskokodowe/bezkodowe do przygotowania danych.
  • Czy Twoje obciążenie pracą wymaga uczenia maszynowego na dużych zbiorach danych?
    • 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 dużych zbiorach danych?
    • Platforma Apache Spark w usłudze Azure Synapse umożliwia eksplorację danych z wykorzystaniem języków Python/Scala/SQL/.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.
    • Moving from a Spark/Hadoop workload from on-premises (or another cloud environment) may involve some refactoring that you should take into consideration.
    • Jeśli szukasz podejścia typu "lift-and-shift" środowiska big data Apache ze środowiska lokalnego do chmury i musisz spełnić ścisłą umowę SLA dotyczącą poziomu usług inżynierii danych, 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.

Wydajność

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 sprzyjają natywnemu przetwarzaniu za pomocą 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 będzie wdrożone dla twojego 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.

  • Availability: Spark pools have a start time of three to four minutes. Zainstalowanie wielu bibliotek może potrwać dłużej. When designing batch vs. streaming workloads, identify the SLA for executing the job from your assessment information and determine which architecture best meets your needs. Also, take into consideration that each job execution creates a new Spark pool cluster.
  • Checkpointing: Apache Spark streaming has a built-in checkpointing mechanism. Checkpointing allows your stream to recover from the last processed entry should there be a failure on a node in your pool.

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).