Udostępnij za pośrednictwem


Wybieranie między notesami Python i PySpark w usłudze Microsoft Fabric

Wraz z wprowadzeniem lekkich notesów języka Python w usłudze Microsoft Fabric klienci mają teraz dwie niezawodne opcje tworzenia i skalowania przepływów pracy analizy: Notesy języka Python i notesy PySpark. Oba zapewniają znany interfejs notesu, ale różnią się znacznie w sposobie zarządzania zasobami obliczeniowymi, skalowalnością i wydajnością kosztów.

Fabric upraszcza proces wybierania lub przechodzenia między typami notatników, umożliwiając specjalistom ds. danych optymalizację pod kątem elastyczności, wydajności i budżetu. Ten przewodnik ułatwia ocenę, który notebook najlepiej nadaje się do bieżących potrzeb i jak rozwijać podejście w miarę zwiększania złożoności i skali obciążeń roboczych. "Pula startowa" zapewnia wstępnie rozgrzany kontener obliczeniowy, który umożliwia niemal natychmiastowe uruchamianie notebooków Python lub PySpark.

Macierz szybkiej decyzji — szybkie wybieranie

Najlepsze rozwiązanie do szybkiego wyboru na podstawie typu obciążenia.

Skorzystaj z tego przewodnika na wysokim poziomie, aby szybko określić najbardziej odpowiedni typ notatnika dla typowych schematów obciążenia. Ta tabela jest najlepsza w przypadku wczesnego planowania i przeglądów architektury.

Scenariusz Zalecany notatnik
Obejmuje wstępnie zainstalowane biblioteki DuckDB i Polars Notesy języka Python
Małe i średnie dane (mieści się w pamięci) Notesy języka Python (lub PySpark w jednowęzłowym klastrze Spark)
Szybka eksploracja i tworzenie prototypów Notesy języka Python (lub PySpark w jednowęzłowym klastrze Spark)
Duże zestawy danych (10 GB+) przekraczające pamięć Notatniki PySpark
Złożone przepływy pracy danych lub potoki ETL Notatniki PySpark
Wysoka współbieżność lub przetwarzanie równoległe Notatniki PySpark
Wymaga natywnych interfejsów API platformy Spark (MLlib, SQL, Streaming) Notatniki PySpark

Krótkie podsumowanie kluczowych scenariuszy — dokładne porównanie

Użyj tej uporządkowanej tabeli porównawczej, aby zrozumieć kompromisy architektoniczne i operacyjne między rodzajami notebooków. Najlepiej nadaje się do oceny inżynieryjnej lub planowania implementacji.

Wykonywanie i wydajność

Scenariusz Notatniki języka Python (2-rdzeniowa maszyna wirtualna) Notatniki PySpark (Spark Compute)
Czas uruchamiania Wbudowana pula startowa inicjuje się w około 5 sekund, a pula na żądanie zajmuje około 3 minut. Uruchamianie trwa od około 5 sekund (pula startowa) do kilku minut (klastry Spark na żądanie).
Szybkie przekształcenia i wywołania API Idealne rozwiązanie dla zestawów danych o małych i średnich rozmiarach (do 1 GB) Zoptymalizowane pod kątem dużych zestawów danych przy użyciu wykonywania wektoryzowanego.
Umiarkowane obciążenia Nie zoptymalizowane pod kątem rozmiarów danych zbliżających się do nasycenia pamięci Wydajne skalowanie dzięki rozproszonemu przetwarzaniu.
Obsługa dużych zestawów danych Ograniczenie wynikające z pamięci pojedynczego węzła. Może zmagać się ze skalowaniem. Przetwarzanie rozproszone zapewnia skalowalną obsługę obciążeń od wielu GB do TB.
High-Concurrency Wykonywanie Ręczna równoległość w stylu FIFO w każdym zeszycie Współbieżność zarządzana przez system z obsługą wykonywania równoległego.
Dostosowywanie i skalowanie zasobów Stałe zasoby obliczeniowe (2-rdzeniowa maszyna wirtualna); nie posiada automatycznego skalowania. Użytkownicy mogą ręcznie skalować poziomo przy użyciu %%config w notatniku. Elastyczna alokacja zasobów; obsługuje skalowanie automatyczne i niestandardowe konfiguracje platformy Spark.

Przepływ pracy i aranżacja

