java自学网VIP

Java自学网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2447|回复: 0

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

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

    [LV.Master]出神入化

    2025

    主题

    3683

    帖子

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    66101

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

    发表于 2017-3-15 18:24:51 | 显示全部楼层 |阅读模式
    11.3 应用4 V7 `% A, b8 o5 I' Z2 u  u; ^
    OceanBase上线两年左右的时间已经接入了30多个业务,线上服务器数量超过
    % w: ?9 `  \* S+ A300台。虽然OceanBase同时支持OLTP以及OLAP应用,但是OceanBase具有一定的适* t4 q6 {. I/ d' p, g  `' `
    用场景。如果应用总数据量小于200TB,每天更新的数据量小于1TB,且读写压力较
    0 w" e+ P& o4 e大,单台关系数据库无法支撑,那么,适合采用OceanBase。对于这种应用,
    + Z. i& U4 N' B0 w' `7 g* h( SOceanBase具有如下优势:8 H# k* X+ R: C; Y6 z$ v; V
    ●无须分库分表。OceanBase系统内部自动按照数据范围划分子表,支持子表合
    7 P& o5 S  ^" o& d并、分裂、复制、迁移,无须应用考虑分库分表以及扩容问题。0 F  f4 y" t  n! ^3 x2 I# w
    ●易于使用。OceanBase的使用方式和关系数据库基本一致,且保证强一致性,. Q$ ?+ n5 ~; L% P
    从而简化应用。; z" E1 R; T$ B+ g
    ●更低的成本。OceanBase采用C++语言实现,并针对多核、SSD、大内存等现代
    ) a' d6 a% J4 G" u  ?服务器硬件特点做了专门的优化,能够最大程度地发挥单台服务器的性能。" q0 g% a+ a' g
    如果应用需要使用OceanBase专有的功能,例如10.4和10.5节提到的并发查询、
    5 d" E- _9 ~' {2 p+ M, T) T6 d大表左连接、数据过期,那么,OceanBase的优势会更加明显。
    6 _0 h2 t; d, n- D+ m( C当然,OceanBase并不是万能的。例如,OceanBase不适合存储图片、视频等非
    % x7 O6 f7 j7 ]. F结构化数据,也不适合存储业务原始日志。这些信息更适合存储在专门的分布式文; j+ s/ X& p5 e, Q# f
    件系统,比如Taobao File System、HDFS中。
    ; Q3 O3 S6 V5 V6 ^+ W9 L% _本节选取收藏夹、天猫评价、直通车报表这几个典型业务说明OceanBase的使用
    " {9 X! y9 [  Y) m. V; o情况。) S- i2 Y$ l. \& j
    11.3.1 收藏夹
    ! `% t. p1 `  n$ W图11-6展示了淘宝某用户的收藏夹。
    $ C* H4 S# `5 K  B! ?图 11-6 淘宝某用户收藏夹  d8 o7 O6 ^, c. _
    收藏夹属于典型的OLTP业务,主要功能如下:1 i& a5 _- }2 m: f$ a
    ●收藏列表功能(范围查询):按照某种过滤条件,例如标题、标签等查询某个
    : F% Q  ^5 \/ }" |7 S用户的所有收藏;可能需要按照某种特定条件排序,例如商品价格、收藏时间等;' \7 x1 [" }' n) g' F
    支持对结果的分页;支持在结果集上执行聚合操作,例如Count计数。  S2 q7 `  ?( I1 i$ G# a" V
    ●修改操作:将商品或者店铺添加到收藏夹,删除收藏,对收藏条目打标签。+ R# G+ i8 j3 V7 W8 D: l9 @
    10.5.1节中提到的大表左连接功能是收藏夹的难点,OceanBase高效地实现了这, S( c  I* b' t) b8 c% y
    个需求。截至2012年11月11日,收藏夹集群规模接近60台服务器,单表数据量超过( D4 B3 K$ P  m
    100亿条,整体数据量超过200亿条。2012年11月11日当天读取次数超过15亿,且大
    8 j+ }3 y5 ?: i' Z7 u部分查询为范围查询,读取总条目数超过900亿条,读取平均延时在10~20毫秒。5 [1 _* O+ E- |4 @  ?
    11.3.2 天猫评价
    2 v  h( ^" w% ~8 M4 _4 X. ^图11-7展示了天猫某商品在线评价。
    ; L) I7 D! Z" [9 x6 r2 U2 _图 11-7 天猫某商品评价) P4 k4 p2 W1 R2 B* |, ?8 |
    天猫评价也属于典型的OLTP应用,主要功能如下:# N/ l3 Q$ _( @9 _
    ●评价展示(范围查询):按照某种过滤条件,例如标签,查询某个商品的所有
    5 t5 Q, D6 x4 y# V) Z) }评价;可能需要按照某种特定条件排序,例如时间、信用;支持对结果的分页;支
    . B0 V" W" Z) q( y9 v持在结果集上执行聚合操作,例如Count计数。
    0 x" A  ?5 t+ h3 ]●修改操作:新增一条评价,修改评价,例如将好评修改为差评。
    9 e& h# P# }' y* w3 J5 j天猫评价的难点在于部分商品评价数很多,达到数十万条,极少数商品的评价
    5 a8 `! R; l0 Z8 E/ c数甚至超过一百万条,采用传统数据库方案很容易出现超时的情况。OceanBase的优
    + {: i; g4 u& s) d势主要体现在两个方面:
    ) A, ^3 u" i  M/ B. F●相比传统数据库,OceanBase的数据在物理上连续存放,因此,顺序扫描性能
    4 l# W" C2 [7 c/ F! X) |' B( A更好,适合大查询使用场景。
    / L7 N1 i1 Z5 v6 ^, ^●如果一个商品的评价数过多,OceanBase系统内部会自动将该商品的数据拆分2 A' w, }  J- }( |* N: `
    成多个子表,从而发挥OceanBase的并发查询优势。4 z2 T5 o9 ~7 _2 M
    天猫评价总体数据量超过7亿条,大部分查询能够在20毫秒之内返回,大查询的% c) [# I, b8 d" K
    延时约为200ms,满足了应用的需求。当然,大查询延时还有较大的优化空间。
    8 E; D% Y/ ^! i/ ^4 w2 B11.3.3 直通车报表4 Y" K, |4 A  c. P
    直通车报表是典型的OLAP报表需求如图11-8所示,包含如下几个方面:) f! d* }. q0 v% ]( i
    图 11-8 直通车报表查询页面
    0 A+ K7 J2 K. f1 H) j7 y●数据定期导入:每天凌晨将Hadoop分析结果导入OceanBase。
    ( E& g3 P8 C3 c: w" u" o●报表查询:按照用户、推广计划、宝贝、关键词等多种维度分组,统计展现5 f5 K2 v7 v3 |/ K$ r/ w
    量、财务花费等数据,响应前端的实时查询需求。; o/ f/ R, ~1 x. q  L' k; K$ h
    每天导入OceanBase的数据中,每个关键词会有一条数据,包含了这个关键词当1 f( B& b# e0 J; U
    天的展现量、点击量、财务花费等统计数值。用户允许查看最近三天、最近一周、5 k% C7 C  r: T- [
    最近一个月或者其他任意时间范围的统计数据,统计值包含这个时间范围内展现量2 o3 E5 a0 U+ D2 x& e4 m2 v$ ]2 g
    总和、财务花费总和等,还包括一些计算值,例如点击率(Click Through" s- N! s! Q$ ?. B
    Rate,CTR)、每次点击花费(Cost Per Click,CPC)等值,按照用户、推广计划、宝
    ) h- O3 V1 T5 c; N. @' h: T( T贝、关键词等维度分组,并且可以按照任意列对这些分组的统计数据进行排序,排
    # R/ \+ p( h& V/ y; `8 h. c/ K$ o序后分页展示。
    + C7 E* \2 G4 ~3 Q( d4 a直通车报表的难点在于多维度组合查询,每次查询最多需要分析上千万条记
    2 i) I6 D! X+ Y* S; C4 W+ C3 e录,且要求响应时间在秒级。由于多个维度可以任意组合,传统数据库二级索引的9 o4 a4 E. c8 z2 [: f( X0 T
    方式不再适用。OceanBase支持并行计算,自动将大请求拆分为多个小请求同时发给9 b4 C/ g6 @) E4 V& a6 Q  U
    多台ChunkServer并发执行,从而将延时降低一到两个数量级。另外,由于直通车报8 @7 k; i, i' S+ C
    表大部分字段为整数类型,OceanBase内部会自动将整数编码以后压缩存储,从而节
    2 B7 |. o# I$ |2 T. F/ d$ d" ]. ]- J省存储资源。
    + c* g7 j) p; C5 z基于容灾考虑,直通车报表部署了主备两个集群,每个集群12台服务器,整体
    + a4 y9 j  E- ?6 d, [& `& h; T数据量超过1500亿条。每天导入数据量大约为100GB,导入时间在1到2个小时。线
    9 U. C% C9 P, u: l7 l( V- e4 V上平均查询延时小于100毫秒,涉及千万条以内记录的大查询延时在3秒以内。5 M; Y) N; M( J
    " V9 V" A5 n, {# F6 ]+ F& q

    : h/ j6 |- w0 I3 Y+ G3 a4 Z6 I
    回复

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-4-29 07:27 , Processed in 0.127076 second(s), 31 queries .

    Powered by Javazx

    Copyright © 2012-2022, Javazx Cloud.

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