Przetwarzanie danych w czasie zbliżonym do rzeczywistego

Azure AI Search
Azure Cosmos DB
Azure Data Lake
Azure Event Hubs
Azure Synapse Analytics

Przedsiębiorstwa oparte na danych muszą zapewnić ciągłą synchronizację systemów zaplecza i analiz niemal w czasie rzeczywistym z aplikacjami dostępnymi dla klientów. Wpływ transakcji, aktualizacji i zmian musi odzwierciedlać dokładnie procesy kompleksowe, powiązane aplikacje i systemy przetwarzania transakcji online (OLTP). Tolerowane opóźnienie zmian w aplikacjach OLTP odzwierciedlanych w systemach podrzędnych korzystających z danych może potrwać kilka minut.

W tym artykule opisano kompleksowe rozwiązanie do przetwarzania danych niemal w czasie rzeczywistym w celu zapewnienia synchronizacji danych typu lakehouse. Rozwiązanie korzysta z usług Azure Event Hubs, Azure Synapse Analytics i Azure Data Lake Storage do przetwarzania i analizy danych.

Apache i Apache® Spark są zastrzeżonymi znakami towarowymi lub znakami towarowymi programu Apache Software Foundation w Stany Zjednoczone i/lub innych krajach. Użycie tych znaków nie jest dorozumiane przez fundację Apache Software Foundation.

Architektura

Diagram przedstawiający przepływ danych dla kompleksowego rozwiązania do przetwarzania danych.

Pobierz plik programu Visio z tą architekturą.

Przepływ danych

  1. Przechwytywanie zmian danych jest wymaganiem wstępnym dla systemów źródłowych do nasłuchiwania zmian. Łączniki debezium mogą łączyć się z różnymi systemami źródłowymi i korzystać ze zmian w miarę ich wprowadzania. Łączniki mogą przechwytywać zmiany i tworzyć zdarzenia z różnych systemów zarządzania relacyjnymi bazami danych (RDBMS). Zainstalowanie łącznika Debezium wymaga systemu platformy Kafka Connect.

  2. Łączniki wyodrębniają dane zmian i wysyłają przechwycone zdarzenia do usługi Azure Event Hubs. Usługa Event Hubs może odbierać duże ilości danych z wielu źródeł.

  3. Usługa Event Hubs przesyła strumieniowo dane do pul platformy Spark usługi Azure Synapse Analytics lub może wysyłać dane do strefy docelowej usługi Azure Data Lake Storage w formacie nieprzetworzonym.

  4. Inne źródła danych wsadowych mogą używać potoków usługi Azure Synapse do kopiowania danych do usługi Data Lake Storage i udostępniania ich do przetwarzania. Pełny przepływ pracy wyodrębniania, przekształcania i ładowania (ETL) może wymagać łączenia różnych kroków lub dodawania zależności między krokami. Potoki usługi Azure Synapse mogą organizować zależności przepływu pracy w ramach ogólnej struktury przetwarzania.

  5. Pule platformy Azure Synapse Spark używają w pełni obsługiwanych interfejsów API przesyłania strumieniowego ze strukturą platformy Apache Spark do przetwarzania danych w strukturze przesyłania strumieniowego spark. Krok przetwarzania danych obejmuje kontrole jakości danych i weryfikacje reguł biznesowych wysokiego poziomu.

  6. Usługa Data Lake Storage przechowuje zweryfikowane dane w otwartym formacie usługi Delta Lake . Usługa Delta Lake zapewnia niepodzielność, spójność, izolację i trwałość (ACID) semantyki i transakcji, skalowalną obsługę metadanych oraz ujednolicone przetwarzanie danych przesyłanych strumieniowo i wsadowych dla istniejących magazynów danych.

    Użycie indeksów na potrzeby przyspieszania zapytań zwiększa różnicę z dalszymi ulepszeniami wydajności. Dane ze zweryfikowanej strefy usługi Data Lake Storage mogą być również źródłem dalszej zaawansowanej analizy i uczenia maszynowego.

  7. Dane ze zweryfikowanej strefy usługi Data Lake Storage, przekształcone i wzbogacone o więcej reguł do końcowego przetworzonego stanu, są ładowane do dedykowanej puli SQL na potrzeby uruchamiania zapytań analitycznych na dużą skalę.

  8. Usługa Power BI używa danych udostępnianych za pośrednictwem dedykowanej puli SQL do tworzenia pulpitów nawigacyjnych i raportów klasy korporacyjnej.

  9. Możesz również użyć przechwyconych danych pierwotnych w strefie docelowej usługi Data Lake Store i zweryfikowanych danych w formacie delta dla:

    • Dalsze analizy ad hoc i eksploracyjne za pośrednictwem pul bezserwerowych SQL usługi Azure Synapse.
    • Uczenie maszynowe za pośrednictwem usługi Azure Machine Learning.
  10. W przypadku niektórych interfejsów o małych opóźnieniach dane muszą być zdenormalizowane w przypadku opóźnień serwera jednocyfrowego. Ten scenariusz użycia dotyczy głównie odpowiedzi interfejsu API. Ten scenariusz wysyła zapytania do dokumentów w magazynie danych NoSQL, takim jak usługa Azure Cosmos DB, na potrzeby odpowiedzi z jedną cyfrą milisekund.

  11. Strategia partycjonowania usługi Azure Cosmos DB może nie pożyczać się do wszystkich wzorców zapytań. Jeśli tak jest, możesz rozszerzyć rozwiązanie, indeksując dane, do których interfejsy API muszą uzyskiwać dostęp za pomocą usługi Azure Cognitive Search. Usługi Azure Cosmos DB i Cognitive Search mogą spełniać większość scenariuszy, które wymagają odpowiedzi na zapytania o małe opóźnienia.

