Hoe kunnen we Amazon S3 als database gebruiken?


Beste antwoord

Om te beginnen zijn er gemengde theorieën over de vraag of Amazon S3 als database kan worden gebruikt. Persoonlijk geloof ik dat Amazon S3 kan worden gebruikt als een database met een beetje architecturale transformatie. Maar dit is niet voor de zwakken van hart, en moet met een korreltje zout worden ingenomen! Zelfs als u in staat bent om het te doen en te bereiken waarnaar u op zoek bent, heeft het mogelijk zijn eigen tekortkomingen.

Architectonisch inzicht: Om de benadering van het omzetten van S3 in een database uit te leggen, laten we eerst de onderliggende architectuur van S3 begrijpen. Amazon S3 is op zichzelf een bestandssysteem in plaats van slechts een vanille Object Storage Platform. In feite is Amazon S3 zelf in wezen een NoSQL-database. Het is een enorme Key-Value-winkel, waar Key de bestandsnaam is, terwijl Value de bestandsinhoud is.

Als S3 ” Het belangrijkste gebruiksscenario is het opslaan van objecten, de onderliggende architectuur zelf is voornamelijk een bestandssysteem. Het verdeelt uw gegevens automatisch in een bucket en houdt een primaire index bij voor de sleutel.

Aanpak: met S3 beschouwd als een pseudo-bestandssysteem , kunt u het doel ervan aanpassen om perfect te fungeren als een ACID -database, hoewel u er niet in zou kunnen zoeken zoals elke andere database. Maar dan zou u toch niet in staat zijn om willekeurige zoekopdrachten uit te voeren op enorme Data Lakes, ongeacht hoe geavanceerd het platform is.

Aan de andere kant zou je op AWS S3 inzichtelijke statistieken kunnen extraheren door intelligent gebruik van Elastic MapReduce s ondersteund met een Hadoop-pijplijn . Deze benadering vereist in wezen dat u alle gegevens die zijn gegenereerd door OpenHeatMap opslaat als JSON-bestanden in S3-buckets . Het belangrijkste is dat u, afhankelijk van hoe u uw gegevens structureert, zelfs in uw gegevens moet kunnen zoeken via Athena of S3 Select . Als u een andere AWS-service nodig heeft om toegang te krijgen tot de database, heeft u een API-script nodig dat SQL-transacties toestaat .

Give probeer het eens, en ik weet zeker dat je er iets uit zult halen.

Ik hoop dat dit helpt!

Als je hulp zoekt bij het leren van S3 en je eigen wilt opzetten S3 emmers neem dan contact met mij op.

Antwoord

Kunt u? Zeker. Zou je? Absoluut niet.

AWS S3 is een geweldige service voor het opslaan van bestanden. Als u een bestand echter wilt bewerken, moet u het in zijn geheel downloaden, wijzigen wat u wilt en het vervolgens opnieuw uploaden; het overschrijven van alle in de tussentijd aangebrachte wijzigingen.

Een database heeft er baat bij dat de bestanden te allen tijde geopend zijn, dat ze kunnen rondspringen en naar gegevens kunnen zoeken en incrementeel kunnen schrijven. Dus elke database die multi-user en zelfs trage prestaties verwacht, zal in deze context niet werken. En dit veronderstelt dat je “fuse” of andere mount-S3-as-a-file-systeemsoftware gebruikt.

Er is echter een manier om S3 als een database te gebruiken, in specifieke gevallen. In sommige gevallen kan het zinvol zijn om een ​​bestand op te slaan in S3, met een “zijspanbestand”. Dat betekent dat je bijvoorbeeld image123.jpg hebt opgeslagen en ernaast image123.json met informatie over dit bestand.

Bijvoorbeeld back-ups of andere gegevens waar je kunt controleren of het bestand bestaat, met behulp van een naamgevingsschema inclusief een datum bijvoorbeeld, en als dat zo is, haal dan ook het zijspanbestand op, met extra informatie over het bestand. Op die manier kun je oneindig schalen, zonder dat je een echte database nodig hebt.

Afhankelijk van je project kan het secundaire bestand zelfs een SQLite-database zijn, die gebaseerd is op één bestand en SQL (meestal) compatibel is. Houd rekening met de bovenstaande voorbehouden.

Voel je vrij om hieronder commentaar te geven.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *