NoSQL与移动应用开发
Posted 巨杉数据库
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NoSQL与移动应用开发相关的知识,希望对你有一定的参考价值。
1.移动应用概述
如今,用户们都希望自己能用手机处理工作生活的各种问题,也希望移动端的应用能变得越来越好。然而,现有的传统关系型数据库(RDBMS)对于快速迭代和开发可以说是很不擅长,同时RDBMS在面对数以亿计的数据时,也表现的力不从心。
随着移动设备和互联网的不断发展进步,人们的工作生活也越来越多的在向移动应用上转移。可能你认为还有很多行业与移动应用和互联网无关,但是其实如今几乎每一个行业都与移动应用紧密相连:
政府 |
政府的医疗移动应用,可以为百姓提供了更便捷可靠的医疗保障。用户可以使用移动应用预约医院医生,挂号就诊,甚至可以在线帮助医生做出诊断和开具处方。 |
金融服务 |
不仅许多银行已经推出了移动端的理财应用,许多保险公司也开始开发移动应用。这些应用可以让用户在遇到事情的第一时间申请理赔,同时可以将现场的情况用手机记录并上传。 |
高科技行业 |
除了软件企业,硬件设备厂商也需要好的移动应用来体现其设备的优越性。 |
零售业 |
移动端的零售应用可不仅仅是显示一个价目表这么简单,它还应该能实现在线购物,条码扫描,促销信息等多样功能。 |
2.移动应用开发的难点
2.1 开发难点
移动应用正在慢慢深入我们的工作和生活,可是移动开发却还没有跟上应用自身发展的脚步。移动应用的开发在现有的数据库架构下面临着不少的难点:
过时的数据库技术:如今众多的智能设备以及移动App在开发和使用的过程中,创造了众多的非结构化、半结构化数据。这些新的数据能让移动应用拥有更好的体验,可是关系型数据库并不能很好地处理这些新数据。
扩展的限制:移动应用的传播和发展通常是飞速增长的,为此应用的响应和处理性能也需要跟上增长的步伐。之前关系型数据库需要使用大量的金钱和时间来实现,但是这始终不是关系型数据库所擅长的。
死板的数据模型:关系型数据库让应用开发变得缓慢,不仅难以添加新功能,也很难对已有的产品功能做出修改。这对移动开发是致命的,因为开发者无法针对客户的使用情况做出迅速的反应。
2.2 出现难点的原因
开发一款平庸普通的移动应用并不困难,然而做到不断迭代,不断改进的杀手级应用却并非易如反掌。那么为什么移动应用开发在现有数据库架构下会出现诸多的瓶颈呢?
新数据:非结构化、半结构化以及多样化的数据类型,并不适用于传统的表结构,新的K-V结构也许可以处理数据,但是却缺少了多样的管理和处理数据功能,比如丰富的查询、原子更新、二级索引和聚合操作。
严格的数据模式:面对移动应用,开发者应该能够支持新的设备,方便的增添新的功能并面对各种情况的快速反应。但是关系型数据模式很难不断的累计改变,特别是它无法在不影响性能表现、不下线的情况下做出修改。
扩展性:关系型数据库设计是针对单个服务器的应用的,并不是为了水平扩展。他们设计时只能满足每秒百次的操作,而不是每秒百万次的操作。即使投入大量的时间和花费,甚至为其设计专门的分区层,想要扩展RDBMS还是很难达到令人满意的效果。
3.NoSQL与移动应用开发
3.1 NoSQL让移动开发变得更容易
面对数据库带给移动开发带来的困境,NoSQL数据库能很好的解决这些问题,让移动开发变得更容易。
杀手级应用:NoSQL让开发者能随心所欲的设计自己的产品。NoSQL灵活的数据结构,让它能处理好任何数据类型。此外,NoSQL还支持众多的开发平台、架构,为开发者提供多样化的功能。
大数据处理:作为一款面向大数据的数据库,NoSQL优良的扩展性让它可以用普通的硬件和高效的操作实现PB级别数据和百万计的用户操作。
快速反应:NoSQL灵活的数据结构让开发者免去了很多的设计时间。数据库的高性能也让引用有了更快的反应时间,让开发者能快速的响应用户和市场的需求。
3.2 为什么?
在这些优点背后,是NoSQL特有的设计。
文档型存储结构:JSON格式文档的数据模型,让NoSQL能够很好的存储任何类型的数据,也能很好的服务各种类型的设备,你也可以构造复杂的曾计划的数据结构。通过很好的实现多样的查询、原子更新、二级索引和聚合操作,NoSQL让你能够开发出“杀手级应用”。
高性能表现:NoSQL的高性能表现,让开发者在开发时能迅速的实现功能,也让用户在使用移动应用时享受到实时的响应。
水平扩展:水平扩展和分区性能是NoSQL设计的基础之一,通过近乎无限的水平扩展能力,NoSQL能支持数以千计的节点,PB级别的数据以及百万次每秒的操作,而不需要建立专用的分区层。
4.应用实例:
某著名移动应用是基于地理位置分享的社交网络,它可以让用户在移动设备上对于所在地点进行“check-in报到”,以此可以获得奖励。之前的应用,完全依赖于关系型的数据库,也因为这样,应用不能够简单、快速的为了高流量的状况而快速的扩展节点。一种长期有效、可扩展的解决方案迫在眉睫。
为此该应用的开发团队选择使用文档型的NoSQL数据库作为新的数据库底层选择。在成功使用NoSQL之后,不仅解决了困扰已久的问题,还改善了许多其他功能的特性。
自动分区:该应用将数据迁移到NoSQL数据库,很大一个原因就是NoSQL数据库集成的自动分区功能。这一功能自动将数据库分成几个部分,不仅解决了单一节点的容量问题,也自动帮助使用者将写入的新数据自动的存储到响应的节点。这样,应用无需自己设计分区的算法,只需要将数据存入NoSQL数据库,数据库会自动添加节点并分配数据的存储。
复制组:NoSQL数据库的复制组带给数据库面对节点事故时更高的可靠性,因为复制组能提供事故的自动恢复。该应用使用Amazon EC2作为运行平台,云服务不可避免的更容易出现事故,而复制组中的自动的故障恢复也能大大提高应用性能。有了复制组的功能,以前可能非常可怕的一个事故,现在也能够轻松解决了。
文档型数据模型:NoSQL数据库的文档型数据模型还有内置的独立JSON类的对象,可以很好的支持面向对象编程,而不像关系型的数据结构,在编程过程中还需要数据表转换为对象的过程。此外,JSON的多样数据结构支持,还免除了关系型数据库表之间链接在使用时对性能的影响。NoSQL数据库让这一款地理位置移动应用有效地简化数据模型的结构,不仅运作时节约了很多的时间和性能,工程师们在面对代码时候也能很好的理解数据的内容关系。
5.结论
在移动应用渐渐占领我们生活的方方面面的今天,一款适合的数据库对于移动应用提升性能、用户体验还有移动开发者的快速反应、功能设计都是至关重要的。传统关系型的数据库以及其架构已经没有办法很好的支持移动应用了。
面对像例子所述的这种新型的应用,他们的数据类型多样而又海量,同时他们还要求精确而快速的反应,针对这种新兴的移动应用场景,NoSQL数据库能够满足他们对于数据库的所有需求。所以,NoSQL数据库才是移动应用的不二之选。
--------------------------------------------------
MDCC 2014 大会将于2014年11月1日-11月2日,在北京新云南皇冠假日酒店举行。作为本次MDCC大会的合作伙伴之一,SequoiaDB(巨杉数据库)诚邀各位共赴展会现场,并希望大家能到我们的展位(展场3层T20)与我们做更进一步的交流!
SequoiaDB 官网:
www.sequoiadb.com
SequoiaDB 免费社区版下载试用 :
www.sequoiadb.com/index.php?p=downserver
以上是关于NoSQL与移动应用开发的主要内容,如果未能解决你的问题,请参考以下文章
Web 应用程序的文件存储:文件系统、数据库和 NoSQL 引擎