Kryteria wyboru magazynu danych
W tym artykule opisano kryteria porównania, których należy użyć podczas oceny magazynu danych. Celem jest pomoc w określeniu, które typy magazynów danych spełniają wymagania rozwiązania użytkownika.
Zagadnienia ogólne
Podczas wybierania należy pamiętać o następujących kwestiach.
Wymagania funkcjonalne
- Format danych: jakiego typu dane mają być przechowywane? Do popularnych typów zaliczane są dane transakcyjne, obiekty JSON, dane telemetryczne, indeksy wyszukiwania lub pliki proste.
- Rozmiar danych: Jak duże są jednostki, które należy przechowywać? Czy te jednostki będą musiały być utrzymywane jako pojedynczy dokument, czy też mogą być podzielone na wiele dokumentów, tabel i kolekcji?
- Skalowanie i struktura: Jaka jest ogólna ilość potrzebnej pojemności magazynu? Czy planowane jest partycjonowanie danych?
- Relacje danych: czy dane będą musiały obsługiwać relacje jeden do wielu lub wiele do wielu? Czy relacje same w sobie są ważnym elementem danych? Czy musisz dołączyć lub w inny sposób połączyć dane z tego samego zestawu danych lub z zewnętrznych zestawów danych?
- Model spójności: Jak ważne jest, aby aktualizacje wprowadzone w jednym węźle pojawiały się w innych węzłach przed wprowadzeniem dalszych zmian? Czy spójność ostateczna jest akceptowana? Czy potrzebna jest gwarancja niepodzielności, spójności, izolacji i trwałości dla transakcji?
- Elastyczność schematu: Jakiego rodzaju schematy będą stosowane do danych? Będzie używany stały schemat, podejście schematu przy zapisie czy podejście schematu przy odczycie?
- Współbieżność: jakiego rodzaju mechanizm współbieżności ma być używany podczas aktualizowania i synchronizowania danych? Czy aplikacja będzie wykonywać wiele aktualizacji, które mogą potencjalnie powodować konflikt? Jeśli tak, może być wymagane blokowanie rekordów i pesymistyczne sterowanie współbieżnością. Alternatywnie czy możliwa jest obsługa mechanizmów kontroli współbieżności optymistycznej? Jeśli tak, czy wystarczy prosta kontrola współbieżności oparta na sygnaturze czasowej, czy potrzebujesz dodatkowej funkcji wielowersji kontroli współbieżności?
- Przenoszenie danych: Czy rozwiązanie będzie musiało wykonywać zadania ETL, aby przenieść dane do innych magazynów lub magazynów danych?
- Cykl życia danych: czy dane są zapisywane raz, wiele do odczytu? Czy mogą zostać przeniesione do chłodnego lub zimnego magazynu?
- Inne obsługiwane funkcje: Czy potrzebujesz innych określonych funkcji, takich jak weryfikacja schematu, agregacja, indeksowanie, wyszukiwanie pełnotekstowe, MapReduce lub inne funkcje zapytań?
Wymagania niefunkcjonalne
- Wydajność i skalowalność: Jakie są wymagania dotyczące wydajności danych? Czy istnieją określone wymagania dotyczące szybkości pozyskiwania danych i szybkości przetwarzania danych? Jakie są akceptowalne czasy odpowiedzi na zapytania i agregację danych po ich pozyskaniu? Jak bardzo magazyn danych będzie musiał skalować w górę? Obciążenie jest mocniejsze przy odczycie czy przy zapisie?
- Niezawodność: Jaka ogólna umowa dotycząca poziomu usług jest potrzebna do obsługi? Jaki poziom odporności na uszkodzenia jest potrzebny dla użytkowników danych? Jakiego rodzaju możliwości tworzenia i przywracania kopii zapasowych są potrzebne?
- Replikacja: Czy dane muszą być dystrybuowane między wieloma replikami lub regionami? Jakiego rodzaju funkcje replikacji danych są potrzebne?
- Limity: czy limity określonego magazynu danych będą obsługiwać wymagania dotyczące skalowania, liczby połączeń i przepływności?
Zarządzanie i koszy
- Usługa zarządzana: jeśli to możliwe, użyj zarządzanej usługi danych, chyba że potrzebujesz określonych funkcji, które można znaleźć tylko w magazynie danych hostowanym w infrastrukturze jako usłudze (IaaS).
- Dostępność regionów: czy w przypadku usług zarządzanych usługa jest dostępna we wszystkich regionach świadczenia usługi Azure? Czy rozwiązanie musi być hostowane w pewnych regionach świadczenia usługi Azure?
- Przenośność: czy dane muszą być migrowane do lokalnych, zewnętrznych centrów danych lub innych środowisk hostingu w chmurze?
- Licencjonowanie: Czy masz preferencje dotyczące własności i typu licencji systemu operacyjnego? Czy istnieją inne zewnętrzne ograniczenia dotyczące typu licencji, którego można użyć?
- Całkowity koszt: jaki jest całkowity koszt korzystania z usługi w ramach rozwiązania? Ile wystąpień będzie potrzebnych do obsługi wymagań dotyczących czasu pracy i przepływności? W tych obliczeniach należy wziąć pod uwagę koszty operacyjne. Jednym z powodów przemawiających za usługami zarządzanymi jest obniżenie kosztów operacyjnych.
- Opłacalność: Czy można partycjonować dane, aby przechowywać je bardziej opłacalnie? Na przykład czy jest możliwe przeniesienie dużych obiektów z kosztownej relacyjnej bazy danych do magazynu obiektów?
Zabezpieczenia
- Zabezpieczenia: Jakiego typu szyfrowanie jest wymagane? Czy jest potrzebne szyfrowanie w spoczynku? Jaki mechanizm uwierzytelniania będzie używany do nawiązania połączenia z danymi?
- Inspekcja: jakiego rodzaju dziennik inspekcji należy wygenerować?
- Wymagania dotyczące sieci: Czy musisz ograniczyć dostęp do danych z innych zasobów sieciowych lub zarządzać nim w inny sposób? Czy dane mają być dostępne tylko ze środowiska platformy Azure? Czy dane mają być dostępne z określonych adresów IP lub podsieci? Czy mają być dostępne z aplikacji lub usług hostowanych lokalnie lub w innych zewnętrznych centrach danych?
DevOps
- Zestaw umiejętności: czy istnieją języki programowania, systemy operacyjne lub inne technologie, z których korzysta Twój zespół? Czy istnieją inne rozwiązania, z którymi praca może sprawiać trudności dla zespołu?
- Klienci: czy istnieje dobra obsługa klienta dla języków programowania?
Następne kroki
- Rozwiązania i usługi magazynu w chmurze platformy Azure
- Przeglądanie opcji magazynu
- Wprowadzenie do usługi Azure Storage