【作者按】在最近前往荷兰的商务旅程中,我开始沉思Baruch Spinoza(荷兰)的深远影响。Spinoza是文艺复兴时期的伟大哲学家,与当时的同龄人不同,Spinoza强烈反对传统的神学观点。他的名言之一是:“不要对新思想感到惊讶。因为众所周知,一件事不被许多人接受并不意味着它本身不是真的”。
他认为除了相对特定的情况,事物没有本质上的好坏之分。这让我联想到纷繁的数据库,它们从黑暗的“前云时代”演化而来,尽管当今市场上有各种各样的数据库,但每个数据库都有自己的用途。我们可以自由地从多个数据库中选择,选择多方面的层,将庞然大物分解为微服务,通过利用各种云数据管理工具和技术在构建现代云应用程序方面进行创新。
云计算前世(BC)
我们如何看待数据库的历史遗留问题:计算机信息处理的早期,借由SQL数据库的优点我们得以一统数据管理领域。在那些落后的年代,如果数据增长到几GB,数据库就会被认为相当庞大了。
然后到了中世纪时期,MySQL在1995年提出开源许可模式,并在数据管理领域产生了***个连锁反应。
随着数据变得越来越大,越来越多的应用程序开始转向云计算,数据库技术出现了一种新的动向,大数据分析和云应用的普及使得数据管理领域的启蒙运动也在大力进军加速。与MySQL时代相比,当前的形式——随着云计算策略的***出现——大量数据对象和分布式数据管理的出现——着实让人感觉像是一条复兴之旅。
云计算今生(CE)
在我们当今的云时代下,数据管理是一个数据库数据存储和堆叠的复杂网络。随着MongoDB、HBase、Cassandra、CouchDB、DynamoDB等数据库的普及,谷歌、Facebook、亚马逊和其他公司已经将大量的NoSQL数据库投入前线使用。这是一个巨大的挑战,要把握每一个数据库,并弄清楚为什么使用它。为了理解潜层技术并获得对使用哪个NoSQL数据库的广泛理解,CAP定理是一个很简便的工具。
CAP定理图
现代云管理策略
在当今时代,数据管理需要被分解成许多不同的维度。在选择新兴闪耀的NoSQL数据库之前,我们应该谨慎地考虑使用已经证实的SQL数据库。在选择具体技术之前,了解数据管理的短期和长期商业策略,权衡竞争优先事项是至关重要的。
每当我想要评估一个数据管理策略时,我都会通过一份清单来帮助我做决定(如下):
- 数据的安全性和合规性考虑是什么
- 数据的短期和长期可扩展性是什么
- 数据的类型和用途是什么
- 模式更改的频率是多少
- 数据检索的延迟原因是什么
- 数据的速率是多少
- 数据的多样性是什么
- 数据可用性的要求是什么
- 数据存储的搜索需求是什么
- 数据如何处理成信息和见解
- 数据如何分析和报告
- 数据存储在多用户环境中吗
- 数据管理的***成本是什么
- 数据管理的层级是什么
- 数据管理的生命周期要求是什么(备份/恢复)
技术人员对于云应用程序中使用了多个数据库感到舒适。随着微服务和货柜化的使用,这一趋势也在加速。此外,大多数云应用程序商都意识到分离数据管理层的需求,这些层包括一个UI缓存层、CDN层、图形分析层、业务层、业务分析层、安全层、报告层、物联网设备层等众多层,每个层都可以有自己的数据管理策略——只要数据被保护,通过等REST应用程序界面来进行访问。
把数据库作为一项服务(DBaaS)
这是一个令人兴奋的时代,一组成熟的DBaaS选项针对SQL和NoSQL数据库应运而生。例如,亚马逊极光提供MySQL和PostgreSQL数据库,Instaclustr则提供Cassandra数据库系统作为一项托管在AWS上的服务。
把分析作为一项服务(AaaS)
三大云服务提供商都提供分析服务。云分析平台采用的***障碍是对数据安全的担忧,AWS和Azure提供了一套稳健的数据分析服务,以减轻这种担忧,Azure分析服务针对SQL,并提供强大的可视化Power BI工具。
图数据库使用
图形数据库变革使解决方案更快地从图形匹配查询中受益,同时帮助加速基于网络安全、推荐引擎、IT操作、网络等方面的邻接关系的搜索。例如,在客户的物联网网络安全产品中,我们使用Apache Spark和Cassandra DB作为分析层,基于MongoDB的网络安全编制,但产生的数据由Neo4j图数据库中组织起来,以便进一步分析网络安全的威胁。这是一个数据管理分级分离的绝好例子,在这种情况下,***数据库被用于解决网络安全产品里非常复杂的问题。
物联网数据库
随着物联网可行性应用程序的出现,从设备层收集和处理的大量数据需要以一种专门的方式处理。我们已经成功地使用一个相对新兴、令人振奋的InfluxDB开放源码数据库来有效处理时间序列数据。因此,适当的应用程序可以使用InfluxDB数据库和相关联TICK堆栈来进行数据管理: