Jak możemy wykorzystać Amazon S3 jako bazę danych?


Najlepsza odpowiedź

Na początek istnieją mieszane teorie na temat tego, czy Amazon S3 może być używany jako baza danych. Osobiście uważam, że Amazon S3 można wykorzystać jako bazę danych z odrobiną architektonicznej transformacji. Ale to nie jest dla ludzi o słabych sercach i trzeba to wziąć ze szczyptą soli! Nawet jeśli jesteś w stanie to zrobić i osiągnąć to, czego szukasz, prawdopodobnie będzie to miało swoje wady.

Wgląd w architekturę: Aby wyjaśnić podejście do włączania S3 w bazie danych, najpierw zrozumiemy podstawową architekturę S3. Amazon S3 sam w sobie jest systemem plików, a nie tylko podstawową platformą obiektowej pamięci masowej. W rzeczywistości sam Amazon S3 jest zasadniczo bazą danych NoSQL. Jest to ogromny magazyn klucza i wartości, gdzie klucz to nazwa pliku, a wartość to zawartość pliku.

Jak S3 ” Podstawowym przypadkiem użycia jest przechowywanie obiektów, podstawowa architektura jest głównie systemem plików. Automatycznie dzieli dane na partycje w zasobniku i utrzymuje podstawowy indeks klucza.

Podejście: gdy S3 jest traktowany jako pseudosystem plików , możesz dostosować jego przeznaczenie, aby idealnie działał jako ACID Baza danych, chociaż nie byłbyś w stanie wykonywać zapytań do niej tak jak w każdej innej Bazie danych. Ale i tak nie byłbyś w stanie wykonywać losowych zapytań na ogromnych Data Lakes, niezależnie od tego, co jest wyrafinowane platforma jest.

Z drugiej strony w AWS S3 można by uzyskać szczegółowe dane dzięki inteligentnemu wykorzystaniu Elastic MapReduce s wspierane potokiem Hadoop . To podejście zasadniczo wymaga przechowywania wszystkich danych generowanych przez OpenHeatMap jako pliki JSON w zasobnikach S3 . Przede wszystkim, w zależności od struktury danych, powinieneś mieć możliwość wysyłania zapytań do nich za pośrednictwem Athena lub S3 Wybierz . Jeśli potrzebujesz innej usługi AWS, aby uzyskać dostęp do bazy danych, musisz mieć skrypt API, który zezwala na transakcje SQL .

Podaj spróbuj i jestem pewien, że coś na tym zyskasz.

Mam nadzieję, że to pomoże!

Jeśli szukasz pomocy w nauce S3 i chcesz założyć własną Wiadra S3 proszę o kontakt.

Odpowiedź

Potrafisz? Pewnie. Powinieneś? Absolutnie nie.

AWS S3 to świetna usługa do przechowywania plików. Jeśli jednak chcesz edytować plik, musisz pobrać go w całości, zmienić to, co chcesz, a następnie przesłać ponownie; nadpisywanie wszelkich zmian wprowadzonych w międzyczasie.

Baza danych zyskuje na tym, że pliki są otwarte przez cały czas, możliwość przeskakiwania i wyszukiwania danych oraz zapisu przyrostowego. Dlatego każda baza danych, która będzie oczekiwać wielu użytkowników, a nawet niskiej wydajności, nie będzie działać w tym kontekście. A to zakłada, że ​​używasz „fuse” lub innego oprogramowania mount-S3-as-file-system.

Istnieje jednak sposób na użycie S3 jako bazy danych w określonych przypadkach użycia. W niektórych przypadkach sensowne może być przechowywanie pliku w S3 z „plikiem pomocniczym”. Oznacza to, że masz na przykład zapisany image123.jpg, a obok niego obraz123.json z informacjami o tym pliku.

Na przykład kopie zapasowe lub inne dane, w których możesz sprawdzić, czy plik istnieje, używając schemat nazewnictwa zawierający na przykład datę, a jeśli tak, pobierz plik pomocniczy, z dodatkowymi informacjami o pliku. W ten sposób możesz skalować w nieskończoność, bez angażowania rzeczywistej bazy danych.

W zależności od projektu, plik pomocniczy może nawet bazować na bazie danych SQLite, która jest oparta na jednym pliku i (w większości) kompatybilna z SQL. Pamiętaj tylko o zastrzeżeniach wymienionych powyżej.

Zapraszam do komentowania poniżej.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *