Udostępnij przez


Styl architektury danych big data

Architektura danych big data jest przeznaczona do obsługi pozyskiwania, przetwarzania i analizowania danych, które są zbyt duże lub złożone dla tradycyjnych systemów baz danych.

Diagram logiczny stylu architektury danych big data.

Rozwiązania do obsługi danych big data zwykle obejmują co najmniej jeden z następujących typów obciążeń:

  • Przetwarzanie wsadowe dużych zbiorów danych w spoczynku
  • Przetwarzanie danych big data w czasie rzeczywistym w ruchu
  • Interaktywna eksploracja danych big data
  • Analiza predykcyjna i uczenie maszynowe

Większość architektur danych big data obejmuje niektóre lub wszystkie następujące składniki:

  • Źródła danych: Rozwiązania do obsługi danych big data mogą zaczynać się od jednego lub większej liczby źródeł danych.

    • Magazyny danych, takie jak relacyjne bazy danych

    • Pliki, które tworzą aplikacje, takie jak pliki dziennika serwera internetowego i odpowiedzi interfejsu API

    • Źródła danych w czasie rzeczywistym, takie jak urządzenia przesyłane strumieniowo, elementy webhook lub aplikacje nadrzędne relacyjnej bazy danych

  • Magazyn danych: Dane na potrzeby operacji przetwarzania wsadowego są zwykle przechowywane w rozproszonym magazynie plików, który może zawierać duże ilości dużych plików w różnych formatach. Ten rodzaj magazynu jest często nazywany magazynem typu data lake. Opcje implementacji tego magazynu obejmują usługę Azure Data Lake Storage lub Microsoft Fabric OneLake.

  • Przetwarzanie wsadowe: Gdy dane muszą być przygotowane do analizy i udostępnione dla raportów, które odzwierciedlają wcześniejsze zdarzenia lub trendy, przetwarzanie wsadowe jest przydatne. Zazwyczaj te zadania obejmują odczytywanie plików źródłowych, ich przetwarzanie i zapisywanie danych wyjściowych w nowych plikach. Opcje obejmują używanie przepływów danych lub potoków danych w sieci szkieletowej.

  • Przetwarzanie w czasie rzeczywistym: Jeśli rozwiązanie zawiera źródła czasu rzeczywistego, architektura musi zawierać sposób przechwytywania i przechowywania komunikatów w czasie rzeczywistym na potrzeby przetwarzania strumienia. Dane mogą pozostawać w ruchu od momentu wygenerowania ich przez czyszczenie, transformację i ostateczne użycie w akcjach operacyjnych lub analitycznych. Wiele rozwiązań wymaga obsługi przetwarzania skalowalnego w poziomie, niezawodnego dostarczania i innych semantyki kolejkowania komunikatów. Opcje obejmują sieci szkieletowej Real-Time intelligence eventstreams, Azure Event Hubs, Azure IoT Hub i Apache Kafka.

  • Magazyn danych analitycznych: Wiele rozwiązań do obsługi danych big data przygotowuje dane do analizy, a następnie dostarcza przetworzone dane w formacie ustrukturyzowanym, który można wykonywać zapytania przy użyciu narzędzi analitycznych. W zależności od scenariusza magazyn danych analitycznych używany do obsługi tych zapytań może być magazynem zdarzeń w usłudze Microsoft Fabric w celu przetwarzania danych w ruchu, a strumień jest przetwarzany w locie. Może to być też wymiarowy magazyn danych, jak widać w większości tradycyjnych rozwiązań analizy biznesowej (BI) lub lakehouse (Bronze, Silver i Gold). Usługa Microsoft Fabric oferuje kilka opcji, takich jak eventhouses, warehouses i lakehouses. Każda opcja może być odpytywane przy użyciu języka SQL lub platformy Spark, w zależności od przypadku użycia. Skorzystaj z przewodnika po decyzjach dotyczących magazynu danych sieci szkieletowej , aby ułatwić podjęcie decyzji.

  • Analiza i raportowanie: Jednym z celów rozwiązań danych powinno być zapewnienie wglądu w dane za pośrednictwem analizy i raportowania. Aby umożliwić użytkownikom analizowanie danych, architektura może obejmować warstwę modelowania danych, taką jak wielowymiarowy moduł przetwarzania analitycznego online (OLAP) lub model danych tabelarycznych w usługach Azure Analysis Services. Może również obsługiwać samoobsługowe analizy biznesowej przy użyciu technologii modelowania i wizualizacji w usłudze Power BI lub programie Excel. Analiza i raportowanie mogą również mieć formę interaktywnej eksploracji danych przez analityków danych lub analityków danych. W przypadku tych scenariuszy usługa Microsoft Fabric udostępnia narzędzia, takie jak notesy, w których użytkownicy mogą wybrać język SQL lub wybrany przez siebie język programowania.

  • Akcje i alerty: Innym celem rozwiązania do obsługi danych big data powinno być zapewnienie wglądu operacyjnego w bieżący stan procesu biznesowego. Architektura powinna zawierać warstwę systemu akcji, która pobiera strumienie danych w czasie rzeczywistym podczas ich przetwarzania i wykrywania wyjątków i anomalii występujących w organizacji. Zamiast sprawdzać raport przez użytkownika, możesz użyć tych systemów alertów, aby aktywnie powiadamiać użytkowników i przywództwo o nietypowych działaniach. Real-Time Alerty aktywatora analizy zapewniają tego rodzaju proaktywne monitorowanie.

  • Aranżacji: Rozwiązania do obsługi danych big data mogą składać się z powtarzających się operacji przetwarzania danych hermetyzowanych w przepływach pracy. Te przepływy pracy przekształcają dane źródłowe, przenoszą dane między wieloma źródłami i ujściami, ładują przetworzone dane do magazynu danych analitycznych lub wypychają wyniki bezpośrednio do raportu lub pulpitu nawigacyjnego. Aby zautomatyzować te przepływy pracy, możesz użyć technologii orkiestracji, takiej jak potoki usługi Azure Data Factory lub Microsoft Fabric.

Firma Microsoft oferuje wiele usług dla architektury danych big data, które są pogrupowane mniej więcej w następujące kategorie:

  • Rozwiązania typu oprogramowanie jako usługa (SaaS), takie jak Microsoft Fabric

  • Usługi zarządzane, takie jak Data Lake Storage, Azure Stream Analytics, Event Hubs, IoT Hub, Azure Data Factory, Azure SQL Database i Azure Cosmos DB

Kiedy stosować tę architekturę

Rozważ ten styl architektury, gdy musisz wykonać następujące czynności:

  • Działanie na danych w czasie rzeczywistym w miarę generowania danych.
  • Przechowywanie i przetwarzanie danych w woluminach zbyt dużych dla tradycyjnej bazy danych.
  • Przekształcanie danych bez struktury na potrzeby analizy i raportowania.
  • Korzystanie z usług Azure Machine Learning lub Azure AI.

Korzyści

  • Opcje technologii: Usługa Microsoft Fabric udostępnia wiele z tych usług za pośrednictwem interfejsu SaaS i łączy różne składniki z wyprzedzeniem. Takie podejście upraszcza proces tworzenia kompleksowego rozwiązania do obsługi danych. Możesz również mieszać i dopasowywać usługi zarządzane platformy Azure, aby skorzystać z istniejących umiejętności lub inwestycji technologicznych.

  • Wydajność dzięki równoległości: Rozwiązania do obsługi danych big data korzystają z równoległości, co umożliwia korzystanie z rozwiązań o wysokiej wydajności, które są skalowane do dużych ilości danych.

  • Elastyczna skala: Wszystkie składniki architektury danych big data obsługują aprowizację skalowaną w poziomie. W związku z tym możesz dostosować rozwiązanie dla małych lub dużych obciążeń i płacić tylko za używane zasoby.

  • Współdziałanie z istniejącymi rozwiązaniami: Składniki architektury danych big data są również używane do przetwarzania Internetu rzeczy (IoT) i rozwiązań analizy biznesowej przedsiębiorstwa. Ta wszechstronność umożliwia utworzenie zintegrowanego rozwiązania między obciążeniami danych.

