|
11.3 应用
& N, u7 N- d& eOceanBase上线两年左右的时间已经接入了30多个业务,线上服务器数量超过
. ^+ p/ ]# x' b, a. X300台。虽然OceanBase同时支持OLTP以及OLAP应用,但是OceanBase具有一定的适& U: X3 J* g2 `5 \2 V: J# a W
用场景。如果应用总数据量小于200TB,每天更新的数据量小于1TB,且读写压力较
0 |% [& N" w3 O( J1 M5 V9 L h大,单台关系数据库无法支撑,那么,适合采用OceanBase。对于这种应用,
0 [! x0 B/ @4 Z4 u% jOceanBase具有如下优势:! V4 L% \3 `! u9 Y: X- e* ]% _% c
●无须分库分表。OceanBase系统内部自动按照数据范围划分子表,支持子表合6 x O! {3 f8 h" X9 F
并、分裂、复制、迁移,无须应用考虑分库分表以及扩容问题。+ T9 z4 q: @: w: X, R
●易于使用。OceanBase的使用方式和关系数据库基本一致,且保证强一致性,. R- [& T. w7 z4 \% h6 K
从而简化应用。# b, r4 [; E0 _$ Z7 b; Y
●更低的成本。OceanBase采用C++语言实现,并针对多核、SSD、大内存等现代: S0 c! E7 ^! c) c. H9 g
服务器硬件特点做了专门的优化,能够最大程度地发挥单台服务器的性能。
- A) X: y+ D' c8 O [如果应用需要使用OceanBase专有的功能,例如10.4和10.5节提到的并发查询、1 f) Q6 f9 q1 v$ Q- P. k; p: p
大表左连接、数据过期,那么,OceanBase的优势会更加明显。
, P9 v. K, L/ Z) ^! s! D9 S( r当然,OceanBase并不是万能的。例如,OceanBase不适合存储图片、视频等非
! A! C% X3 W& ^' A结构化数据,也不适合存储业务原始日志。这些信息更适合存储在专门的分布式文
1 K/ e Z9 }! Z! u3 ]% Z件系统,比如Taobao File System、HDFS中。
5 c2 k" p$ u6 V, R7 V: P本节选取收藏夹、天猫评价、直通车报表这几个典型业务说明OceanBase的使用
) P9 _2 z0 `8 P0 h# s情况。/ A1 J' D: w- k6 z; z% J' Y3 P
11.3.1 收藏夹- Y/ G3 E u# P
图11-6展示了淘宝某用户的收藏夹。
% z3 N6 C9 c4 A1 s图 11-6 淘宝某用户收藏夹
/ F8 Y2 m0 h+ G: Z7 Q4 E& q收藏夹属于典型的OLTP业务,主要功能如下:' c4 n6 d: Z, Z; Z' z
●收藏列表功能(范围查询):按照某种过滤条件,例如标题、标签等查询某个5 m* P/ \5 h6 W8 e% o) |' h
用户的所有收藏;可能需要按照某种特定条件排序,例如商品价格、收藏时间等;
, j" `4 t$ ?* Q. n, |支持对结果的分页;支持在结果集上执行聚合操作,例如Count计数。. p9 ?* o8 M: O
●修改操作:将商品或者店铺添加到收藏夹,删除收藏,对收藏条目打标签。/ q4 Z) R2 f9 R% o8 j
10.5.1节中提到的大表左连接功能是收藏夹的难点,OceanBase高效地实现了这
1 G1 n, k; ]4 E2 V3 n个需求。截至2012年11月11日,收藏夹集群规模接近60台服务器,单表数据量超过
0 q D& k) h1 U' X0 k# e, w l7 D100亿条,整体数据量超过200亿条。2012年11月11日当天读取次数超过15亿,且大( D5 O: \8 ~ B
部分查询为范围查询,读取总条目数超过900亿条,读取平均延时在10~20毫秒。
, n D/ m3 E& i* ^* v11.3.2 天猫评价
7 T" Z [% D* m$ f7 i3 E- O图11-7展示了天猫某商品在线评价。
+ N) [& Z7 c: ^图 11-7 天猫某商品评价
0 R( j8 [8 c- ?- L( y* K7 l天猫评价也属于典型的OLTP应用,主要功能如下:
# v* ?! Q. ~9 h) I8 I! `$ @! u6 N! e●评价展示(范围查询):按照某种过滤条件,例如标签,查询某个商品的所有$ f5 x7 b3 \$ B* w
评价;可能需要按照某种特定条件排序,例如时间、信用;支持对结果的分页;支
% K! j0 ]* q3 P# c持在结果集上执行聚合操作,例如Count计数。
; r% a; o: p: ]' A K, M●修改操作:新增一条评价,修改评价,例如将好评修改为差评。1 S* v9 m: o! P, k$ S
天猫评价的难点在于部分商品评价数很多,达到数十万条,极少数商品的评价
- |0 P$ m s2 ]% ^# Q4 p数甚至超过一百万条,采用传统数据库方案很容易出现超时的情况。OceanBase的优
4 [2 x! a8 h- Z- D; q, f1 x& Y势主要体现在两个方面:; P4 f, z& J- o8 N
●相比传统数据库,OceanBase的数据在物理上连续存放,因此,顺序扫描性能
2 x* o% z. ~- T更好,适合大查询使用场景。
' g% {. p3 G& c% z$ d●如果一个商品的评价数过多,OceanBase系统内部会自动将该商品的数据拆分5 m, I; n% d0 O$ P. j
成多个子表,从而发挥OceanBase的并发查询优势。
i4 A6 m7 q& P' z& Y6 G" F天猫评价总体数据量超过7亿条,大部分查询能够在20毫秒之内返回,大查询的* k! H% x! A; |! H
延时约为200ms,满足了应用的需求。当然,大查询延时还有较大的优化空间。 ^3 Z' W4 {: A6 @4 O8 G7 y5 n, A/ w
11.3.3 直通车报表
; s& r: {. g7 s) J- [ Y! A r3 N$ S2 B直通车报表是典型的OLAP报表需求如图11-8所示,包含如下几个方面:6 I: @1 o& F0 B6 R, r
图 11-8 直通车报表查询页面
9 y! u3 Q; G% F+ x4 r o3 d. K●数据定期导入:每天凌晨将Hadoop分析结果导入OceanBase。
$ \- o6 o. f9 }8 z/ M●报表查询:按照用户、推广计划、宝贝、关键词等多种维度分组,统计展现
- z# E* |/ L' h$ y. }+ s量、财务花费等数据,响应前端的实时查询需求。
! l3 v. R5 Y) C) Q: W+ U' {0 N1 T每天导入OceanBase的数据中,每个关键词会有一条数据,包含了这个关键词当, `+ G6 ?# V' A8 A2 |
天的展现量、点击量、财务花费等统计数值。用户允许查看最近三天、最近一周、3 p4 v/ g4 U) n0 T# b. m6 T
最近一个月或者其他任意时间范围的统计数据,统计值包含这个时间范围内展现量1 E5 R9 A5 w( U! s6 D
总和、财务花费总和等,还包括一些计算值,例如点击率(Click Through9 ?7 ?9 F; X5 C; `+ T! u
Rate,CTR)、每次点击花费(Cost Per Click,CPC)等值,按照用户、推广计划、宝' |( J8 D, r$ y9 h) f
贝、关键词等维度分组,并且可以按照任意列对这些分组的统计数据进行排序,排
9 a8 d9 ~ w2 e3 B# v! @序后分页展示。
: t; X+ N: ^! I8 E直通车报表的难点在于多维度组合查询,每次查询最多需要分析上千万条记
% i! j0 y2 j0 {0 J, `3 {3 @3 K录,且要求响应时间在秒级。由于多个维度可以任意组合,传统数据库二级索引的7 |$ s# Z5 ~5 Q J ^7 D8 U
方式不再适用。OceanBase支持并行计算,自动将大请求拆分为多个小请求同时发给* A9 ?7 W |5 A
多台ChunkServer并发执行,从而将延时降低一到两个数量级。另外,由于直通车报
" G# Q1 u. S5 | s% L5 l% n, ~% N表大部分字段为整数类型,OceanBase内部会自动将整数编码以后压缩存储,从而节
" F) s8 v) V% [8 z7 q省存储资源。! H" r9 _& S4 Y3 S! U0 D
基于容灾考虑,直通车报表部署了主备两个集群,每个集群12台服务器,整体
8 Z7 \# A* b5 S/ i! b数据量超过1500亿条。每天导入数据量大约为100GB,导入时间在1到2个小时。线
6 l' e) b1 z* j, X% W, K4 z上平均查询延时小于100毫秒,涉及千万条以内记录的大查询延时在3秒以内。: E; Q. w, D' y5 r/ G7 v: E* B" K
7 k7 x8 i! ^/ B
& v$ T, w% y" W2 w8 J |
|