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:
- Azure Synapse Analytics
- Pule platformy Spark w usłudze Azure Synapse
- Azure Databricks
- Azure Data Explorer
- Azure SQL Database
- Program SQL Server na maszynie wirtualnej platformy Azure
- Baza danych HBase/Phoenix w usłudze HDInsight
- Hive LLAP w usłudze HDInsight
- Azure Analysis Services
- Azure Cosmos DB
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 binarny kod JSON (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".
- Telemetria i bazy danych 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 (zarządzanie tożsamościami i dostępem (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 przezroczystego szyfrowania danych do szyfrowania i odszyfrowywania danych magazynowanych.
[3] Tylko predykaty filtru. Zobacz Zabezpieczenia na poziomie wiersza
[4] W przypadku użycia w sieci wirtualnej platformy Azure. Aby uzyskać więcej informacji, zobacz Rozszerzanie usługi Azure HDInsight przy użyciu usługi Azure Virtual Network.
Współautorzy
Ten artykuł jest obsługiwany przez firmę Microsoft. Pierwotnie został napisany przez następujących współautorów.
Główny autor:
- Zoiner Tejada | Dyrektor generalny i architekt
Następne kroki
- Analizowanie danych w relacyjnym magazynie danych
- Tworzenie pojedynczej bazy danych — Azure SQL Database
- Tworzenie obszaru roboczego usługi Azure Databricks
- Tworzenie klastra Apache Spark w usłudze Azure HDInsight przy użyciu witryny Azure Portal
- Tworzenie obszaru roboczego usługi Synapse
- Eksplorowanie usług danych platformy Azure na potrzeby nowoczesnej analizy
- Eksplorowanie usług baz danych i analiz platformy Azure
- Wykonywanie zapytań względem usługi Azure Cosmos DB przy użyciu interfejsu API dla noSQL