数据密集型应用系统设计 pdf_设计数据密集型应用程序的未来
剑桥大学研究员马丁·克莱普曼(Martin Kleppmann)的《设计数据密集型应用程序》对于那些想要了解不同数据库如何工作以及如何在它们之间进行选择的人来说是一本好书。 但这不仅仅是系统地解释技术细节。 该书还概述了用于管理数据的工具和技术的现状,以及塑造未来的新兴趋势。 在本文中,我们将分析其中提出的一些有趣的想法:
· 非关系数据库和关系数据库(甚至消息系统和数据库)之间的区别如何变得不太清晰
· 现代数据库一般如何处理事务和保持一致性
· 不再推荐使用哪种方式处理大数据,而应该怎么做
· 如何使用多语言持久性(用于不同目的的不同数据库)而不会遇到问题
· 如何组织客户端与服务器之间的通信,以使客户端应用程序具有响应能力,并且不会向用户显示过时的信息
融合数据模型
最初,术语" NoSQL"仅被理解为" no-SQL"或" no-relational"。 您可能会认为几乎没有妥协的地方。 当前,它被广告宣传为"不仅是SQL",而且从营销的角度来看有一个很好的理由:人们对支持多种访问数据的数据库的兴趣正在增长。
例如,文档数据库RethinkDB引入了关系数据库领域的一项功能-表联接。 良好的旧SQL标准获得了JSON支持,您可以在流行的商业数据库和开放源代码(MySQL,PostgreSQL)数据库引擎中使用它。
结果,关系数据库和非关系数据库之间的区别不再像以前那样尖锐,如果您已了解如何应用这些新功能,则可以为数据建模提供更大的灵活性。 有关在PostgreSQL中存储JSON的实际案例研究的概述,请阅读Leigh Halliday撰写的综合文章。
当我们更广泛地看待数据处理系统而不仅仅是数据库时,也可以看到融合。 有一些消息传递系统可以像数据库一样提供持久性保证(Kafka),也可以将数据库视为消息队列(Redis)。
在消息传递系统领域,Apache Pu
标签:
相关文章
-
无相关信息