Scenariusz Notatniki języka Python (2-rdzeniowa maszyna wirtualna) Notatniki PySpark (Spark Compute)
Orkiestracja interfejsu API Skuteczne w przypadku lekkich przepływów aranżacji i sterowania, zwłaszcza integracji opartych na protokole REST/gRPC Mniej optymalny dla podstawowych zadań orkiestracji z powodu dłuższego uruchamiania i rozproszonego obciążenia.
Złożone DAG ETL Ograniczone do sekwencyjnego wykonywania zadań (FlFO) w jednym węźle bez obsługi przetwarzania równoległego. Obsługuje współbieżne wykonywanie zadań w grupach DAG przy użyciu planowania FlFO lub FAlR, umożliwiając wydajne przetwarzanie równoległe dla złożonych przepływów pracy ETL.

Obsługa platformy i bibliotek

Scenariusz Notatniki języka Python (2-rdzeniowa maszyna wirtualna) Notatniki PySpark (Spark Compute)
Dostęp do biblioteki Silna obsługa biblioteki języka Python w wielu środowiskach uruchomieniowych; jednak ograniczony dostęp do bibliotek natywnych platformy Spark może wymagać ręcznej integracji. W pełni obsługuje biblioteki MLlib, Spark SQL, PySpark i Spark Streaming.
Obsługa Delta Lake Środowisko uruchomieniowe notesu języka Python zawiera wstępnie zainstalowane biblioteki deltas i duckdb, co umożliwia odczytywanie i zapisywanie danych Delta Lake. Jednak niektóre funkcje usługi Delta Lake mogą być nadal nieobsługiwane. W pełni obsługiwane ze zgodnością z natywnymi systemami.

Gotowość do produkcji i przedsiębiorstwa

Scenariusz Notatniki języka Python (2-rdzeniowa maszyna wirtualna) Notatniki PySpark (Spark Compute)
Zarządzanie produkcją Ograniczone funkcje produkcyjne; Nie obsługuje zmiennych środowiska. Obsługa produkcyjnych przepływów pracy ze zmiennymi środowiskowymi, zarządzaniem biblioteką za pomocą elementów środowiska i wdrażaniem opartym na elementach.

Zagadnienia dotyczące kosztów

Scenariusz Notatniki języka Python (2-rdzeniowa maszyna wirtualna) Notatniki PySpark (Spark Compute)
Profil kosztów Niższy koszt początkowy (minimum 2 rdzenie wirtualne); najlepiej nadaje się do obsługi lekkich obciążeń ad hoc. Wyższy koszt początkowy (co najmniej 4 rdzenie wirtualne); przeznaczony dla skalowalnych obciążeń klasy korporacyjnej. Skalowanie automatyczne może obniżyć koszty, co może spowodować obniżenie całkowitego kosztu posiadania (TCO).

Kiedy używać języka Python czy notebooków PySpark

Notesy materiałowe zapewniają elastyczność dla szerokiego zakresu użytkowników i obciążeń roboczych. Ta sekcja ułatwia ocenę, który typ notesu najlepiej pasuje do bieżących i przyszłych potrzeb.

Notesy języka Python umożliwiają szybką iterację, ekonomiczną analizę i interaktywne programowanie. Są one idealne dla mniejszych zestawów danych i obejmują natywną obsługę bibliotek, takich jak DuckDB i Polars.

Użyj notesów PySpark do przetwarzania rozproszonego, przepływów pracy ETL klasy produkcyjnej lub scenariuszy, w których niezbędne są interfejsy API o wysokiej współbieżności i natywnych dla platformy Spark.

Wybierz notatniki Python, gdy:

  • Potrzebujesz szybkiego uruchamiania (zazwyczaj w ciągu kilku sekund) w uproszczonym kontenerze 2-rdzeniowym.
  • Jeśli minimalizacja kosztów obliczeniowych jest priorytetem — na potrzeby interaktywnej analizy lub zaplanowanych mikrozadań.
  • Potrzebujesz natychmiastowego dostępu do bibliotek, które można zainstalować za pomocą pip oraz wstępnie zainstalowanych DuckDB i Polars.
  • Należy przetestować różne wersje środowiska uruchomieniowego języka Python.
  • Dane bez problemu mieszczą się w pamięci pojedynczego węzła.

Wybierz Notesy PySpark, gdy:

  • Obciążenia przekraczają limity pamięci lub zasobów obliczeniowych pojedynczego węzła.
  • Do uruchamiania zadań równoległych w notesach wymagane są zespoły o wysokiej współbieżności.
  • Organizujesz złożone potoki ETL z planowaniem typu FAIR lub FIFO.
  • Korzystasz z natywnych dla platformy Spark interfejsów API, takich jak MLlib, Spark SQL lub Spark Streaming.
  • Potrzebujesz funkcji klasy produkcyjnej, takich jak zmienne środowiskowe i zarządzanie bibliotekami opartymi na elementach.

Kluczowe różnice w skrócie — zwięzłe informacje

Zobacz Słownik na końcu tego przewodnika, aby zapoznać się z definicjami terminów, takich jak VORDER, NEE i Items-Based Library Management.

