java自学网VIP

Java自学网

用户名  找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2824|回复: 0

《大规模分布式存储系统》第11章 质量保证、运维及实践【11.3】

[复制链接]
  • TA的每日心情
    开心
    2021-5-25 00:00
  • 签到天数: 1917 天

    [LV.Master]出神入化

    2097

    主题

    3755

    帖子

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    66793

    宣传达人突出贡献优秀版主荣誉管理论坛元老

    发表于 2017-3-15 18:24:51 | 显示全部楼层 |阅读模式
    11.3 应用
    6 f# _, d1 D% a) A2 z& K5 }OceanBase上线两年左右的时间已经接入了30多个业务,线上服务器数量超过1 k6 X. f3 w$ O/ J- b# p3 W
    300台。虽然OceanBase同时支持OLTP以及OLAP应用,但是OceanBase具有一定的适
    8 P, Q$ y, J; N* J: U3 v0 J用场景。如果应用总数据量小于200TB,每天更新的数据量小于1TB,且读写压力较
    8 f; V2 n7 m) x+ t% H4 ]+ b大,单台关系数据库无法支撑,那么,适合采用OceanBase。对于这种应用,: o4 W2 h5 `& M. \8 c2 U  O' J3 H
    OceanBase具有如下优势:
    1 m4 z$ F* |8 ]6 `●无须分库分表。OceanBase系统内部自动按照数据范围划分子表,支持子表合. E( K/ K( y# D8 K) ]
    并、分裂、复制、迁移,无须应用考虑分库分表以及扩容问题。( S$ O: [/ s! C1 k; P9 G# Y
    ●易于使用。OceanBase的使用方式和关系数据库基本一致,且保证强一致性,
    . ?/ t' S. X2 [: b: u3 T1 U: \1 \从而简化应用。
    ; g: b8 q( ~4 x0 g●更低的成本。OceanBase采用C++语言实现,并针对多核、SSD、大内存等现代
    , f6 e* V6 Q( m+ M服务器硬件特点做了专门的优化,能够最大程度地发挥单台服务器的性能。
    9 z( A7 @4 q, g- ^6 d) c- @! U如果应用需要使用OceanBase专有的功能,例如10.4和10.5节提到的并发查询、3 B: P0 ~! C# K# V' z2 [
    大表左连接、数据过期,那么,OceanBase的优势会更加明显。' Z- l& B$ _% l" Q  ~: g5 x& H+ ?
    当然,OceanBase并不是万能的。例如,OceanBase不适合存储图片、视频等非
    ' d) ]9 k; n3 R& o结构化数据,也不适合存储业务原始日志。这些信息更适合存储在专门的分布式文5 G& a3 Q5 Y# l+ @$ Y
    件系统,比如Taobao File System、HDFS中。* I3 f8 t4 I& E/ E3 V) k2 X6 l& I
    本节选取收藏夹、天猫评价、直通车报表这几个典型业务说明OceanBase的使用( N" ^( N0 w8 D5 l. I3 D% M. @+ o( _" C
    情况。
      d0 s9 U9 E1 Q5 Z" V. y11.3.1 收藏夹
    # g; f% j! V% R0 g' B& }图11-6展示了淘宝某用户的收藏夹。9 w2 @8 z: f, F2 U3 ^) b. U
    图 11-6 淘宝某用户收藏夹# F* |/ I& E0 o; T" R
    收藏夹属于典型的OLTP业务,主要功能如下:) x, z- s* h* M0 n* P3 t
    ●收藏列表功能(范围查询):按照某种过滤条件,例如标题、标签等查询某个
    6 x; N' D& B: W. t3 _用户的所有收藏;可能需要按照某种特定条件排序,例如商品价格、收藏时间等;. x! S6 y: R) D: T
    支持对结果的分页;支持在结果集上执行聚合操作,例如Count计数。! G' k8 Q0 N4 l- h/ |+ A
    ●修改操作:将商品或者店铺添加到收藏夹,删除收藏,对收藏条目打标签。+ @$ M* f1 u8 @7 H
    10.5.1节中提到的大表左连接功能是收藏夹的难点,OceanBase高效地实现了这% w! [( E2 o3 H" Y' b; m/ Y2 t% C
    个需求。截至2012年11月11日,收藏夹集群规模接近60台服务器,单表数据量超过- k/ Y3 [1 w  S0 c( x9 `" @0 ]
    100亿条,整体数据量超过200亿条。2012年11月11日当天读取次数超过15亿,且大
    ) R/ j1 H$ s! c- C: p2 U部分查询为范围查询,读取总条目数超过900亿条,读取平均延时在10~20毫秒。7 G" a$ E8 }. C3 Y; j" K
    11.3.2 天猫评价- S6 y- b. g& y* @
    图11-7展示了天猫某商品在线评价。  X9 T2 x& d) N4 d5 J* t
    图 11-7 天猫某商品评价4 Q% w3 r3 R/ ?: k. u6 c% k
    天猫评价也属于典型的OLTP应用,主要功能如下:1 L( X# o' m! q1 b8 f
    ●评价展示(范围查询):按照某种过滤条件,例如标签,查询某个商品的所有
    4 z! F+ c0 A, P2 M) o评价;可能需要按照某种特定条件排序,例如时间、信用;支持对结果的分页;支% N2 P- B9 I6 Z( w, T5 L9 f
    持在结果集上执行聚合操作,例如Count计数。
    8 p5 U- B  i1 z0 t3 v0 w●修改操作:新增一条评价,修改评价,例如将好评修改为差评。' t( @1 j4 Q+ g0 n( ]
    天猫评价的难点在于部分商品评价数很多,达到数十万条,极少数商品的评价
    $ L$ s" N# m( ^0 w/ X数甚至超过一百万条,采用传统数据库方案很容易出现超时的情况。OceanBase的优8 X: a  X- h$ N. n& v! l  V
    势主要体现在两个方面:) X! |/ Q! n# H! p, e% Z
    ●相比传统数据库,OceanBase的数据在物理上连续存放,因此,顺序扫描性能3 T( e/ D0 r. z2 r* i0 K, Z6 n
    更好,适合大查询使用场景。
    / W2 l: w1 b: J1 [. m: G7 F! e●如果一个商品的评价数过多,OceanBase系统内部会自动将该商品的数据拆分
    ( G4 E0 k& o0 }8 f成多个子表,从而发挥OceanBase的并发查询优势。9 R0 |/ _! Q, X7 j. e" ?( s! a& p9 M$ L
    天猫评价总体数据量超过7亿条,大部分查询能够在20毫秒之内返回,大查询的
    ; p$ ~" T$ q, f延时约为200ms,满足了应用的需求。当然,大查询延时还有较大的优化空间。. ]# w/ t: q6 M8 @
    11.3.3 直通车报表
    / w. b1 c/ D; ?' p% A直通车报表是典型的OLAP报表需求如图11-8所示,包含如下几个方面:- C( s0 w6 T& f% {+ s7 f: R
    图 11-8 直通车报表查询页面3 p  }' N% H$ K) p
    ●数据定期导入:每天凌晨将Hadoop分析结果导入OceanBase。
    , A! l+ s. R; E& Z. u* _: i; A●报表查询:按照用户、推广计划、宝贝、关键词等多种维度分组,统计展现
    0 Q/ `/ A3 I- a7 T" y) ?量、财务花费等数据,响应前端的实时查询需求。
    4 \0 |' X( U6 X9 V& O每天导入OceanBase的数据中,每个关键词会有一条数据,包含了这个关键词当
    / S4 `+ I/ h* ?$ E天的展现量、点击量、财务花费等统计数值。用户允许查看最近三天、最近一周、! Y& w# u! J2 E
    最近一个月或者其他任意时间范围的统计数据,统计值包含这个时间范围内展现量
    ; T; Y6 L% m% ^3 H2 k4 D总和、财务花费总和等,还包括一些计算值,例如点击率(Click Through6 `/ @  M& n* a' ?' d5 s4 v
    Rate,CTR)、每次点击花费(Cost Per Click,CPC)等值,按照用户、推广计划、宝- Y4 \& X6 A- e+ m% [
    贝、关键词等维度分组,并且可以按照任意列对这些分组的统计数据进行排序,排. r% M5 R8 ]! M
    序后分页展示。
    - W( p' `( ?# ^* y/ A& U直通车报表的难点在于多维度组合查询,每次查询最多需要分析上千万条记
    7 J7 J" B) S- Q4 ~4 k录,且要求响应时间在秒级。由于多个维度可以任意组合,传统数据库二级索引的
    4 L* M$ X, h3 L' G; W方式不再适用。OceanBase支持并行计算,自动将大请求拆分为多个小请求同时发给" d9 a; I: a1 ^% X4 D, \+ }7 f
    多台ChunkServer并发执行,从而将延时降低一到两个数量级。另外,由于直通车报0 W* _7 E2 b( c2 P
    表大部分字段为整数类型,OceanBase内部会自动将整数编码以后压缩存储,从而节$ [7 B- W! _, p
    省存储资源。+ `$ a! d4 m8 [1 O
    基于容灾考虑,直通车报表部署了主备两个集群,每个集群12台服务器,整体
    ; b7 H6 _2 o- }4 ~/ W/ z2 U数据量超过1500亿条。每天导入数据量大约为100GB,导入时间在1到2个小时。线
    ; z, B2 v) [! b: I# c% c  \上平均查询延时小于100毫秒,涉及千万条以内记录的大查询延时在3秒以内。
    0 s3 r9 O& S" h# h' z
    3 q- s7 Q& z) P4 m& y
    / g7 s# {9 f  C8 H; F- S/ P
    回复

    举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|Java自学网

    GMT+8, 2025-4-2 15:59 , Processed in 0.224921 second(s), 33 queries .

    Powered by Javazx

    Copyright © 2012-2022, Javazx Cloud.

    快速回复 返回顶部 返回列表