Wyzwania

  • Zestaw umiejętności: Niektóre technologie danych big data są wysoce wyspecjalizowane i polegają na strukturach i językach, które różnią się od tych używanych w ogólnych architekturach aplikacji. Alternatywnie pojawiają się nowsze interfejsy API, które opierają się na bardziej ugruntowanych językach.

  • Bezpieczeństwo: Rozwiązania do obsługi danych big data zwykle polegają na przechowywaniu wszystkich danych statycznych w scentralizowanym magazynie data lake. Zabezpieczanie dostępu do tych danych może być trudne, zwłaszcza gdy wiele aplikacji i platform musi pozyskiwać i wykorzystywać dane.

Najlepsze rozwiązania

  • Użyj równoległości. Większość technologii przetwarzania danych big data dystrybuuje obciążenie w wielu jednostkach przetwarzania. Ta dystrybucja wymaga utworzenia i przechowywania plików danych statycznych w formacie splittable. Rozproszone systemy plików, takie jak rozproszony system plików Hadoop (HDFS), mogą zoptymalizować wydajność odczytu i zapisu. Wiele węzłów klastra równolegle wykonuje rzeczywiste przetwarzanie, co zmniejsza ogólny czas zadania. Zalecamy użycie formatu danych z podziałem, takiego jak Parquet.

  • Partycjonowanie danych. Przetwarzanie wsadowe zwykle odbywa się zgodnie z harmonogramem cyklicznym, takim jak co tydzień lub co miesiąc. Partycjonowanie plików danych i struktur danych, takich jak tabele, na podstawie okresów, które są zgodne z harmonogramem przetwarzania. Ta strategia upraszcza pozyskiwanie danych i planowanie zadań, ułatwia rozwiązywanie problemów i może znacznie zwiększyć wydajność zapytań.

  • Zastosuj semantyka schematu do odczytu. Korzystanie z usługi Data Lake umożliwia łączenie magazynu dla plików w wielu formatach, strukturalnych, częściowo ustrukturyzowanych lub bez struktury. Zastosuj semantyka schematu do odczytu , która projektuje schemat na dane podczas przetwarzania zamiast w czasie przechowywania. Takie podejście zwiększa elastyczność rozwiązania i pomaga zapobiegać wąskim gardłom podczas pozyskiwania danych, które są przyczyną sprawdzania poprawności danych i sprawdzania typów.

  • Przetwarzanie danych wsadowych po przybyciu. Tradycyjne rozwiązania analizy biznesowej często używają procesu wyodrębniania, przekształcania i ładowania (ETL) w celu przeniesienia danych do magazynu danych. Jednak w przypadku większych ilości danych i szerszego zakresu formatów rozwiązania do obsługi danych big data zwykle przyjmują odmiany ETL, takie jak wyodrębnianie, ładowanie i przekształcanie (ELT).

  • Przetwarzanie danych przesyłanych strumieniowo w locie. W przypadku rozwiązań do przesyłania strumieniowego przekształć ładunek podczas przesyłania danych. Ponieważ masz do czynienia z znacznie mniejszymi pakietami w sieci, znacznie łatwiej jest przekształcić te mniejsze zestawy wierszy podczas generowania. Przejmij przekształcony strumień w silniku zoptymalizowanym pod kątem danych opartych na zdarzeniach, takich jak magazyn zdarzeń analizy Real-Time, który natychmiast udostępnia dane do działania.

  • Równoważenie użycia i kosztów czasu. W przypadku zadań przetwarzania wsadowego należy wziąć pod uwagę koszt poszczególnych jednostek węzłów obliczeniowych i koszt użycia tych węzłów do ukończenia zadania za minutę. Na przykład zadanie wsadowe może potrwać osiem godzin z czterema węzłami klastra. Jednak może się okazać, że zadanie używa wszystkich czterech węzłów tylko w ciągu pierwszych dwóch godzin, a potem wymagane są tylko dwa węzły. W takim przypadku uruchomienie całego zadania w dwóch węzłach zwiększa całkowity czas zadania, ale nie podwaja go, więc łączny koszt jest mniejszy. W niektórych scenariuszach biznesowych dłuższy czas przetwarzania może być lepszy od wyższego kosztu używania niedostatecznie używanych zasobów klastra.

  • Oddzielaj zasoby. Jeśli to możliwe, należy oddzielić zasoby na podstawie obciążeń, aby uniknąć scenariuszy takich jak jedno obciążenie przy użyciu wszystkich zasobów, podczas gdy druga czeka.

  • Organizowanie pozyskiwania danych. W niektórych przypadkach istniejące aplikacje biznesowe mogą zapisywać pliki danych do przetwarzania wsadowego bezpośrednio do kontenerów obiektów blob usługi Azure Storage, gdzie usługi podrzędne, takie jak Microsoft Fabric, mogą z nich korzystać. Jednak często trzeba zorganizować pozyskiwanie danych z lokalnych lub zewnętrznych źródeł danych do usługi Data Lake. Użyj przepływu pracy orkiestracji lub potoku, takiego jak te obsługiwane przez usługę Azure Data Factory lub Microsoft Fabric, aby osiągnąć przewidywalny i centralnie zarządzany ruch danych.

  • Wczesne czyszczenie poufnych danych. Przepływ pracy pozyskiwania danych powinien na wczesnym etapie procesu wyczyścić poufne dane, aby uniknąć ich przechowywania w usłudze Data Lake.

