Migliore risposta
Per cominciare, ci sono teorie contrastanti sul fatto che Amazon S3 possa essere utilizzato come database. Personalmente credo che Amazon S3 possa essere utilizzato come database con un po di trasformazione architettonica. Ma questo non è per i deboli di cuore e deve essere preso con un pizzico di sale! Anche se sei in grado di farlo e ottenere ciò che stai cercando, probabilmente presenterà i suoi difetti.
Architectural Insight: Per spiegare lapproccio di trasformare S3 in un database, comprendiamo prima larchitettura sottostante di S3. Amazon S3, di per sé, è un file system piuttosto che essere solo una vanilla Object Storage Platform. È un dato di fatto, Amazon S3 stesso è essenzialmente un database NoSQL. È un enorme archivio di valori-chiave, dove Key è il nome del file, mentre Value è il contenuto del file.
As S3 ” Il caso duso principale è larchiviazione di oggetti, larchitettura sottostante stessa è principalmente un file system. Partiziona automaticamente i dati allinterno di un bucket e mantiene un indice primario per la chiave.
Approccio: Con S3 considerato come uno pseudo-file system , puoi modificare il suo scopo in modo che agisca perfettamente come ACID Database, anche se non saresti in grado di eseguire query al suo interno come qualsiasi altro database. Ma in tal caso non saresti comunque in grado di eseguire query casuali su enormi Data Lakes, qualunque sia la sofisticata la piattaforma è.
Daltra parte, su AWS S3, potresti estrarre metriche approfondite attraverso luso intelligente di Elastic MapReduce s supportato con una pipeline Hadoop . Questo approccio richiede essenzialmente di memorizzare tutti i dati generati da OpenHeatMap come file JSON in bucket S3 . La cosa più critica, a seconda di come strutturi i tuoi dati, dovresti essere in grado di interrogare i tuoi dati anche tramite Athena o S3 Seleziona . Nel caso in cui sia necessario un altro servizio AWS per accedere al database, sarà necessario disporre di uno script API che consenta transazioni SQL .
Dare è una prova e sono sicuro che ne trarrai vantaggio.
Spero che questo ti sia di aiuto!
Se stai cercando aiuto per imparare S3 e vuoi creare il tuo Bucket S3 per favore contattami.
Risposta
Puoi? Sicuro. Dovresti? Assolutamente no.
AWS S3 è un ottimo servizio per larchiviazione dei file. Tuttavia, quando desideri modificare un file, dovrai scaricarlo per intero, modificare ciò che desideri e quindi caricarlo di nuovo; sovrascrivendo le modifiche apportate nel frattempo.
Un database trae vantaggio dal fatto che i file siano sempre aperti, dalla possibilità di spostarsi e cercare dati e scrivere in modo incrementale. Pertanto, qualsiasi database che prevede prestazioni multiutente e persino lente non funzionerà in questo contesto. E questo presume che tu usi “fuse” o altro software mount-S3-as-a-file-system.
Esiste comunque un modo per usare S3 come database, in casi duso specifici. In alcuni casi potrebbe avere senso avere un file archiviato in S3, con un “file collaterale”. Ciò significa che hai ad esempio image123.jpg memorizzato e poi accanto ad esso cè image123.json con le informazioni su questo file.
Ad esempio backup o altri dati in cui puoi controllare se il file esiste, utilizzando un schema di denominazione che include una data per esempio e, se lo fa, recupera anche il file collaterale, con informazioni extra sul file. In questo modo puoi ridimensionare indefinitamente, senza coinvolgere un database reale.
A seconda del tuo progetto, il file collaterale può anche essere un database SQLite, che è basato su un singolo file e SQL (per lo più) compatibile. Basta essere consapevoli degli avvertimenti sopra menzionati.
Sentiti libero di commentare di seguito.