java自学网VIP

Java自学网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2695|回复: 0

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

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

    [LV.Master]出神入化

    2025

    主题

    3683

    帖子

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    66345

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

    发表于 2017-3-15 18:24:51 | 显示全部楼层 |阅读模式
    11.3 应用
    : E, d2 u7 p. e& U7 k( @% D$ cOceanBase上线两年左右的时间已经接入了30多个业务,线上服务器数量超过0 \4 I+ W( G2 ]0 A" L
    300台。虽然OceanBase同时支持OLTP以及OLAP应用,但是OceanBase具有一定的适* f/ _, V- f8 E1 }+ A) A: _
    用场景。如果应用总数据量小于200TB,每天更新的数据量小于1TB,且读写压力较: q! ]. x; V7 r' s9 O
    大,单台关系数据库无法支撑,那么,适合采用OceanBase。对于这种应用,  ^1 W- V5 n: U# U0 o: C: N( C$ U
    OceanBase具有如下优势:' D$ S! D" f9 G. g5 w/ G0 _
    ●无须分库分表。OceanBase系统内部自动按照数据范围划分子表,支持子表合  l" }0 `: w$ ~# r3 @: X5 D7 u
    并、分裂、复制、迁移,无须应用考虑分库分表以及扩容问题。
    " f+ `/ ]& M5 C* w. q; B4 J8 ?! C●易于使用。OceanBase的使用方式和关系数据库基本一致,且保证强一致性,: C0 W1 H6 `; e
    从而简化应用。- X' g: t* `3 s2 V
    ●更低的成本。OceanBase采用C++语言实现,并针对多核、SSD、大内存等现代8 }; d8 g( L. S2 y' P7 x- {
    服务器硬件特点做了专门的优化,能够最大程度地发挥单台服务器的性能。& _" M# M2 I) W* [
    如果应用需要使用OceanBase专有的功能,例如10.4和10.5节提到的并发查询、' F) }+ U* Q3 q$ H) m) a' a& V
    大表左连接、数据过期,那么,OceanBase的优势会更加明显。
    & _5 g8 ^# w2 X% t, C当然,OceanBase并不是万能的。例如,OceanBase不适合存储图片、视频等非
    9 c9 U* n5 H0 x) u9 n- y9 i结构化数据,也不适合存储业务原始日志。这些信息更适合存储在专门的分布式文8 ]( r7 e7 A! u7 h! V  Y* d3 `$ X
    件系统,比如Taobao File System、HDFS中。2 I! S/ O, F/ s1 `9 |* v
    本节选取收藏夹、天猫评价、直通车报表这几个典型业务说明OceanBase的使用& {0 F1 f- q6 W) G: v! k! M
    情况。
    , B' O6 G9 M$ Z  r1 f6 h! a11.3.1 收藏夹' v4 e( U8 E) ^0 C/ j
    图11-6展示了淘宝某用户的收藏夹。- O7 y) P  y% d- R5 K/ e. N( y
    图 11-6 淘宝某用户收藏夹
    6 l* l: K7 i6 }7 c" M* b收藏夹属于典型的OLTP业务,主要功能如下:1 X+ y7 ^/ P. a& ?' U
    ●收藏列表功能(范围查询):按照某种过滤条件,例如标题、标签等查询某个
      }. M9 m8 |4 a+ {9 W- R' u. s用户的所有收藏;可能需要按照某种特定条件排序,例如商品价格、收藏时间等;
    " v, G* a0 n( Q9 o3 @6 \' k支持对结果的分页;支持在结果集上执行聚合操作,例如Count计数。
      c- T/ {7 f8 j- q  l) c* G, g5 c●修改操作:将商品或者店铺添加到收藏夹,删除收藏,对收藏条目打标签。; I1 O/ l0 d1 s+ f! k
    10.5.1节中提到的大表左连接功能是收藏夹的难点,OceanBase高效地实现了这. a9 p6 W9 T3 ]9 F
    个需求。截至2012年11月11日,收藏夹集群规模接近60台服务器,单表数据量超过1 h) B4 e# D; {! \( z
    100亿条,整体数据量超过200亿条。2012年11月11日当天读取次数超过15亿,且大
    " c; t- {( q8 G部分查询为范围查询,读取总条目数超过900亿条,读取平均延时在10~20毫秒。
    : x& _, d$ c! s( p0 F11.3.2 天猫评价$ ]5 e" f( z9 G% b
    图11-7展示了天猫某商品在线评价。
    9 @" g9 i( d1 q, D图 11-7 天猫某商品评价# E) S0 ?! U; z- ?( s$ c
    天猫评价也属于典型的OLTP应用,主要功能如下:
    4 m& T8 a5 M* d1 d●评价展示(范围查询):按照某种过滤条件,例如标签,查询某个商品的所有
    3 l- L5 ~# y) u评价;可能需要按照某种特定条件排序,例如时间、信用;支持对结果的分页;支4 z# b: d* S+ x$ r2 B$ M) R0 g: U
    持在结果集上执行聚合操作,例如Count计数。
    8 z6 t' q$ \8 p6 A! \, r●修改操作:新增一条评价,修改评价,例如将好评修改为差评。  N- I1 H6 s6 |# i
    天猫评价的难点在于部分商品评价数很多,达到数十万条,极少数商品的评价1 a: P/ d) k0 c; J$ g% p- i
    数甚至超过一百万条,采用传统数据库方案很容易出现超时的情况。OceanBase的优) a. w( g' A$ \( X0 e: g' p7 s
    势主要体现在两个方面:6 d+ Z8 T0 P, C# X; y
    ●相比传统数据库,OceanBase的数据在物理上连续存放,因此,顺序扫描性能8 s1 J- g4 R% I( P8 [. O& }
    更好,适合大查询使用场景。' T$ B+ z: \! G
    ●如果一个商品的评价数过多,OceanBase系统内部会自动将该商品的数据拆分3 ~0 r1 ~) |$ m! ~# X$ P
    成多个子表,从而发挥OceanBase的并发查询优势。
    ; ^7 J7 U* |, {0 \' R- z天猫评价总体数据量超过7亿条,大部分查询能够在20毫秒之内返回,大查询的- j9 b9 a0 Q! A8 k' q! F3 k
    延时约为200ms,满足了应用的需求。当然,大查询延时还有较大的优化空间。; r# Q" W) F! L! f% ?
    11.3.3 直通车报表$ j  T( ^+ {" C4 L+ I. ?" c
    直通车报表是典型的OLAP报表需求如图11-8所示,包含如下几个方面:
    ! z3 ?8 J8 o/ p: ~, m图 11-8 直通车报表查询页面# r, P  X2 G& v
    ●数据定期导入:每天凌晨将Hadoop分析结果导入OceanBase。1 J9 l  y: M% ~# _9 k( \
    ●报表查询:按照用户、推广计划、宝贝、关键词等多种维度分组,统计展现0 q& ^1 t! A# }7 d0 B$ u" I8 Z
    量、财务花费等数据,响应前端的实时查询需求。
    & P. {: x% L5 Z1 q3 D7 {每天导入OceanBase的数据中,每个关键词会有一条数据,包含了这个关键词当; L) E$ m, R) }5 {" {" g
    天的展现量、点击量、财务花费等统计数值。用户允许查看最近三天、最近一周、
    8 e: H' I9 f# ]. c: Q8 Y最近一个月或者其他任意时间范围的统计数据,统计值包含这个时间范围内展现量
    : m, U' H" y. Z9 d4 q6 i总和、财务花费总和等,还包括一些计算值,例如点击率(Click Through& O/ ?$ _; @) _
    Rate,CTR)、每次点击花费(Cost Per Click,CPC)等值,按照用户、推广计划、宝
    . v- D& C0 l4 |4 H& \2 x# R& _贝、关键词等维度分组,并且可以按照任意列对这些分组的统计数据进行排序,排
    # K; a, V7 X' t" T序后分页展示。- k, t1 y0 D9 {
    直通车报表的难点在于多维度组合查询,每次查询最多需要分析上千万条记" M9 J5 a& g/ |7 b7 ?# H4 ?
    录,且要求响应时间在秒级。由于多个维度可以任意组合,传统数据库二级索引的
    # U% f8 U8 i7 @方式不再适用。OceanBase支持并行计算,自动将大请求拆分为多个小请求同时发给- e+ X1 _. J) G- ^  a
    多台ChunkServer并发执行,从而将延时降低一到两个数量级。另外,由于直通车报4 h5 p3 g& S& Y8 u
    表大部分字段为整数类型,OceanBase内部会自动将整数编码以后压缩存储,从而节' r1 Z8 `9 u/ S3 w: Z
    省存储资源。
    . ]; p* k* o+ ^- m; R+ {基于容灾考虑,直通车报表部署了主备两个集群,每个集群12台服务器,整体) ~. V9 C# m# _( R' D( ?6 q9 u! R
    数据量超过1500亿条。每天导入数据量大约为100GB,导入时间在1到2个小时。线; s# e9 g2 c) v* ^% p8 I8 ]
    上平均查询延时小于100毫秒,涉及千万条以内记录的大查询延时在3秒以内。
    $ X1 |3 Q; h" e' x3 `6 W$ P4 q, K/ w- n
    / N  }; n0 {) ^' B5 u
    回复

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-11-23 17:34 , Processed in 0.122031 second(s), 31 queries .

    Powered by Javazx

    Copyright © 2012-2022, Javazx Cloud.

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