Oszczędności kosztów za pośrednictwem protokołu HTAP z usługą Azure SQL

Azure Databricks
Azure Event Hubs
Azure Functions
Azure SQL Database
Azure Stream Analytics

W tym artykule opisano rozwiązanie architektury hybrydowej transakcji/przetwarzania analitycznego (HTAP). W celu przetwarzania transakcji większość systemów korzysta z obciążeń operacyjnych o małych opóźnieniach i dużych ilościach. W przypadku analiz obciążenia o większym opóźnieniu są bardziej typowe dla obciążeń o niższym woluminie. Architektury HTAP oferują rozwiązanie dla obu typów obciążeń. Korzystając z baz danych w pamięci, HTAP konsoliduje technologie w celu optymalizacji zapytań dotyczących dużych ilości danych.

Architektura

Architecture diagram showing how data flows through an HTAP solution with Azure SQL Database at its center.

Pobierz plik programu Visio z tą architekturą.

Przepływ danych

  1. Usługa Event Hubs pozyskiwa dane telemetryczne z obiektów lokalnych.
  2. Usługa Blob Storage przechwytuje dane usługi Event Hubs i przechowuje je na potrzeby przyszłej analizy.
  3. Usługa Stream Analytics przetwarza dane. W gorącej ścieżce rozwiązania usługa Azure Cosmos DB wysyła zapytania o dane z poprzednich dwóch miesięcy. Usługa Azure Cosmos DB gwarantuje jednocyfrowe czasy odpowiedzi w milisekundach.
  4. Jeśli podczas przetwarzania lub przechowywania danych wystąpią błędy, system rejestruje je w usłudze Azure Table Storage.
  5. Usługa Azure Functions używa elastycznej biblioteki klienta bazy danych SQL Database do archiwizowania danych. Ten proces dzieli dane na partycje, aby zoptymalizować operacje wstawiania. Rozwiązanie tworzy fragmenty, rozkładając dane w poziomie na kilka baz danych Azure SQL Database. Każda baza danych używa partycjonowanego klastrowanego indeksu kolumnowego do kompresowania tabel. Czasy odpowiedzi na tej zimnej ścieżce są zwykle poniżej jednej sekundy.
  6. Klaster usługi Azure Databricks ponownie przetwarza dane usługi Blob Storage. W szczególności deserializuje pliki Avro w usłudze Azure Databricks i wysyła dane do usługi Event Hubs w celu opcjonalnej analizy.

Elementy

  • Event Hubs to w pełni zarządzana platforma przesyłania strumieniowego na potrzeby danych big data.

  • Usługa Stream Analytics zapewnia przetwarzanie strumienia bezserwerowego w czasie rzeczywistym, uruchamiając zapytania w chmurze i na urządzeniach brzegowych.

  • Azure Cosmos DB to globalnie rozproszona, wielomodelowa baza danych. Dzięki usłudze Azure Cosmos DB rozwiązania mogą elastycznie skalować przepływność i magazyn w dowolnej liczbie regionów geograficznych.

  • Usługa Table Storage jest częścią usługi Azure Storage. Ta usługa przechowuje ustrukturyzowane dane NoSQL w chmurze.

  • SQL Database to usługa relacyjnej bazy danych, która jest częścią rodziny usługi Azure SQL . Jako w pełni zarządzana usługa SQL Database obsługuje funkcje zarządzania bazami danych. Usługa SQL Database udostępnia również zautomatyzowane funkcje oparte na sztucznej inteligencji, które optymalizują wydajność i trwałość. Opcje magazynu bezserwerowego i magazynu w warstwie Hiperskala są automatycznie skalowane na żądanie.

  • Elastyczne narzędzia bazy danych ułatwiają tworzenie skalowanych baz danych i zarządzanie nimi. Ta funkcja usługi SQL Database zawiera bibliotekę klienta, której można użyć do tworzenia aplikacji podzielonych na fragmenty.

  • Blob Storage to usługa, która jest częścią usługi Storage. Usługa Blob Storage oferuje zoptymalizowany magazyn obiektów w chmurze dla dużych ilości danych bez struktury.

  • Azure Databricks to platforma do analizy danych. W pełni zarządzane klastry Spark przetwarzają duże strumienie danych z wielu źródeł. Usługa Azure Databricks czyści i przekształca bez struktury zestawy danych. Łączy przetwarzane dane ze strukturą z operacyjnych baz danych lub magazynów danych. Usługa Azure Databricks szkoli również i wdraża skalowalne modele uczenia maszynowego i uczenia głębokiego.

  • Usługa Power BI to kolekcja usług i aplikacji analitycznych. Usługa Power BI umożliwia łączenie i wyświetlanie niepowiązanych źródeł danych.

Szczegóły scenariusza

Usługa Azure SQL Database stanowi rdzeń tego rozwiązania HTAP. Podejście dzieli dane na rozproszone poziomo bazy danych lub fragmenty. Inne główne składniki to:

  • Usługa Azure Event Hubs na potrzeby pozyskiwania danych.
  • Usługa Azure Stream Analytics do przetwarzania danych.
  • Usługa Azure Functions do partycjonowania.
  • Usługa Azure Blob Storage dla magazynu zdarzeń.