Składniki

To rozwiązanie korzysta z następujących składników platformy Azure:

  • Event Hubs to zarządzana, rozproszona usługa pozyskiwania, która umożliwia skalowanie w celu pozyskiwania dużych ilości danych. Dzięki mechanizmowi wydawcy subskrybentów usługi Event Hubs różne aplikacje mogą wysyłać komunikaty do tematów w usłudze Event Hubs, a odbiorcy podrzędni mogą łączyć się z komunikatami i przetwarzać je. Funkcja przechwytywania usługi Event Hubs może zapisywać komunikaty w usłudze Data Lake Storage w formacie AVRO w miarę ich nadejścia. Ta możliwość umożliwia łatwe przetwarzanie mikrosadowe i scenariusze przechowywania długoterminowego. Usługa Event Hubs oferuje również interfejs API zgodny z platformą Kafka i obsługuje rejestr schematów.

  • Usługa Data Lake Storage tworzy podsystem magazynowania, który przechowuje wszystkie dane w formatach pierwotnych i zweryfikowanych. Usługa Data Lake Storage może obsługiwać transakcje na dużą skalę i obsługuje różne formaty i rozmiary plików. Hierarchiczne przestrzenie nazw pomagają organizować dane w znanej strukturze folderów i obsługiwać uprawnienia przenośnego interfejsu systemu operacyjnego dla systemu UniX (POSIX). Sterownik azure Blob Filesystem (ABFS) oferuje interfejs API zgodny z usługą Hadoop.

  • Azure Synapse Analytics to nieograniczona usługa analizy, która łączy integrację danych, magazynowanie danych przedsiębiorstwa i analizę danych big data. To rozwiązanie korzysta z następujących funkcji ekosystemu usługi Azure Synapse Analytics:

    • Pule platformy Azure Synapse Spark oferują środowisko uruchomieniowe platformy Spark na żądanie, które dodaje wbudowane ulepszenia wydajności platformy Spark typu open source. Klienci mogą konfigurować elastyczne ustawienia automatycznego skalowania, przesyłać zadania zdalnie za pośrednictwem punktu końcowego usługi Apache Livy i korzystać z interfejsu notesu programu Synapse Studio na potrzeby środowisk interaktywnych.

    • Pule bezserwerowe usługi Azure Synapse SQL udostępniają interfejs do wykonywania zapytań o dane typu lakehouse przy użyciu znanej składni języka T-SQL. Nie ma infrastruktury do skonfigurowania, a wdrożenie obszaru roboczego usługi Azure Synapse automatycznie tworzy punkt końcowy. Pule bezserwerowe usługi Azure Synapse SQL umożliwiają podstawowe odnajdywanie i eksplorowanie danych oraz są dobrym rozwiązaniem do analizy zapytań ad hoc użytkownika.

    • Dedykowane pule SQL usługi Azure Synapse przechowują dane w tabelach relacyjnych z magazynem kolumnowym. Dedykowane pule SQL używają architektury skalowanej w poziomie do dystrybucji przetwarzania danych między wieloma węzłami. Zapytania polyBase przeprowadzą dane do tabel puli SQL. Tabele mogą łączyć się z usługą Power BI na potrzeby analizy i raportowania.

  • Usługa Power BI udostępnia interfejs wizualny umożliwiający tworzenie i uzyskiwanie dostępu do raportów i pulpitów nawigacyjnych. Program Power BI Desktop może łączyć się z różnymi źródłami danych, łączyć źródła w model danych i tworzyć raporty lub pulpity nawigacyjne. Usługa Power BI umożliwia przekształcanie danych na podstawie wymagań biznesowych oraz udostępnianie wizualizacji i raportów innym osobom za pośrednictwem usługa Power BI.

  • Azure Cosmos DB to zarządzana, wielomodalna baza danych NoSQL, która obsługuje otwarte interfejsy API, takie jak MongoDB i Cassandra. To rozwiązanie używa usługi Azure Cosmos DB dla aplikacji, które wymagają jednocyfrowych milisekund odpowiedzi i wysokiej dostępności. Usługa Azure Cosmos DB oferuje zapisy w wielu regionach we wszystkich regionach świadczenia usługi Azure. Za pomocą usługi Azure Synapse Link dla usługi Azure Cosmos DB można uzyskiwać szczegółowe informacje i uruchamiać analizy danych w czasie rzeczywistym.

  • Azure Cognitive Search to usługa wyszukiwania w chmurze, która może indeksować dane potrzebne przez aplikacje i interfejsy API. Usługa Cognitive Search ma opcjonalne funkcje wzbogacania sztucznej inteligencji, które ułatwiają wyodrębnianie tekstu i wnioskowanie tekstu z plików innych niż tekstowe. Usługa Cognitive Search integruje się z usługami, takimi jak Azure Data Lake Storage i Azure Cosmos DB, aby łatwo uzyskiwać dostęp do danych i indeksować je. Możesz wykonywać zapytania dotyczące indeksowanych danych przy użyciu interfejsu API REST lub zestawu .NET SDK. Aby uzyskać dane z dwóch oddzielnych indeksów, możesz połączyć je w jeden indeks lub użyć złożonych typów danych.

Szczegóły scenariusza

Kompleksowe przepływy pracy do przetwarzania zmian w czasie zbliżonym do rzeczywistego wymagają:

  • Technologia przechwytywania zmian danych (CDC). Aplikacje OLTP mogą mieć różne magazyny danych zaplecza, takie jak SQL Server, MySQL i Oracle. Pierwszym krokiem jest nasłuchiwanie zmian w miarę ich wprowadzania i propagowanie ich do przodu.
  • Bufor pozyskiwania do publikowania zdarzeń zmiany na dużą skalę. Ta usługa powinna mieć możliwość obsługi dużych ilości danych w miarę nadejścia komunikatów. Indywidualni subskrybenci mogą łączyć się z tym systemem i przetwarzać dane.
  • Rozproszony i skalowalny magazyn danych w formacie nieprzetworzonym.
  • Rozproszony, wydajny system przetwarzania strumieniowego, który umożliwia użytkownikom ponowne uruchamianie stanu i zarządzanie nim.
  • System analityczny, który działa na dużą skalę do podejmowania decyzji biznesowych.
  • Samoobsługowy interfejs analityczny.
  • W przypadku odpowiedzi interfejsu API o małych opóźnieniach baza danych NoSQL do przechowywania zdenormalizowanej reprezentacji danych.
  • W niektórych przypadkach system indeksowania danych, odświeżania indeksu w regularnych odstępach czasu i udostępniania najnowszych danych do użycia podrzędnego.

Wszystkie powyższe technologie powinny używać odpowiednich konstrukcji zabezpieczeń na potrzeby zabezpieczeń obwodowych, uwierzytelniania, autoryzacji i szyfrowania danych.

Potencjalne przypadki użycia

To rozwiązanie jest odpowiednie dla:

  • Branże, które muszą propagować zmiany z OLTP do przetwarzania analizy online (OLAP).
  • Aplikacje, które wymagają przekształcania lub wzbogacania danych.

Scenariusz przetwarzania danych w czasie rzeczywistym jest szczególnie ważny w branży usług finansowych. Jeśli na przykład ubezpieczenie, karta kredytowa lub klient bankowy dokonuje płatności, a następnie natychmiast kontaktuje się z działem obsługi klienta, agent pomocy technicznej klienta musi mieć najnowsze informacje.

Podobne scenariusze dotyczą sektorów handlu detalicznego, handlu i opieki zdrowotnej. Włączenie tych scenariuszy usprawnia operacje, co prowadzi do zwiększenia produktywności organizacji i zwiększenia zadowolenia klientów.

Kwestie wymagające rozważenia

Te zagadnienia implementują filary struktury Azure Well-Architected Framework, która jest zestawem wytycznych, które mogą służyć do poprawy jakości obciążenia. Aby uzyskać więcej informacji, zobacz Microsoft Azure Well-Architected Framework.

Niezawodność

Niezawodność zapewnia, że aplikacja może spełnić zobowiązania podjęte przez klientów. Aby uzyskać więcej informacji, zobacz Omówienie filaru niezawodności.

  • Usługa Event Hubs oferuje 90-dniowe przechowywanie danych w warstwach Premium i dedykowanych. W przypadku scenariuszy trybu failover można skonfigurować pomocniczą przestrzeń nazw w sparowanym regionie i aktywować ją podczas pracy w trybie failover.

  • Zadania puli platformy Spark usługi Azure Synapse Są przetwarzane co siedem dni, ponieważ węzły są wyłączane do konserwacji. Rozważ to działanie podczas pracy z umowami dotyczącymi poziomu usług (SLA) powiązanymi z systemem. To ograniczenie nie jest problemem w wielu scenariuszach, w których cel czasu odzyskiwania (RTO) wynosi około 15 minut.

Optymalizacja kosztów

Optymalizacja kosztów dotyczy sposobów zmniejszenia niepotrzebnych wydatków i poprawy wydajności operacyjnej. Aby uzyskać więcej informacji, zobacz Omówienie filaru optymalizacji kosztów.

  • Możesz wybrać różne warstwy usługi Event Hubs na podstawie właściwości obciążenia. Opłaty za usługę Event Hubs Przechwyć magazyn oddzielnie na podstawie ilości danych przechowywanych w usłudze Data Lake Storage.

  • Rozważ zarządzanie cyklem życia obiektów za pośrednictwem warstw w usłudze Azure Data Lake Storage. W miarę starzenia się danych można przenosić dane z warstwy Gorąca, w której trzeba uzyskać dostęp do najnowszych danych na potrzeby analizy, do warstwy magazynowania zimnego, która jest znacznie niższa. Warstwa magazynowania zimnego to ekonomiczna opcja długoterminowego przechowywania.

  • Możesz wstrzymać dedykowaną pulę SQL, jeśli nie używasz jej w środowiskach deweloperskich ani testowych. Skrypt można zaplanować, aby wstrzymać pulę zgodnie z potrzebami lub ręcznie wstrzymać pulę za pośrednictwem portalu.

  • Usługa Azure Cosmos DB oferuje różne modele aprowizacji, takie jak bezserwerowa, aprowizowana przepływność ręczna i skalowanie automatyczne. Rozważ użycie bezserwerowej aprowizacji dla obciążeń programistycznych i testowych. Możesz również użyć automatycznego skalowania, w którym można ustawić maksymalną liczbę jednostek żądania na sekundę (RU/s) w kontenerze. Przepływność w kontenerze jest skalowana automatycznie między 10% maksymalnej liczby jednostek RU/s jako niższego progu i maksymalnej skonfigurowanej liczby jednostek RU/s.

Efektywność wydajności

Efektywność wydajności to możliwość skalowania obciążenia w celu zaspokojenia zapotrzebowania użytkowników w wydajny sposób. Aby uzyskać więcej informacji, zobacz Omówienie filaru wydajności.

  • Usługę Event Hubs można skalować za pomocą partycjonowania. Rozważ partycjonowanie danych, aby zachować kolejność zdarzeń za pośrednictwem dziennika zatwierdzeń. Partycjonowanie umożliwia tworzenie wielu dzienników równoległych przez maksymalizację dostępnej pojemności przepływności.

  • Możesz skonfigurować pule platformy Azure Synapse Spark z małymi, średnimi lub dużymi jednostkami SKU maszyn wirtualnych na podstawie obciążenia. Możesz również skonfigurować autoskalowanie w pulach platformy Azure Synapse Spark, aby uwzględnić spiczaste obciążenia. Jeśli potrzebujesz więcej zasobów obliczeniowych, klastry są automatycznie skalowane w górę, aby zaspokoić zapotrzebowanie, i skalować w dół po zakończeniu przetwarzania.

  • Najlepsze rozwiązania dotyczące projektowania tabel w dedykowanej puli SQL. Mają zastosowanie skojarzone limity wydajności i skalowalności na podstawie warstwy uruchomionej w puli SQL.

  • Usługa Azure Cosmos DB używa partycji do skalowania kontenerów na podstawie klucza partycji. Wszystkie dane oparte na kluczu partycji tworzy partycję logiczną. Upewnij się, że wybrano poprawną strategię partycjonowania na podstawie wymagań dotyczących obciążeń. Indeksy można również używać do szybszego pobierania danych.

Współautorzy

Ten artykuł jest obsługiwany przez firmę Microsoft. Pierwotnie został napisany przez następujących współautorów.

Główny autor:

Inny współautor:

Aby wyświetlić niepubalne profile serwisu LinkedIn, zaloguj się do serwisu LinkedIn.

Następne kroki