Ta sekcja zawiera krótkie informacje na temat podstawowych różnic technicznych i architektonicznych między notesami Python i PySpark.

Kategoria Notesy języka Python Notatniki PySpark
Czas wykonania obliczeń Uproszczony kontener (2-rdzeniowa maszyna wirtualna) Klaster Spark (pula z jednym węzłem lub pulą o wysokiej współbieżności)
Czas uruchamiania Natychmiastowe uruchamianie (w sekundach poprzez pulę startową) Czas uruchamiania wynosi od około 5 sekund (za pośrednictwem puli startowej) do kilku minut (w przypadku korzystania z klastrów Spark na żądanie).
Profil kosztów Niższy koszt; idealne do wykonywania krótkich zadań i tworzenia prototypów Wyższy koszt; dostosowane do skalowalnych, długotrwałych obciążeń
Wersjonowanie w Pythonie/Sparku Dostępnych jest wiele wersji języka Python Powiązane z określoną wersją środowiska uruchomieniowego platformy Spark
Biblioteki niestandardowe Zainstaluj pip + foldery zasobów pip instalacja + foldery zasobów + elementy środowiska
Możliwości architektury Spark Ograniczony dostęp do funkcji silnika Spark Pełny dostęp: NEE, Autotune, VORDER, Vegas Cache
Zgodność Delta Lake Częściowo zgodne; potencjalne problemy z wydajnością W pełni obsługiwane i zoptymalizowane

Rozwijanie obciążenia: od języka Python do PySpark

Notesy tkaninowe zostały zaprojektowane tak, aby rosnąć wraz ze wzrostem złożoności obciążenia. W tej sekcji opisano, jak można skalować strategię Notatnika od prostej eksploracji do rozproszonego przetwarzania danych.

Etap Zalecany notatnik Warunek wyzwalacza
Rozpocznij Notatniki Pythona (2-rdzeniowe) Małe, interaktywne obciążenia
Skalowanie w górę Notatniki Python (ręczne przełączanie na większą maszynę wirtualną) Przekraczanie limitów pamięci lub procesora
Skalowanie w poziomie Notatniki PySpark (ręczne przełączanie do puli Spark) Potrzeba rozproszonego przetwarzania lub równoległego wykonywania obliczeń

Wskazówka

Podczas przechodzenia do programu PySpark upewnij się, że kod używa składni zgodnej z platformą Spark. Przed wdrożeniem w środowisku Spark zweryfikuj obciążenia w środowisku produkcyjnym.

Podsumowanie

Notesy języka Python obsługują operacje jądra, takie jak przerywanie i ponowne uruchamianie jądra, co przyspiesza programowanie interakcyjne. Są one idealne do szybkiej, ekonomicznej analizy małych i średnich zestawów danych oraz świetnie się sprawdzają w zakresie tworzenia prototypów, eksperymentowania i prostych zaplanowanych zadań.

W miarę zwiększania się wolumenu i złożoności danych, notesy PySpark oferują rozproszoną moc obliczeniową i funkcje klasy produkcyjnej niezbędne do analityki w przedsiębiorstwach na dużą skalę. Wybór odpowiedniego laptopa to rozwijający się proces. Zacznij od najprostszej opcji, która spełnia bieżące potrzeby i skaluj w miarę rozwoju środowiska danych.

Zapoznaj się z słownikiem na ostatniej stronie, aby uzyskać wyjaśnienia terminów, takich jak NEE, VORDER i Vegas Cache.

Słownik terminów

  • Item-Based Zarządzanie bibliotekami: zarządza wersjami pakietów i bibliotek produkcyjnych w elemencie Środowisko.
  • Zgodność Delta Lake: obsługa międzyśrodowiskowa dla tabel Delta; w pełni obsługiwane w PySpark.
  • FAIR Scheduling: zasady planowania, które przydzielają zasoby sprawiedliwie w ramach współbieżnych zadań platformy Spark.
  • Planowanie FIFO: Pierwsze wFirst-Out kolejności wykonywania dla harmonogramowania zadań.
  • NEE (Native Execution Engine): zoptymalizowany aparat zapytań unikatowy dla Fabric Spark.
  • Pula platformy Spark: współużytkowany zasób obliczeniowy do uruchamiania rozproszonych obciążeń platformy Spark.
  • VORDER: Optymalizacja struktury dla wektoryzowanych ścieżek wykonania zapytań.
  • Przyspieszanie wektoryzowane: przetwarza dane w partiach przy użyciu operacji wektorów w celu zwiększenia wydajności.
  • Vegas Cache: pamięć podręczna w pamięci, która przyspiesza powtarzany dostęp do danych platformy Spark.