Projektowanie strategii organizacji magazynu

Ukończone

Podczas projektowania aplikacji, która musi przechowywać dane, ważne jest, aby zastanowić się, jak aplikacja będzie organizować dane na kontach magazynu, kontenerach i obiektach blob.

Konta magazynu

Pojedyncze konto magazynu jest wystarczająco elastyczne, aby organizować obiekty blob. Jednak należy użyć większej liczby kont magazynu w razie potrzeby, aby logicznie oddzielić koszty i kontrolować dostęp do danych.

Kontenery i obiekty blob

Charakter aplikacji i przechowywanych w niej danych powinny prowadzić do strategii nazewnictwa i organizowania kontenerów i obiektów blob.

Aplikacje korzystające z obiektów blob w ramach schematu magazynu, który zawiera bazę danych, często nie muszą polegać w dużej mierze na organizacji, nazewnictwie ani metadanych, aby wskazać coś o swoich danych. W takich aplikacjach nazwami obiektów blob często są identyfikatory (np. GUID), do których aplikacja odwołuje się w rekordach bazy danych. Aplikacja używa bazy danych do określenia, gdzie są przechowywane obiekty blob i jakiego rodzaju dane zawierają.

Inne aplikacje używają usługi Azure Blob Storage bardziej jak osobisty system plików. Nazwy kontenerów i obiektów blob wskazują znaczenie i strukturę. Nazwy obiektów blob w tych aplikacjach często wyglądają jak tradycyjne nazwy plików. Mogą zawierać rozszerzenia nazw plików, takie jak .jpg , aby wskazać, jakiego typu dane zawierają. Takie aplikacje używają katalogów wirtualnych do organizowania obiektów blob. Często używają tagów metadanych do przechowywania informacji o obiektach blob i kontenerach.

Podejmując decyzję dotyczącą sposobu organizacji i przechowywania obiektów blob i kontenerów, warto rozważyć kilka kwestii.

Ograniczenia nazewnictwa

Nazwy kontenerów i obiektów blob muszą być zgodne z zestawem reguł, które ograniczają długość nazwy i określają dozwolone znaki. Aby uzyskać bardziej szczegółowe informacje na temat reguł nazewnictwa, zobacz sekcję Dalsze informacje na końcu tego modułu.

Dostęp publiczny i kontenery jako granice zabezpieczeń

Domyślnie, aby uzyskać dostęp do jakiegokolwiek obiektu blob, wymagane jest uwierzytelnienie. Można jednak skonfigurować poszczególne kontenery, aby zezwolić na publiczne pobieranie ich obiektów blob bez uwierzytelniania. Publiczne pobieranie obsługuje wiele przypadków użycia, takich jak hostowanie zasobów statycznej witryny internetowej i udostępnianie plików. Takie podejście działa, ponieważ pobieranie zawartości obiektu blob działa tak samo jak odczytywanie innych danych za pośrednictwem Internetu. Wystarczy wskazać przeglądarkę lub dowolny element, który może wysłać żądanie GET pod adresem URL obiektu blob.

Włączenie dostępu publicznego jest ważne dla skalowalności. Dane pobierane bezpośrednio z usługi Blob Storage nie generują żadnego ruchu w aplikacji po stronie serwera. Zaplanuj używanie oddzielnych kontenerów dla danych, które mają być publicznie dostępne, nawet jeśli nie zezwolisz natychmiast na dostęp publiczny lub użyjesz bazy danych do kontrolowania dostępu do danych.

Uwaga

Każdy, kto zna adresy URL magazynu, może pobrać obiekty blob w kontenerze skonfigurowanym do dostępu publicznego bez jakiegokolwiek rodzaju uwierzytelniania lub inspekcji. Nigdy nie umieszczaj w kontenerze publicznym danych obiektów blob, których nie chcesz udostępniać publicznie.

Oprócz dostępu publicznego platforma Azure oferuje funkcję sygnatury dostępu współdzielonego, która umożliwia szczegółową kontrolę uprawnień do kontenerów. Precyzyjna kontrola dostępu umożliwia scenariusze, które jeszcze bardziej zwiększają skalowalność, dlatego warto myśleć o kontenerach jako granicach zabezpieczeń.

Prefiksy nazw obiektów blob (katalogi wirtualne)

Kontenery są płaskie. Nie obsługują żadnego rodzaju zagnieżdżania ani hierarchii. Jeśli nadasz hierarchiczne nazwy obiektów blob, które wyglądają jak ścieżki plików, takie jak finance/budgets/2017/q1.xls, operacja wyświetlania listy interfejsu API może filtrować wyniki do określonych prefiksów. Takie podejście umożliwia nawigowanie po liście tak, jakby była to hierarchiczny system plików i folderów.

Niektóre narzędzia i biblioteki klienckie używają tego podejścia do wizualizowania i nawigowania po usłudze Blob Storage tak, jakby był to system plików. Każda nawigacja po folderach wyzwala oddzielne wywołanie w celu wyświetlenia listy obiektów blob w tym folderze. Ta funkcja jest często nazywana katalogami wirtualnymi.

Uwaga

Jeśli włączysz funkcję hierarchii przestrzeni nazw konta, katalogi nie będą już wirtualne. Zamiast tego stają się betonowymi, niezależnymi obiektami, na których można pracować bezpośrednio. Katalog może istnieć bez zawierania żadnych plików. W tym module opisano tylko konta, które nie mają włączonej funkcji hierarchicznej przestrzeni nazw.

Typy obiektów blob

Istnieją trzy różne rodzaje obiektów blob, w których można przechowywać dane:

  • Blokowe obiekty blob składają się z bloków o różnych rozmiarach, które można przekazywać niezależnie oraz równolegle. Zapisywanie do blokowego obiektu blob obejmuje przekazywanie danych do bloków i zatwierdzanie ich w obiektach blob.
  • Uzupełnialne obiekty blob to wyspecjalizowane blokowe obiekty blob, które obsługują tylko dołączanie nowych danych, a nie aktualizowanie ani usuwanie istniejących danych. Są one wydajne w tym celu. Obiekty blob dołączania idealnie sprawdzają się w scenariuszach przechowywania dzienników czy zapisywania danych przesyłanych strumieniowo.
  • Stronicowe obiekty blob obsługują scenariusze obejmujące operacje odczytu i zapisu z dostępem losowym. Stronicowe obiekty blob służą do przechowywania plików wirtualnego dysku twardego (VHD) używanych przez usługi Azure Virtual Machines. Doskonale nadają się do każdego scenariusza, który obejmuje dostęp losowy.

Blokowe obiekty blob są najlepszym rozwiązaniem dla większości scenariuszy, które nie wymagają zastosowania obiektów blob dołączania ani obiektów stronicowych. Struktura oparta na blokach obsługuje szybkie przekazywanie i pobieranie oraz wydajny dostęp do poszczególnych elementów obiektu blob. Większość bibliotek klienckich automatycznie zarządza blokami i zatwierdzania. Niektóre obsługują również równoległe przekazywanie i pobieranie, aby zmaksymalizować wydajność.

Sprawdź swoją wiedzę

1.

Załóżmy, że chcesz zapisać informacje o profilu i zamówieniach Twoich klientów. Musisz wykonać zapytanie na danych, aby uzyskać odpowiedzi na pytania, takie jak „którzy klienci wchodzą w skład moich 100 najlepszych klientów?” lub „ilu klientów mieszka w danym regionie geograficznym?”. Prawda czy fałsz: magazyn obiektów blob to dobre miejsce do przechowywania takich danych.

2.

Obiekty blob stanowią magazyn danych bez struktury. Co oznacza bez struktury?