Architektura IoT

IoT to wyspecjalizowany podzestaw rozwiązań do obsługi danych big data. Na poniższym diagramie przedstawiono możliwą architekturę logiczną dla IoT. Diagram podkreśla składniki przesyłania strumieniowego zdarzeń architektury.

Diagram architektury IoT.

Brama w chmurze pozyskuje zdarzenia urządzeń na granicy chmury. Używa niezawodnego systemu obsługi komunikatów o małych opóźnieniach, aby zapewnić wydajną transmisję danych.

Urządzenia mogą wysyłać zdarzenia bezpośrednio do bramy w chmurze lub za pośrednictwem bramy pola. Brama pola jest wyspecjalizowanym urządzeniem lub oprogramowaniem, które zwykle jest kolokowane z urządzeniami, które odbiera zdarzenia i przekazuje je do bramy w chmurze. Brama pola może również wstępnie przetwarzać nieprzetworzone zdarzenia urządzenia, wykonując funkcje, takie jak filtrowanie, agregacja lub przekształcanie protokołu.

Po pozyskaniu zdarzenia przechodzą przez co najmniej jeden procesor strumienia , który może kierować dane lub wykonywać analizy i inne przetwarzanie.

Rozważ następujące typowe typy przetwarzania:

  • Dane są ładowane do magazynu danych opartego na zdarzeniach, takiego jak magazyn zdarzeń w Real-Time Intelligence w celu kontekstowania urządzenia IoT z metadanymi, takimi jak lokalizacja budynku i informacje o urządzeniu.

  • Analizowanie strumienia zdarzeń w czasie rzeczywistym w celu wykrywania anomalii, rozpoznawania wzorców w kroczących oknach czasowych lub wyzwalania alertów w przypadku wystąpienia określonych warunków w strumieniu.

  • Obsługa specjalnych typów komunikatów nietelemetrycznych z urządzeń, takich jak powiadomienia i alarmy.

  • Ocenianie zdarzeń przy użyciu modeli uczenia maszynowego w celu wykrywania anomalii, przewidywania awarii lub klasyfikowania zachowania urządzenia.

Szare pola pokazują składniki systemu IoT, które nie są bezpośrednio związane z transmisją strumieniową zdarzeń. Są one dołączone tutaj do kompletności.

  • Rejestr urządzeń to baza danych aprowizowania urządzeń. Zawiera identyfikatory urządzeń i zazwyczaj zawiera metadane, takie jak lokalizacja.

  • Interfejs API aprowizacji jest typowym interfejsem zewnętrznym umożliwiającym aprowizowanie i rejestrowanie nowych urządzeń.

  • Niektóre rozwiązania IoT umożliwiają wysyłanie komunikatów poleceń i sterowania do urządzeń.