¿Cómo podemos usar Amazon S3 como base de datos?


La mejor respuesta

Para empezar, existen teorías mixtas sobre si Amazon S3 puede usarse como base de datos. Personalmente, creo que Amazon S3 se puede utilizar como base de datos con un poco de transformación arquitectónica. Pero esto no es para los débiles de corazón, ¡y debe tomarse con una pizca de sal! Incluso si puede hacerlo y lograr lo que está buscando, posiblemente tendrá sus propias deficiencias.

Architectural Insight: Para explicar el enfoque de convertir S3 en una base de datos, primero comprendamos la arquitectura subyacente de S3. Amazon S3, en sí mismo, es un sistema de archivos en lugar de ser solo una plataforma básica de almacenamiento de objetos. De hecho, Amazon S3 en sí mismo es esencialmente una base de datos NoSQL. Es un almacén de valor-clave masivo, donde Key es el nombre del archivo, mientras que Value es el contenido del archivo.

Como S3 » El caso de uso principal es el almacenamiento de objetos, la arquitectura subyacente en sí es principalmente un sistema de archivos. Divide automáticamente sus datos dentro de un depósito y mantiene un índice principal para la clave.

Enfoque: Con S3 considerado como un pseudo-sistema de archivos , puede modificar su propósito para actuar perfectamente como un ACID Base de datos, aunque no podrá realizar consultas en ella como cualquier otra base de datos. Pero, de todos modos, no podrá ejecutar consultas aleatorias en Data Lakes masivos, independientemente de lo sofisticado la plataforma lo es.

Por otro lado, en AWS S3, podría extraer métricas interesantes mediante el uso inteligente de Elastic MapReduce s compatible con una canalización de Hadoop . Básicamente, este enfoque requiere que almacene todos los datos generados por OpenHeatMap como archivos JSON en depósitos S3 . Lo más importante es que, dependiendo de cómo estructura sus datos, debería poder consultarlos incluso a través de Athena o S3 Seleccionar . En caso de que necesite cualquier otro servicio de AWS para acceder a la base de datos, deberá tener un script de API que permita transacciones SQL .

Give Pruébelo, y estoy seguro de que obtendrá algo con él.

¡Espero que esto ayude!

Si está buscando ayuda para aprender S3 y desea configurar su propio Cubos de S3, póngase en contacto conmigo.

Respuesta

¿Puede? Seguro. ¿Deberías? Por supuesto que no.

AWS S3 es un gran servicio para almacenar archivos. Sin embargo, cuando desee editar un archivo, tendrá que descargarlo en su totalidad, cambiar lo que desee y luego volver a subirlo; sobrescribiendo cualquier cambio realizado mientras tanto.

Una base de datos se beneficia de tener los archivos abiertos en todo momento, poder saltar y buscar datos, y escribir de forma incremental. Por lo tanto, cualquier base de datos que espere un rendimiento multiusuario e incluso lento no funcionará en este contexto. Y esto supone que usa «fuse» u otro software de montaje-S3-como-sistema-de-archivos.

Sin embargo, existe una manera de usar S3 como base de datos, en casos de uso específicos. En algunos casos, puede tener sentido tener un archivo almacenado en S3, con un «archivo adicional». Eso significa que tiene, por ejemplo, image123.jpg almacenado y luego junto a él tiene image123.json con información sobre este archivo.

Por ejemplo, copias de seguridad u otros datos donde puede verificar si el archivo existe, usando un esquema de nomenclatura que incluya una fecha, por ejemplo, y si lo hace, busque también el archivo sidecar, con información adicional sobre el archivo. De esa manera, puede escalar indefinidamente, sin involucrar una base de datos real.

Dependiendo de su proyecto, el archivo sidecar puede incluso ser una base de datos SQLite, que se basa en un solo archivo y es compatible con SQL (en su mayoría). Solo tenga en cuenta las advertencias mencionadas anteriormente.

No dude en comentar a continuación.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *