百度云BTS(Baidu Table Service)是百度自研的大规模分布式NoSQL表格存储服务,具有高性能、高可靠、高可用、可扩展的的特点,为云上用户提供了海量半结构化数据的存储和实时访问能力。
随着全球IT信息化的发展,数据量呈指数级增长的同时,新一代IT架构对于数据读写时延、吞吐、可扩展性的要求也在呈指数级增长,架构灵活、性能优越的NoSQL数据库在这样的环境中应运而生。BTS作为典型的NoSQL产品,相比于传统的结构化数据库,合理放弃了部分ACID属性,获得了更高的灵活性和可扩展性。并且,BTS对外开放了标准的Restful API接口,简化了上层调用逻辑,为性能要求更高、数据量更大、有更高扩展性要求的业务提供了更优的解决方案。另外,BTS的Free-Schema特性,支持表格中每一行数据可具备不同的数据结构,并且支持横向扩展无限的列,非常适用于模型复杂、后端数据结构变化快的业务。BTS未来的发展并不局限于此。广义的NoSQL数据库可以细分为KV数据库、时序数据库、文档数据库、图数据库等。BTS产品会向上发展图数据库、文档数据库等能力,后续将作为百度云NoSQL产品的核心和基石,为云上用户输出稳定、强大的半结构化数据存储能力。
十大创新
总结起来,BTS从如下十大方面进行了积累和创新,为云上用户输出了重要的价值:

1.灵活的数据结构

拥有灵活的Free-Schema数据模型,开发者不需要预定义表结构。数据中的每条记录都可能有不同的属性和格式。

2.强大的性能

BTS具备了列式数据库特有的超高顺序写及随即读性能。同时,百度云BTS采用了多种缓存及数据压缩专利技术,为云上用户提高了更高的性能体验。

3.服务可扩展性
服务可全球扩展,在BTS中创建的每张表格理论上都可横向扩展无限的列,纵向扩展无限的行,整张表格中存储的数据量无上限。

4. 数据高可靠性

通过分布式存储技术,将用户写入的数据多冗余存储在不同的底层硬件节点中,当某一存储节点发生故障后,系统自动修复,其余的数据副本可继续提供线上读取服务,对用户无感。BTS服务可实现99.99999999%(10个9)的数据可靠性。

5. 服务高可用性

通过自动的故障检测能力,对单点故障实现毫秒级切换能力,提供了更高的可用性,服务可用性达到99.9%。

6.丰富的数据类型

支持 Integer、Boolean、Binary、Double、String等数据格式,基本涵盖了用户常用的非结构化及结构化数据类型的存储需要。

7.访问高安全性
用户向BTS发起的每一个请求,都会通过百度云IAM的身份认证和鉴权,以防止未授权的数据访问,确保数据访问的安全性。

8.便捷的管理

开放了丰富的Restful API,覆盖用户在云上的各类管理操作及数据使用。同时BTS后续也将开放管理控制台,支持用户的界面化操作需要。

9.经济划算

相比于自建Hbase,百度云BTS提供了按量付费模式,为用户节省了前期搭建集群的软硬件成本及后续的维护成本。同时,BTS当前处于免费公测阶段,全网用户可申请免费体验。

10. 久经考验

经过百度搜索、百度无人车、凤巢、DuOS、百度语音识别等产品的多年使用,有百度内部大规模、复杂业务场景锤炼做质量保证。

五大应用场景

在百度内部,BTS已经有了长时间的积累和广泛的应用,下图概括了BTS在云上较常见的使用方式:

数据从海量的物联网设备、覆盖全球的APP或Web应用、大数据分析系统或AI应用中流入BTS,经过开发者在BTS中基于数据的查询和处理,最终会根据不同的应用场景,将数据输出到图形化展示平台、各类前端应用中。简单总结,BTS典型的应用场景有如下几类:
  • 大数据分析系统BTS提供低延迟、高并发、低成本的海量数据存储和在线访问,满足大数据分析场景中的高性能要求。同时BTS灵活的数据模型便于支持复杂的业务分析场景,比如不同前端页面连接的站点广告流量和点击量分析等。
  • 社交产品在社交产品中,人与人之间每天产生大量信息,包括 IM 聊天,评论、跟帖和点赞等。BTS提供的强索引特性也满足了社交产品对于数据间关系记录的需要。
  • 物联网&车联网物联网场景中,各类智能终端每天产生大量采集数据,BTS的Free-Schema 数据模型、超大的单表数据规模以及超高的QPS,轻松接入不同车辆设备或IOT设备的监控数据,并便于快速查询。
  • 广告&电商推荐通过高可用、低延时的特点,让用户无需担心大量历史交易订单的数据规模和访问性能,支持实时广告竞价平台或电商推荐系统。
  • 游戏应用对于游戏app中产生的大量玩家信息、交易数据、对战状态甚至其中的图片资源等提供存储及快速查询的能力。同时,游戏应用具有变化快的特点,BTS Free-Schema的特点不需要开发者为后续数据存储结构的调整而烦恼。