Hur kan vi använda Amazon S3 som en databas?


Bästa svaret

Till att börja med finns det blandade teorier om huruvida Amazon S3 kan användas som en databas. Jag tror personligen att Amazon S3 kan användas som en databas med lite arkitektonisk transformation. Men det här är inte för svaghjärtade och måste tas med en nypa salt! Även om du kan göra det och uppnå det du letar efter kommer det eventuellt med sina egna brister.

Architectural Insight: För att förklara tillvägagångssättet för att vända S3 i en databas, låt oss först förstå den underliggande arkitekturen för S3. Amazon S3 är i sig ett filsystem snarare än att bara vara en vaniljobjektlagringsplattform. I själva verket är Amazon S3 i själva verket en NoSQL-databas. Det är en enorm nyckel-värdebutik, där Key är filnamnet, medan Value är filinnehåll.

Som S3 ” s primära användningsfall är att lagra objekt, den underliggande arkitekturen i sig är huvudsakligen ett filsystem. Den partitionerar automatiskt dina data i en hink och upprätthåller ett primärt index för nyckeln.

Tillvägagångssätt: Med S3 betraktat som ett pseudofilsystem kan du justera dess syfte att perfekt fungera som ett ACID Databas, även om du inte skulle kunna fråga om det precis som någon annan databas. Men då skulle du inte kunna utföra slumpmässiga frågor på massiva Data Lakes ändå, oavsett sofistikerad plattformen är.

Å andra sidan, på AWS S3, skulle du kunna extrahera insiktsfulla mätvärden genom intelligent användning av Elastisk MapReduce s uppgraderad med en Hadoop-pipeline . Detta tillvägagångssätt kräver i huvudsak att du lagrar all data som genereras av OpenHeatMap som JSON-filer i S3-hinkar . Mest kritiskt, beroende på hur du strukturerar dina data, borde du till och med kunna fråga dina data antingen via Athena eller S3 Välj . Om du behöver någon annan AWS-tjänst för att komma åt databasen måste du ha ett API-skript som tillåter SQL-transaktioner .

Ge det är ett försök, och jag är säker på att du kommer att få ut något av det.

Hoppas det hjälper!

Om du letar efter hjälp med att lära dig S3 och vill skapa din egen S3 skopor kontakta mig.

Svar

Kan du? Säker. Bör du? Absolut inte.

AWS S3 är en utmärkt tjänst för lagring av filer. Men när du vill redigera en fil måste du ladda ner den i sin helhet, ändra vad du vill och sedan ladda upp den igen. skriva över alla ändringar som gjorts under tiden.

En databas drar nytta av att filerna alltid är öppna, kan hoppa runt och söka efter data och skriva stegvis. Så någon databas som förväntar sig fleranvändare och till och med långsam prestanda fungerar inte i detta sammanhang. Och det förutsätter att du använder ”säkring” eller annan mount-S3-som-fil-systemprogramvara.

Det finns dock ett sätt att använda S3 som en databas, i specifika användningsfall. I vissa fall kan det vara meningsfullt att ha en fil lagrad i S3, med en ”sidovagn”. Det betyder att du till exempel har image123.jpg lagrad och sedan bredvid har image123.json med information om den här filen.

Till exempel säkerhetskopior eller andra data där du kan kontrollera om filen finns med en namngivningsschema inklusive ett datum till exempel, och om det gör det, hämta sidovagnsfilen också, med extra information om filen. På det sättet kan du skala på obestämd tid utan att involvera en verklig databas.

Beroende på ditt projekt kan sidobilfilen till och med vara en SQLite-databas, som är enfilbaserad och SQL (mestadels) kompatibel. Var bara medveten om de försiktighetsåtgärder som nämns ovan.

Kommentera gärna nedan.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *