Wybieranie magazynu danych analitycznych na platformie Azure

W architekturze danych big data często istnieje potrzeba magazynu danych analitycznych, który obsługuje przetworzone dane w formacie ustrukturyzowanym, który można wykonywać zapytania przy użyciu narzędzi analitycznych. Magazyny danych analitycznych, które obsługują wykonywanie zapytań dotyczących zarówno danych ścieżki gorącej, jak i zimnej ścieżki, są zbiorczo określane jako warstwa obsługująca lub magazyn obsługujący dane.

Warstwa obsługująca obsługuje przetworzone dane zarówno ze ścieżki gorącej, jak i ścieżki zimnej. W architekturze lambda warstwa obsługi jest podzielona na warstwę szybkiej obsługi, która przechowuje dane przetwarzane przyrostowo i warstwę obsługi wsadowej, która zawiera dane wyjściowe przetwarzane wsadowo. Warstwa obsługująca wymaga silnej obsługi losowych operacji odczytu z małym opóźnieniem. Magazyn danych dla warstwy szybkości powinien również obsługiwać losowe zapisy, ponieważ ładowanie danych wsadowych do tego magazynu spowodowałoby niepożądane opóźnienia. Z drugiej strony magazyn danych dla warstwy wsadowej nie musi obsługiwać losowych zapisów, ale zamiast tego zapisuje wsadowe.

Nie ma jednego najlepszego wyboru zarządzania danymi dla wszystkich zadań magazynowania danych. Różne rozwiązania do zarządzania danymi są zoptymalizowane pod kątem różnych zadań. Większość rzeczywistych aplikacji w chmurze i procesów danych big data ma różne wymagania dotyczące magazynu danych i często używa kombinacji rozwiązań magazynu danych.

Jakie są opcje podczas wybierania analitycznego magazynu danych?

Istnieje kilka opcji przechowywania danych na platformie Azure, w zależności od potrzeb:

Te opcje zapewniają różne modele baz danych zoptymalizowane pod kątem różnych typów zadań:

  • Bazy danych klucz/wartość przechowują pojedynczy serializowany obiekt dla każdej wartości klucza. Są one dobre do przechowywania dużych ilości danych, w których chcesz uzyskać jeden element dla danej wartości klucza i nie trzeba wykonywać zapytań na podstawie innych właściwości elementu.
  • Bazy danych dokumentów to bazy danych klucz/wartość, w których wartości są dokumentami. "Dokument" w tym kontekście jest kolekcją nazwanych pól i wartości. Baza danych zwykle przechowuje dane w formacie, takim jak XML, YAML, JSON lub BSON, ale może używać zwykłego tekstu. Bazy danych dokumentów mogą wykonywać zapytania dotyczące pól innych niż kluczowe i definiować indeksy pomocnicze w celu zwiększenia wydajności wykonywania zapytań. Dzięki temu baza danych dokumentów jest bardziej odpowiednia dla aplikacji, które muszą pobierać dane na podstawie kryteriów bardziej złożonych niż wartość klucza dokumentu. Można na przykład wykonywać zapytania dotyczące pól, takich jak identyfikator produktu, identyfikator klienta lub nazwa klienta.
  • Bazy danych magazynu kolumn to magazyny danych klucz/wartość, które przechowują każdą kolumnę oddzielnie na dysku. Baza danych magazynu szerokiej kolumny jest typem bazy danych magazynu kolumn, która przechowuje rodziny kolumn, a nie tylko pojedyncze kolumny. Na przykład baza danych spisu może mieć rodzinę kolumn dla nazwiska osoby (imię, środek, ostatni), rodzinę adresu osoby i rodzinę informacji o profilu osoby (data urodzenia, płeć). Baza danych może przechowywać każdą rodzinę kolumn w oddzielnej partycji, zachowując jednocześnie wszystkie dane dla jednej osoby powiązanej z tym samym kluczem. Aplikacja może odczytywać rodzinę z jedną kolumną bez odczytywania wszystkich danych dla jednostki.
  • Grafowe bazy danych przechowują informacje jako kolekcję obiektów i relacji. Grafowa baza danych może efektywnie wykonywać zapytania przechodzące przez sieć obiektów i relacje między nimi. Na przykład obiekty mogą być pracownikami w bazie danych zasobów ludzkich i warto ułatwić wykonywanie zapytań, takich jak "znajdowanie wszystkich pracowników, którzy bezpośrednio lub pośrednio pracują dla Scotta".
  • Bazy danych telemetrii i szeregów czasowych to kolekcja obiektów tylko do dołączania. Bazy danych telemetrycznych efektywnie indeksują dane w różnych magazynach kolumn i strukturach w pamięci, co czyni je optymalnym wyborem do przechowywania i analizowania ogromnych ilości danych telemetrycznych i danych szeregów czasowych.

Kluczowe kryteria wyboru

Aby zawęzić opcje, zacznij od udzielenia odpowiedzi na następujące pytania:

  • Czy potrzebujesz obsługiwać magazyn, który może służyć jako gorąca ścieżka dla danych? Jeśli tak, zawęź opcje do tych, które są zoptymalizowane pod kątem warstwy obsługującej szybkość.

  • Czy potrzebujesz obsługi masowego przetwarzania równoległego (MPP), gdzie zapytania są automatycznie dystrybuowane między kilka procesów lub węzłów? Jeśli tak, wybierz opcję, która obsługuje skalowanie zapytań w poziomie.

  • Czy wolisz używać relacyjnego magazynu danych? Jeśli tak, zawęź opcje do tych z modelem relacyjnej bazy danych. Należy jednak pamiętać, że niektóre magazyny nierelacyjne obsługują składnię SQL na potrzeby wykonywania zapytań, a narzędzia takie jak PolyBase mogą służyć do wykonywania zapytań dotyczących magazynów danych nierelacyjnych.

  • Czy zbierasz dane szeregów czasowych? Czy używasz danych tylko do dołączania?

Macierz możliwości

W poniższych tabelach podsumowano kluczowe różnice w możliwościach.

Ogólne możliwości

Możliwość SQL Database Pula SQL usługi Azure Synapse Pula usługi Azure Synapse Spark Azure Data Explorer Baza danych HBase/Phoenix w usłudze HDInsight Hive LLAP w usłudze HDInsight Azure Analysis Services Azure Cosmos DB
Jest usługą zarządzaną Tak Tak Tak Tak Tak 1 Tak 1 Tak Tak
Podstawowy model bazy danych Relacyjne (format magazynu kolumn podczas korzystania z indeksów magazynu kolumn) Tabele relacyjne z magazynem kolumn Szeroki magazyn kolumn Relacyjny (magazyn kolumn), telemetria i magazyn szeregów czasowych Szeroki magazyn kolumn Hive/In-Memory Modele semantyczne tabelaryczne Magazyn dokumentów, graf, magazyn klucz-wartość, szeroki magazyn kolumn
Obsługa języka SQL Tak Tak Tak Tak Tak (przy użyciu sterownika Phoenix JDBC) Tak Nie Tak
Zoptymalizowane pod kątem szybkiej obsługi warstwy Tak 2 Tak 3 Tak Tak Tak Tak Nie Tak

[1] Z ręczną konfiguracją i skalowaniem.

[2] Używanie tabel zoptymalizowanych pod kątem pamięci i skrótów lub indeksów nieklastrowanych.

[3] Obsługiwane jako dane wyjściowe usługi Azure Stream Analytics.

Możliwości skalowalności

Możliwość SQL Database Pula SQL usługi Azure Synapse Pula usługi Azure Synapse Spark Azure Data Explorer Baza danych HBase/Phoenix w usłudze HDInsight Hive LLAP w usłudze HDInsight Azure Analysis Services Azure Cosmos DB
Nadmiarowe serwery regionalne w celu zapewnienia wysokiej dostępności Tak Nie. Nie. Tak Tak Nie Tak Tak
Obsługuje skalowanie zapytań w poziomie Nie. Tak Tak Tak Tak Tak Tak Tak
Dynamiczna skalowalność (skalowanie w górę) Tak Tak Tak Tak Nie. Nie. Tak Tak
Obsługuje buforowanie danych w pamięci Tak Tak Tak Tak Nie Tak Tak Nie.

Możliwości zabezpieczeń

Możliwość SQL Database Azure Synapse Azure Data Explorer Baza danych HBase/Phoenix w usłudze HDInsight Hive LLAP w usłudze HDInsight Azure Analysis Services Azure Cosmos DB
Uwierzytelnianie SQL/ Microsoft Entra ID SQL/ Microsoft Entra ID Microsoft Entra ID local/Microsoft Entra ID 1 local/Microsoft Entra ID 1 Microsoft Entra ID użytkownicy bazy danych / Microsoft Entra ID za pośrednictwem kontroli dostępu (IAM)
Szyfrowanie danych w spoczynku Tak 2 Tak 2 Tak Tak 1 Tak 1 Tak Tak
Zabezpieczenia na poziomie wiersza Tak Tak 3 Tak Tak 1 Tak 1 Tak Nie.
Obsługuje zapory Tak Tak Tak Tak 4 Tak 4 Tak Tak
Dynamiczne maskowanie danych Tak Tak Tak Tak 1 Tak Nie. Nie.

[1] Wymaga użycia przyłączonego do domeny klastra usługi HDInsight.

[2] Wymaga użycia funkcji Transparent Data Encryption (TDE) do szyfrowania i odszyfrowania danych magazynowanych.

[3] Tylko predykaty filtru. Zobacz Zabezpieczenia na poziomie wiersza

[4] W przypadku użycia w sieci wirtualnej platformy Azure. Zobacz Rozszerzanie usługi Azure HDInsight przy użyciu sieci wirtualnej platformy Azure.

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