Meilleure réponse
Pour commencer, il existe des théories mixtes sur la possibilité dutiliser Amazon S3 comme base de données. Je crois personnellement quAmazon S3 peut être utilisé comme base de données avec un peu de transformation architecturale. Mais ce nest pas pour les faibles et doit être pris avec une pincée de sel! Même si vous êtes en mesure de le faire et datteindre ce que vous recherchez, cela aura probablement ses propres lacunes.
Architectural Insight: Pour expliquer lapproche consistant à transformer S3 en base de données, comprenons dabord larchitecture sous-jacente de S3. Amazon S3, en soi, est un système de fichiers plutôt que dêtre uniquement une plate-forme de stockage dobjets à la vanille. En fait, Amazon S3 lui-même est essentiellement une base de données NoSQL. Cest un énorme magasin de clés-valeurs, où Key est le nom de fichier, tandis que Value est le contenu du fichier.
As S3 » Le cas dutilisation principal de s est le stockage dobjets, larchitecture sous-jacente elle-même est principalement un système de fichiers. Il partitionne automatiquement vos données dans un compartiment et maintient un index principal pour la clé.
Approche: Avec S3 considéré comme un pseudo-système de fichiers , vous pouvez modifier son objectif pour agir parfaitement comme un ACID Base de données, bien que vous ne puissiez pas y interroger comme nimporte quelle autre base de données. Mais alors, vous ne pourrez pas exécuter de requêtes aléatoires sur des lacs de données massifs de toute façon, quelle que soit la complexité la plate-forme lest.
Dautre part, sur AWS S3, vous pourriez extraire des métriques perspicaces grâce à lutilisation intelligente de Elastic MapReduce s supporté par un pipeline Hadoop . Cette approche vous oblige essentiellement à stocker toutes les données générées par OpenHeatMap sous forme de fichiers JSON dans des compartiments S3 . Plus important encore, selon la manière dont vous structurez vos données, vous devriez même être en mesure dinterroger vos données via Athena ou S3 Sélectionnez . Au cas où vous auriez besoin dun autre service AWS pour accéder à la base de données, vous aurez besoin dun script API qui autorise les transactions SQL .
Donnez essayez, et je suis sûr que vous y gagnerez quelque chose.
Jespère que cela vous aidera!
Si vous cherchez de laide pour apprendre S3 et que vous voulez créer votre propre Seaux S3, veuillez me contacter.
Réponse
Pouvez-vous? Sûr. Devrais-tu? Absolument pas.
AWS S3 est un excellent service de stockage de fichiers. Cependant, lorsque vous souhaitez modifier un fichier, vous devez le télécharger dans son intégralité, modifier ce que vous voulez, puis le téléverser à nouveau; écrasant toutes les modifications effectuées entre-temps.
Une base de données a lavantage davoir les fichiers ouverts à tout moment, de pouvoir sauter et rechercher des données, et décrire de manière incrémentielle. Ainsi, toute base de données qui attendra des performances multi-utilisateurs et même lentes ne fonctionnera pas dans ce contexte. Et cela suppose que vous utilisiez «fuse» ou tout autre logiciel de montage de S3 comme système de fichiers.
Il existe cependant un moyen dutiliser S3 comme base de données, dans des cas dutilisation spécifiques. Dans certains cas, il peut être judicieux davoir un fichier stocké dans S3, avec un «fichier side-car». Cela signifie que vous avez par exemple image123.jpg stocké, puis à côté, image123.json avec des informations sur ce fichier.
Par exemple, des sauvegardes ou dautres données où vous pouvez vérifier si le fichier existe, en utilisant un schéma de dénomination incluant une date par exemple, et si cest le cas, récupérez également le fichier side-car, avec des informations supplémentaires sur le fichier. De cette façon, vous pouvez évoluer indéfiniment, sans impliquer une base de données réelle.
En fonction de votre projet, le fichier side-car peut même être une base de données SQLite, qui est basée sur un seul fichier et compatible avec SQL (principalement). Soyez juste conscient des mises en garde mentionnées ci-dessus.
Nhésitez pas à commenter ci-dessous.