使用NoSQL数据库获取竞争优势行业资讯
现如今的电子商务、社交媒体和智能设备都在向企业提出数据要求,而关系数据库系统无法以高速度和合理的成本来支持这些数据需求。尽管NoSQL技术带来了相关的解决方案,但其各种数据管理方法会涉及到一系列的术语集合,这些数据管理方法又各有其优势和劣势,取决于企业的IT专业人员试图解决的具体问题是怎样的。
在NoSQL领域的新应用程序的特点是通晓多种语言,451集团数据平台和分析研究主任Matthew Aslett说。这一概念要归功于ThoughtWorks的软件研究者和独立顾问Martin Fowler。其使用NoSQL数据库的Riak源码、Neo4j、MongoDB和Cassandra,以及一个RDBMS设计了一款Web应用程序,用于区分不同的数据集。
这样一个大杂烩的技术对于那些获得清晰优化、标准化支持的IT经理们而言无疑是一种诅咒了。但他们可能不得不去适应它,Aslett说。
“你需要使用一种技术解决非常具体的问题。”他说。”如果从企业IT的角度来看,这并不一定是好事。你的一款应用程序会有四或五个数据库,而且所有这些数据库都是互相依赖的,支持不同的关系,只有一个人知道如何将它们整合在一起。
“企业正在进行战略选择,他们需要找出哪个NoSQL数据库最能帮助他们实现其业务目的,哪个开发人员最喜欢使用,并试图减少数据集。这就需要积极的接受这一不可避免的计划,而不是试图阻止这一潮流。”
对于有经验的NoSQL的用户的情况:如全球分销系统Amadeus,其库存管理分配着700家航空公司、数千家旅行代理机构和全球的互联网预订引擎。其使用NoSQL数据库Couchbase和关系数据库Oracle管理航线库存和预订系统,其同时也使用NoSQL MongoDB进行文档存储。Amadeus研发部门的架构和基础设施副总裁Dietmar Fauser说:“企业需要清楚的了解自己的问题,然后选择最适合的技术。”
水质管理公司i2O使用Cassandra
Cassandra是一套开源分布式列存储NoSQL数据库系统。其优先提供数据的一致性有利于水质管理公司i2O开展业务。数据按列存储,而不是像关系数据库中的按行存储。数据库的分布式性质意味着其创造了宽列分布式特性,而不损害性能。
但企业也使用Elasticsearch作为NoSQL的数据库来存储不规则的文件用于IT审核,并继续投资于关系数据库PostgreSQL。
i2O公司 帮助自来水公司和企业监控用水需求,以减少泄漏和过度供应。智能硬件,如阀门,压力仪表,连接到基于云计算的学习算法,以确保其消费者得到必须用水量的同时,每天节省了2亿升水。
该公司软件和IT总监Mike Williams说,系统需要在水中的网络花费大量的时间处理来自监控设备的序列数据。
该公司选择Cassandra是因为其能够在一个分布式数据库管理很宽的行。“当我们开始尝试Cassandra时,我们发现其具有如此多的可扩展性,并且对这种类型的数据非常有效,即使我们并没有在第一时间得到完美的设计。”Williams说。 “我们可以得到更多的面向列的视图,而不损失检索数据量的性能。”
因为Cassandra是设置用于分发的,其由服务公司DataStax提供技术支持,使其较之其他系统更容易增加新节点,Williams说。 “这真的是不费吹灰之力了。我职业生涯中很大一部分时间都是在与数据库打交道,而集群关系数据库从来没有像这样容易过。”
存储在云系统
Temetra是另一家公共服务公司,该公司收集燃气及水的电表数据,并将其存储在一个基于云的系统。他们选择采用Basho公司的NoSQL数据库Riak,因为其“键值”特质允许他们来存储大量非结构化的数据。
自2010以来,其爱尔兰公司在英国的规模扩大了,其管理的数据量增长了20倍,而其所收集的数据量也大幅上涨。该公司曾经使用关系数据库PostgreSQL,但日益增长的数据量严重影响了其性能。软件工程师兼Temetra的创始人Paul Barry在尝试了Cassandra之后,决定转移到Riak。
他说,转移到NoSQL需要在IT管理进行新的思考。“我们仍处在学习阶段,如果您咨询三位经验丰富的SQL工程师,让他们绘制出一些数据,他们可能会采用以几乎相同的模式。尽管我们采用NoSQL的第一个案例并不完美。但它是可靠的,能够存储大量数据,当然它不是适应所有的案例的最佳解决方案。我们已经因此而改变了我们的数据存储方式。你在使用NoSQL时,必须要有灵活的思维,以适应不断变化的理念。”
Temetra继续使用传统的SQL系统处理交易数据;用NoSQL搜索技术Solr,但Riak在支撑着其需求的快速扩张,Barry说。
NoSQL数据库可能需要IT管理人员走到他们已经习以为常的舒适区域之外。该技术是多种多样的,缺乏标准的工具,技能和方法以映射数据。但是,只有使用恰当,他们能够帮助企业提高在市场上的数据性能,在带来竞争优势。
案例研究:全球分销系统(GDS)顺利应对全球数据的增长Amadeus是世界上最大的全球旅行分销系统,其系统能够使消费者和旅行代理商方便的访问全球700家航空公司的航班,以及酒店客房和停车位的预订情况。该系统曾经只提供给旅行代理商所使用,但随着在线旅游网站的兴起,意味着其数据库每秒的访问量高达300到400万。
不断增长的移动旅游搜索和预订量使得其访问量每秒上升到了2000或3000万次,Amadeus研发部门架构和基础设施副总裁Dietmar Fauser说.
在本世纪初,Amadeus研发部从大型主机转移到UNIX(后来又转到采用Linux);从Oracle转移到关系数据库。但是随着网络流量需求的增长,他们需要找到提供访问库存数据的新方法。
Amadeus拆分了其数据库的读取部分,让用户可以服务航班的飞行情况,在Oracle数据库外面复制它,并在内存环境下把它变成一个分布式,基于开源的Memcached架构,一个键值的NoSQL数据缓存。这在关系数据库产生两个数量级的性能改进,但其需要细化和完善,所以Amadeus选择了Couchbase ,其类似于NoSQL数据库, Fauser说。
问题是,Memcached没有持续性。因此,如果一个节点发生故障,其不能带回。用户要么需要编写自己的持久性代码,或使用Couchbase数据库中已经存在的代码来创建它,Fauser说。
NoSQL数据库通常在性能与一致性之间进行权衡,接受“最终一致性”,而不是关系数据库的严格规定。Amadeus继续使用Oracle来解决交易数据,其确保NoSQL在大约一秒钟能够读取数据。
同时,Amadeus还尝试使用MongoDB,基于文档的NoSQL数据库,用于电子售票数据库和收入管理系统。 “我们接受不同的技术,只有我们认为其符合我们的需求。” Fauser说。