本节书摘来自华章出版社《大数据系统构建:可扩展实时数据系统构建原理与最佳实践》一书中的第1章,第1.1节,南森·马茨(Nathan Marz) [美] 詹姆斯·沃伦(JamesWarren) 著 马延辉 向 磊 魏东琦 译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1.3 NoSQL不是万能的
过去的十年,可扩展数据系统已经取得了大量的创新,其中包括如Hadoop这样的大规模计算系统,如Cassandra和Riak这样的数据库。这些系统可以处理大量的数据,但是需要认真的权衡。
比如Hadoop可以在非常大量的数据上并行化大规模批量计算,但计算具有较高的延迟。对于任何需要低延迟结果的计算,Hadoop是不适用的。
又如Cassandra这样的NoSQL数据库,通过提供一个比SQL中使用得更有限的数据模型,来实现可扩展性。压缩应用程序到这些有限的数据模型中是非常复杂的,且因为数据库是可变的,所以它们不能容忍人为错误。
这些工具单独使用时并不是万能的。但如果智能地结合使用,那么就可以生成能处理容忍人为错误和最低复杂性的任意数据问题的可扩展系统。这就是本书中将介绍的Lambda 架构。