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.