分布式 NoSql 数据库 Couchbase 的3个应用案例

Posted 性能与架构

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分布式 NoSql 数据库 Couchbase 的3个应用案例相关的知识,希望对你有一定的参考价值。

简介

NoSQL在过去几年迅速增长,很多大型企业将其应用于重要任务,例如

  • Tesco(全球三大零售企业之一)使用 NoSQL 支持他的目录、价格、库存等多个主要领域

  • Sabre(机票全球分销商)使用 NoSQL 支撑其世界上最大的旅游数据服务

现在 NoSQL 的发展呈现出4个明显特点:

  1. 超越了实验阶段,进入了主流,被应用于核心应用

  2. 被各行业的主流公司所采用,使用场景非常广泛

  3. 早期采用者已经受益,高性能、易扩展、开发快、资源利用率高

  4. 成为了现代大数据基础设施中的重要部分

分布式 NoSql 数据库 Couchbase 被广泛用于大型系统,下面介绍其3个典型的应用场景

  1. 个性化

  2. 实时大数据

  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 应用场景案例,包括:

  1. 个性化

  2. 配置管理

  3. 实时大数据

  4. 内容管理

  5. 目录

  6. 360视图

  7. 移动应用

  8. 物联网

  9. 数字化沟通

  10. 欺骗检查

因为篇幅关系,本文只整理了其中的3个,如果对这篇文档有兴趣,可以发送消息 cb 下载文档


点击 “阅读原文” 查看 文章列表

以上是关于分布式 NoSql 数据库 Couchbase 的3个应用案例的主要内容,如果未能解决你的问题,请参考以下文章

.Net分布式缓存应用实例:Couchbase

.Net分布式缓存应用实例:Couchbase

DB宝46NoSQL数据库之CouchBase简介集群搭建XDCR同步及备份恢复

更好的NOSQL Cache系统Couchbase

互联网如何海量存储数据?

Rails 设计与 Couchbase