简介
NoSQL在过去几年迅速增长,很多大型企业将其应用于重要任务,例如
- Tesco(全球三大零售企业之一)使用 NoSQL 支持他的目录、价格、库存等多个主要领域
- Sky(网络电话服务商)使用 NoSQL 管理他的 2000 万用户配置信息
- Sabre(机票全球分销商)使用 NoSQL 支撑其世界上最大的旅游数据服务
现在 NoSQL 的发展呈现出4个明显特点:
- 超越了实验阶段,进入了主流,被应用于核心应用
- 被各行业的主流公司所采用,使用场景非常广泛
- 早期采用者已经受益,高性能、易扩展、开发快、资源利用率高
- 成为了现代大数据基础设施中的重要部分
分布式 NoSql 数据库 Couchbase 被广泛用于大型系统,下面介绍其3个典型的应用场景
- 个性化
- 实时大数据
- 内容管理
场景1. 个性化
个性化已经成为必然趋势,同时也是一个巨大的挑战。个性化可以针对不同的访问者提供正确的信息,例如广告、推荐等等,但是创建个性化的用户体验需要有强大的海量数据消化、处理、利用的能力,这对于关系数据库是个挑战
个性化体验需要大量不同的数据,例如统计信息、上下文信息、行为数据 ……,可用的数据越多,个性化体验越好
一个典型的数据来源是点击流,具有量大、高速的特点,会对关系型数据库产生很大的写压力,而分布式 NoSQL 数据库,例如 Couchbase,可以弹性扩展
关系型数据库的表结构比较僵硬,很难在运行过程中迅速更新
在得到访问者的各种数据后,需要精确的维护访问者的信息,这些信息很可能具有上百个属性,并且是在增长的。关系数据库的数据模型比较固定,扩展能力不足,而文档数据库具有灵活的数据模型和扩展能力
个性化的信息展示要求是实时的,关系数据库受限于硬盘的速度,而例如 Couchbase 等 NoSQL 集成了内存缓存,速度可以提升百倍
业务和技术上的关键需求点
- 收集统计数据、上下文、行为数据等,来提升访问者信息的准确性
- 管理上亿级别的访问者信息
- 持续添加新的配置属性来增加对访问者的了解程度
Couchbase 的解决方法
- 高吞吐、低延迟,保障了海量的并发用户
- 灵活的文档数据模型,支持快速开发
- 完整的缓存体系提供了高速读写能力
客户案例 AOL
Advertising.com 属于 AOL,是世界上最大的广告网络,每月数十亿的访问
点击流数据进入 Hadoop,用于分析,统计出来的访问者信息存储在 Couchbase,Hadoop 中数据的导入导出是使用 Sqoop
Couchbase 内置缓存中存放着热点广告,可以提供毫秒级的响应速度
灵活的数据结构模型可以方便的扩充数据,进而持续精进广告的目标算法
场景2. 实时大数据
对于公司来讲,从运营数据中快速提取出有效信息是非常重要的,Hadoop 是大数据分析的专家,但不适用于实时分析,NoSQL 在实时数据处理上具有优势,但不适用于数据分析,结合使用 Hadoop 和 NoSQL 成为很多公司的解决方案
以前,公司运营数据库和分析数据库是分开的,用于不同的环境,运营数据库是服务于应用,分析数据库用于商业分析和报告,他们没有很好的集成,通常是把运营数据库中的数据导入分析数据库
现阶段,企业对于大数据的处理从批处理转向了流处理,因为批处理是增量的,而且比较慢,而流处理又快又持续,例如像 Storm 这类的流处理器,分析数据的同时就产出了数据,但他不能分析历史数据,这需要 Hadoop 来处理,而且也不能提供对结果的访问,这时,NoSQL 数据库就有使用场景了,可以作为前端存储,存放和管理运营数据,并把数据倒向 Hadoop,也可以作为后端接收数据库,存储 Hadoop 的分析结果,这样就形成了一种组合方式:NoSQL数据库 Hadoop 流处理器(如Storm)
Couchbase 作为一个高性能的 NoSQL 分布式数据库,已经被大型大数据公司所认可,例如 Cloudera、Hortonworks,Couchbase 可以与主流大数据技术很好的结合,例如 Sqoop、Kafka,提供一套与 Hadoop 无缝结合的完整大数据解决方案
业务和技术上的关键需求点
- 对新的数据尽快处理,来提升运营效率
- 通过一套解决方案同时满足运营与分析的需求
Couchbase 的解决方法
- 与分布式消息、流处理系统进行结合,例如 kafka storm
- 以内存为中心的架构提供了超高读写速度,可以支撑持续增长的性能需求
客户案例 PayPal
PayPal 集成了 Couchbase、Storm、Hadoop 构造出一个实时分析平台
用户的点击流数据和交互数据从各个渠道流入平台,用于实时分析,数据在流处理器 Storm 被过滤、聚合,处理完成后写入 Couchbase,供可视化工具访问,最后,数据会从 Couchbase 倒向 Hadoop,用于离线分析
通过这个平台,PayPal 能够实时监控所有流量
场景3. 内容管理
企业都需要使用丰富的内容满足用户,内容形式不再是简单的文本或者整齐的结构化数据,包括了各种结构化、非结构化的数据,例如图片、音频、视频,而且不仅是企业自己发布的内容,还有用户产生的内容,例如图片、视频、评论
关系数据库的数据结构模型比较僵化,添加新的内容类型并不容易,因为这需要一个新的数据模型,而且添加新的属性也不容易,因为需要修改数据模型
NoSQL 文档型数据具有灵活的数据模型,非常适合存储丰富且复杂的内容,可以存储和访问任何类型的内容,结构化、半结构化、非结构化,因为不需要提前定义数据模型,可以轻松支持企业和用户创建的各种类型内容
内容必须快速的呈现给用户,对于关系数据库,访问速度和存储空间都与用户数量和内容数量有关,数量增加则问题加大,而像 Couchbase 这类分布式 NoSQL 数据库几乎是无限制的,可以通过简单的添加服务器来实现扩展,Couchbase 还集成了缓存,能够提供极速的读取性能
客户案例 - 财富500媒体公司
一个财富500强中的媒体企业,每月有5000万的独立访问数量,使用 Couchbase 替代其了原先的 Microsoft SQL Server,用于支持新的内容类型,全面提升其线上用户体验,可以支持每秒50k读、10k写,并能够轻松跟上需求的快速增长
小结
本文翻译整理自一篇英文文档《Enterprise Use Cases For NoSQL》,其中有10个 Couchbase 应用场景案例,包括:
- 个性化
- 配置管理
- 实时大数据
- 内容管理
- 目录
- 360视图
- 移动应用
- 物联网
- 数字化沟通
- 欺骗检查
因为篇幅关系,本文只整理了其中的3个,如果对这篇文档有兴趣,可以下载文档: