Como podemos usar o Amazon S3 como banco de dados?


Melhor resposta

Para começar, existem teorias mistas sobre se o Amazon S3 pode ser usado como banco de dados. Eu pessoalmente acredito que o Amazon S3 pode ser usado como um banco de dados com um pouco de transformação arquitetônica. Mas isso não é para os fracos de coração e tem que ser tomado com uma pitada de sal! Mesmo se você for capaz de fazer isso e alcançar o que procura, provavelmente virá com suas próprias deficiências.

Insight arquitetônico: Para explicar a abordagem de transformar S3 em um banco de dados, vamos primeiro entender a arquitetura subjacente do S3. Amazon S3, em si é um sistema de arquivos em vez de ser apenas uma plataforma de armazenamento de objetos comum. Na verdade, o próprio Amazon S3 é essencialmente um banco de dados NoSQL. É um enorme armazenamento de Key-Value, onde Key é o nome do arquivo, enquanto Value é o conteúdo do arquivo.

Como S3 ” O principal caso de uso é armazenar objetos, a própria arquitetura subjacente é principalmente um sistema de arquivos. Ele particiona automaticamente seus dados dentro de um intervalo e mantém um índice primário para a chave.

Abordagem: com S3 considerado como um sistema de pseudo-arquivos , você pode ajustar sua finalidade para atuar perfeitamente como um ACID , embora você não pudesse consultá-lo como qualquer outro banco de dados. Mas, então, você não seria capaz de executar consultas aleatórias em enormes Data Lakes, mesmo que sofisticado a plataforma é.

Por outro lado, no AWS S3, você seria capaz de extrair métricas perspicazes por meio do uso inteligente do Elastic MapReduce s suportado com um pipeline Hadoop . Esta abordagem requer essencialmente que você armazene todos os dados gerados por OpenHeatMap como arquivos JSON em depósitos S3 . Mais criticamente, dependendo de como você estrutura seus dados, você deve ser capaz de até mesmo consultar seus dados por meio de Athena ou S3 Selecione . Caso você precise de qualquer outro serviço da AWS para acessar o banco de dados, será necessário ter um script de API que permite transações SQL .

Dê uma tentativa, e tenho certeza de que você vai ganhar algo com isso.

Espero que isso ajude!

Se você está procurando ajuda para aprender S3 e deseja configurar o seu próprio Baldes S3, por favor, entre em contato comigo.

Resposta

Você pode? Certo. Você deveria? Absolutamente não.

O AWS S3 é um ótimo serviço para armazenar arquivos. No entanto, quando você quiser editar um arquivo, terá que baixá-lo por completo, mudar o que quiser e fazer o upload novamente; sobrescrevendo quaisquer alterações feitas nesse ínterim.

Um banco de dados se beneficia de ter os arquivos abertos o tempo todo, podendo saltar e pesquisar dados e gravar de forma incremental. Portanto, qualquer banco de dados que espere um desempenho multiusuário e até lento não funcionará neste contexto. E isso presume que você use “fuse” ou outro software de montagem do S3 como sistema de arquivos.

No entanto, existe uma maneira de usar o S3 como banco de dados, em casos de uso específicos. Em alguns casos, pode fazer sentido ter um arquivo armazenado no S3, com um “arquivo secundário”. Isso significa que você tem, por exemplo, image123.jpg armazenado e ao lado dele tem image123.json com informações sobre este arquivo.

Por exemplo, backups ou outros dados onde você pode verificar se o arquivo existe, usando um esquema de nomenclatura incluindo uma data, por exemplo, e se houver, busque o arquivo secundário também, com informações extras sobre o arquivo. Dessa forma, você pode escalar indefinidamente, sem envolver um banco de dados real.

Dependendo do seu projeto, o arquivo secundário pode até mesmo um banco de dados SQLite, que é baseado em um único arquivo e compatível com SQL (principalmente). Esteja ciente das advertências mencionadas acima.

Sinta-se à vontade para comentar abaixo.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *