Entonces, la siguiente gran pregunta sería, bueno, ¿por qué no DynamoDB? Obviamente, hay compromisos, esta no será una decisión sin compromisos. Lo primero y más importante es que es exclusivo de Amazon, por lo que la gente se preocupa por eso. En realidad, esto no es totalmente preciso desde el punto de vista técnico, aunque hay ejemplos de personas que ahora clonan Dynamo para otras bases de datos clave-valor, como sucedió con muchos otros servicios de Amazon, como S3, que se ha clonado bastante. Probablemente esto continuará sucediendo.
Una crítica muy válida, sin embargo, es que es un poco complicado de aprender. El modelado para una base de datos clave-valor de columnas anchas se centra mucho en las consultas, debes pensar en cómo obtener los datos antes de almacenarlos, a diferencia de los datos relacionales, donde desnormalizamos todo y podemos hacer consultas ad hoc. Otra cosa un poco extraña es que la sintaxis de consulta es un poco extraña. No es igual que en las bases de datos relacionales, aunque argumentaría que esto es solo una cuestión de familiaridad, si hubieras aprendido Dynamo primero y luego aprendido Postgres, probablemente encontrarías extraño a Postgres, así que no es realmente algo importante.
Por qué no DynamoDB también tiene muchos mitos, y quiero abordarlos directamente. Uno de los primeros mitos es que es costoso, otro es que necesitas conocer todos tus patrones de acceso por completo antes de hacer cualquier cosa, eso no es cierto. He escuchado que es difícil de modificar y migrar, eso tampoco es cierto. A veces la gente dice que no se puede usar SQL, eso no es cierto, y abordaremos los mayores obstáculos, el bloqueo y la escalabilidad al final, porque será divertido.
Entonces, ¿es caro? Bueno, la capa gratuita de DynamoDB te ofrece 25 gigabytes almacenados en disco por mes de forma gratuita, y son 25 centavos por cada gigabyte adicional. Eso es mucha capacidad de datos de inicio, 25 gigabytes, es un montón. Además del costo de almacenamiento en disco, también debes pagar por las lecturas y escrituras, y básicamente se calcula que alrededor de 200 millones de solicitudes por mes estarán en la capa gratuita. Almacenar 25 gigabytes, 200 millones de solicitudes por mes. Creo que esto no es caro en absoluto, es muy barato. Y así, incluso si, a medida que creces, encuentras que estos números se vuelven inmanejables, aún es recomendable usar Dynamo para al menos prototipar tu aplicación. Te llevará muy lejos, por muy poco. Como dato adicional, el chiste que solía decir es que sí, Dynamo es caro, pero también lo son los DBAs. Y esa broma solo tiene sentido si has tenido que fragmentar una base de datos. No voy a asumir que todos saben de qué estoy hablando ahí.
Otro gran mito es que necesitas conocer los patrones de acceso de antemano. El modelado de DynamoDB es diferente al modelado de bases de datos relacionales, y es simplemente diferente, no es mejor. Es simplemente diferente. Y así, en ambas bases de datos, ya sea relacional o clave-valor, necesitas tener un esquema de algún tipo. Necesitas decir que se esperan estos valores y así es como voy a hacer consultas. Así que realmente no importa qué base de datos elijas. En algún momento, tendrás que declarar un esquema.
Comments