DynamoDB 的优势无需赘言,在亚麻的 paper 和 AWS 的技术文档中已经讲了无数遍,大量的工业实践经验也证明了 DynamoDB 确实是一款非常优秀的数据库。所以这篇文章的重点放在了个人使用 DynamoDB 的过程中遇到的坑。其实严格来讲很多不应该算“坑”,只是因为之前没有接触过,所以用起来多少感到些许不适应,简单起见,也归为了“坑”的一类。在使用中,我的环境是 Python 2.7.14 ,连接数据库的 driver 使用的是 boto3 。
>>> import decimal
>>> decimal.Decimal('123.123')
Decimal('123.123')
这个锅主要是因为浮点数无法精确地用二进制表示,而 DynamoDB 要求浮点数精确表示。以上是目前我的一些使用经验,可能还有其他各种不适应的地方有待去发现。虽然 DynamoDB 对初次接触它的人来说有很多看起来“奇怪”的地方,但用习惯了并没有太多的槽点,并且对我而言,还有它最大的优势——运维方便,不需要人工去维护一个数据库集群包含多少机器,它会自动的根据数据量扩展;也不需要我们自己去写一个复杂的配置文件及一个日志系统去监控它的运行,一切都可以通过 AWS 控制台中点鼠标实现,在生产环境中,可以称为理想。