Razem te usługi zapewniają rozwiązanie HTAP, które:

  • Zmniejsza koszty, zapewniając szybki dostęp do szczegółowych informacji na temat zarchiwizowanych danych. Opóźnienia w ścieżce chłodnej upuszczają się z godzin do mniej niż sekund za pomocą tego rozwiązania.
  • Upraszcza archiwizowanie, automatycznie dodając dane do długoterminowego magazynu.
  • Maksymalizuje skalowalność, fragmentując dane i używając elastycznej bazy danych.

Potencjalne przypadki użycia

To rozwiązanie dotyczy organizacji, które potrzebują dostępu o małych opóźnieniach do dużych ilości danych historycznych. Oto kilka przykładów:

  • Sprzedawcy detaliczni online, którzy uzyskują dostęp do historii klientów i informacji demograficznych w celu zapewnienia spersonalizowanych środowisk.
  • Dostawcy energii łączący dane urządzeń z analizą w celu zarządzania inteligentnymi sieciami energetycznymi.
  • Firmy, które angażują się w zapobieganie oszustwom, identyfikując wzorce w danych historycznych i w czasie rzeczywistym. Ten scenariusz dotyczy branży usług finansowych i finansowych.
  • Producenci, którzy polegają na przetwarzaniu zdarzeń w czasie rzeczywistym w celu zidentyfikowania problemów. Ten scenariusz dotyczy branży produkcyjnej.

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.

To rozwiązanie przyjmuje następujące założenia:

  • Po zarchiwizowanym danych nie trzeba ich aktualizować ani usuwać.
  • Schemat danych zmienia się tylko minimalnie w czasie.

Podczas implementowania tego rozwiązania należy wziąć pod uwagę następujące kwestie:

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.

  • Aby zoptymalizować wydajność:

    • Łączenie fragmentowania z kompresją tabeli.
    • Partycjonowanie tabel według daty. Każdy fragment zawiera dane z innego okresu.
    • Wyrównaj indeksy do partycjonowania dat.
  • Aby skalować w górę do ponad 50 000 komunikatów na sekundę, użyj elastycznej biblioteki klienta bazy danych z poziomu usługi Functions do:

    • Grupuj komunikaty według partycji.
    • Podziel instrukcje insert na małe partie.

    To podejście jest odpowiednie dla systemów korzystających z 10 standardowych baz danych S3 typu SQL Database. Aby hostować indeks kolumnowy, potrzebujesz co najmniej warstwy Standardowa.

  • Aby uzyskać najlepszą wydajność podczas operacji wstawiania, użyj parametrów wartości tabeli z procedurami składowanymi.

  • W przypadku korzystania z instrukcji CREATE COLUMNSTORE INDEX użyj opcji COLUMNSTORE_ARCHIVE . Ta opcja zapewnia najwyższy możliwy poziom kompresji. Wysoki poziom kompresji zwiększa czas przechowywania i pobierania danych. Jednak wynikowa wydajność we/wy powinna być nadal zadowalająca.

Skalowalność

  • Użyj fragmentów, aby można było rozszerzyć system, aby sprostać wymagającym obciążeniom. W przypadku używania baz danych podzielonych na fragmenty można dodawać lub usuwać fragmenty w celu skalowania w poziomie lub w poziomie. Narzędzie split-merge ułatwia dzielenie i scalanie partycji.
  • Skorzystaj z funkcji skalowania w usłudze Functions. Tworzenie funkcji skalowanych na podstawie użycia procesora CPU i pamięci. Skonfiguruj funkcje, aby uruchamiać nowe wystąpienia w celu obsługi nieoczekiwanych obciążeń.
  • Zwiększ rozmiar klastra usługi Azure Databricks w celu skalowania w górę ponownego przetwarzania plików Avro. Rozwiązanie używa usługi Azure Databricks do ponownego przetwarzania plików Avro przechwyconych przez usługę Blob Storage. Klastry Spark w usłudze Azure Databricks mogą przetwarzać całą lub część ścieżki pliku Avro. Zwiększając rozmiar klastra usługi Azure Databricks, można ponownie przetworzyć wszystkie dane w wymaganym przedziale czasu. Aby obsłużyć zwiększony wolumin z usługi Azure Databricks, dodaj wystąpienia usługi Event Hubs do przestrzeni nazw zgodnie z potrzebami.

Odporność

  • Wszystkie składniki w tym scenariuszu są zarządzane. Na poziomie regionalnym oferują wbudowaną odporność.
  • Aby uzyskać ogólne wskazówki dotyczące projektowania odpornych rozwiązań, zobacz Omówienie filaru niezawodności.

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.

Aby poznać koszt działania tego scenariusza, użyj kalkulatora cen platformy Azure, który wstępnie konfiguruje wszystkie usługi platformy Azure. Dostosuj parametry, aby odpowiadały oczekiwanemu ruchowi.

W poniższej tabeli wymieniono przykładowe profile kosztów dla różnych ilości komunikatów o rozmiarze 1 kilobajtów:

Rozmiar Wolumin komunikatów Profile
Mały Mniej niż 500 komunikatów na sekundę Mały profil
Średnia 1500 komunikatów na sekundę Średni profil
Duży Ponad 5000 komunikatów na sekundę Duży profil

Współautorzy

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

Główny autor:

Następne kroki