java自学网VIP

Java自学网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2776|回复: 0

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

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

    [LV.Master]出神入化

    2062

    主题

    3720

    帖子

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    66592

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

    发表于 2017-3-15 18:24:51 | 显示全部楼层 |阅读模式
    11.3 应用
    & S- C- n) o1 D+ w  W) d" aOceanBase上线两年左右的时间已经接入了30多个业务,线上服务器数量超过
    % L6 u- n" q) V. t$ s300台。虽然OceanBase同时支持OLTP以及OLAP应用,但是OceanBase具有一定的适
    3 m  B, j9 a. B# ?5 D0 y- c用场景。如果应用总数据量小于200TB,每天更新的数据量小于1TB,且读写压力较8 D1 x1 C5 Y7 t  c6 M
    大,单台关系数据库无法支撑,那么,适合采用OceanBase。对于这种应用,
    . A* f( }$ h9 H/ g" {OceanBase具有如下优势:
    # O+ g2 Z8 w1 ?; U1 W●无须分库分表。OceanBase系统内部自动按照数据范围划分子表,支持子表合
    2 G! V# D: a# P  ?+ d并、分裂、复制、迁移,无须应用考虑分库分表以及扩容问题。
    0 C# H5 y7 c& A: P●易于使用。OceanBase的使用方式和关系数据库基本一致,且保证强一致性,
    2 J6 I7 ?: m! w: V* M5 l7 E从而简化应用。
    # m, X- a2 k! x4 @●更低的成本。OceanBase采用C++语言实现,并针对多核、SSD、大内存等现代
    " t4 P7 U: d* f! k服务器硬件特点做了专门的优化,能够最大程度地发挥单台服务器的性能。' @& {9 x4 ?: Q* e% l
    如果应用需要使用OceanBase专有的功能,例如10.4和10.5节提到的并发查询、& s6 L' Y7 \0 U5 j  B2 }6 b( \7 G
    大表左连接、数据过期,那么,OceanBase的优势会更加明显。7 y: Z6 D+ D/ U( F9 b- P) b
    当然,OceanBase并不是万能的。例如,OceanBase不适合存储图片、视频等非, I) t; B3 P, q. o
    结构化数据,也不适合存储业务原始日志。这些信息更适合存储在专门的分布式文
    ' O9 t5 n8 D" P  K  }件系统,比如Taobao File System、HDFS中。
    : b! m6 L3 A* O: w3 u6 O本节选取收藏夹、天猫评价、直通车报表这几个典型业务说明OceanBase的使用
    9 G- V4 M# m- i; O情况。
    9 x) q& J4 L* C# ~9 v11.3.1 收藏夹
    % n3 x% l6 C& v, Y5 F图11-6展示了淘宝某用户的收藏夹。
    2 S5 K' @+ [2 ?% I* V$ M图 11-6 淘宝某用户收藏夹
    3 P, W8 d1 u# U/ }( A# }! x收藏夹属于典型的OLTP业务,主要功能如下:
    4 \7 y+ S2 i1 Q) s% j# z●收藏列表功能(范围查询):按照某种过滤条件,例如标题、标签等查询某个7 [& ^( W& `: l# q% W' s8 B+ y" l
    用户的所有收藏;可能需要按照某种特定条件排序,例如商品价格、收藏时间等;" I* K7 j$ p+ P4 R# Z
    支持对结果的分页;支持在结果集上执行聚合操作,例如Count计数。( o5 [+ ?0 ?/ E9 Y% B
    ●修改操作:将商品或者店铺添加到收藏夹,删除收藏,对收藏条目打标签。$ Y; A9 o# }' K* [
    10.5.1节中提到的大表左连接功能是收藏夹的难点,OceanBase高效地实现了这
    1 ~0 p: U; v0 ^1 }+ v个需求。截至2012年11月11日,收藏夹集群规模接近60台服务器,单表数据量超过
    $ E# V" F' |6 R2 S6 o100亿条,整体数据量超过200亿条。2012年11月11日当天读取次数超过15亿,且大" m% v; f9 W+ |! {0 ]: k1 @) g
    部分查询为范围查询,读取总条目数超过900亿条,读取平均延时在10~20毫秒。! {* M; W% I! l
    11.3.2 天猫评价; o& W, X; [- _$ v3 \0 X) ]
    图11-7展示了天猫某商品在线评价。
    * M% M/ T- M. _: c. @' v图 11-7 天猫某商品评价
    + e0 u6 i, ?0 g, G# H4 b1 e天猫评价也属于典型的OLTP应用,主要功能如下:
    % u1 \8 b9 U4 k# y  _& L●评价展示(范围查询):按照某种过滤条件,例如标签,查询某个商品的所有% A" R" P, E' \, _% c8 ~+ b
    评价;可能需要按照某种特定条件排序,例如时间、信用;支持对结果的分页;支
      a: [, S6 Y, u( d持在结果集上执行聚合操作,例如Count计数。
      r6 {0 _2 b! W% E1 n' Q3 @2 B●修改操作:新增一条评价,修改评价,例如将好评修改为差评。8 a6 _5 T: ]% t& f" ~1 U
    天猫评价的难点在于部分商品评价数很多,达到数十万条,极少数商品的评价! I' m% h! x, L8 G5 i
    数甚至超过一百万条,采用传统数据库方案很容易出现超时的情况。OceanBase的优' R: h- {9 K+ J% t6 w& |" q  \
    势主要体现在两个方面:- }8 ]3 y/ j4 c% q, f; I& `* X
    ●相比传统数据库,OceanBase的数据在物理上连续存放,因此,顺序扫描性能0 S9 J% y% w6 u! a, B+ l
    更好,适合大查询使用场景。
    9 M8 S. r; B  l0 c7 ^+ q; w' t●如果一个商品的评价数过多,OceanBase系统内部会自动将该商品的数据拆分" J3 {4 y9 f& M) @* G2 W) h
    成多个子表,从而发挥OceanBase的并发查询优势。/ D' Q3 \9 h9 S
    天猫评价总体数据量超过7亿条,大部分查询能够在20毫秒之内返回,大查询的
    1 [% \& C# l6 K. y. J0 ~延时约为200ms,满足了应用的需求。当然,大查询延时还有较大的优化空间。) h9 k$ _" {7 e" \) ]2 n
    11.3.3 直通车报表
    - A8 q: S% {& P8 X( W直通车报表是典型的OLAP报表需求如图11-8所示,包含如下几个方面:! _3 P' e* k, s) ~# `) G9 {
    图 11-8 直通车报表查询页面
    & G3 X! l% ^" \●数据定期导入:每天凌晨将Hadoop分析结果导入OceanBase。
    ) L. V- ]1 g8 A0 e2 e. v●报表查询:按照用户、推广计划、宝贝、关键词等多种维度分组,统计展现5 `0 p- L; q' q  K: a
    量、财务花费等数据,响应前端的实时查询需求。; E! a3 ?. V2 `* M
    每天导入OceanBase的数据中,每个关键词会有一条数据,包含了这个关键词当
    8 \5 S& s2 e# F0 I# h7 J天的展现量、点击量、财务花费等统计数值。用户允许查看最近三天、最近一周、
    ) U6 W6 ?" z  {" g: c/ Q: I最近一个月或者其他任意时间范围的统计数据,统计值包含这个时间范围内展现量
    9 i5 J/ f. d* |总和、财务花费总和等,还包括一些计算值,例如点击率(Click Through
    5 [' E* N2 D) R8 }Rate,CTR)、每次点击花费(Cost Per Click,CPC)等值,按照用户、推广计划、宝) l7 i) J9 `8 G# q8 B# x' u2 p
    贝、关键词等维度分组,并且可以按照任意列对这些分组的统计数据进行排序,排* _8 d+ C/ J* w# C; D; x& Y
    序后分页展示。
    0 ~; q& H& l4 p! B( e直通车报表的难点在于多维度组合查询,每次查询最多需要分析上千万条记3 d1 G+ E1 W+ n" `9 v
    录,且要求响应时间在秒级。由于多个维度可以任意组合,传统数据库二级索引的9 g; o% w& G& w' {2 z% x1 r
    方式不再适用。OceanBase支持并行计算,自动将大请求拆分为多个小请求同时发给
    & {$ S& ~: z3 J6 |( ~6 B" R. U) K9 O1 j多台ChunkServer并发执行,从而将延时降低一到两个数量级。另外,由于直通车报
    . w/ G. u- ~- x  B表大部分字段为整数类型,OceanBase内部会自动将整数编码以后压缩存储,从而节
    % Y$ q! I; i1 n3 ~" G# I省存储资源。: Z9 M* }8 t& u; W
    基于容灾考虑,直通车报表部署了主备两个集群,每个集群12台服务器,整体- v8 i6 m' z: ^/ k
    数据量超过1500亿条。每天导入数据量大约为100GB,导入时间在1到2个小时。线
    $ d( v1 X( ~! c上平均查询延时小于100毫秒,涉及千万条以内记录的大查询延时在3秒以内。
    5 I( ~3 v1 ?3 {" ]: O9 T# G8 ?8 p' j: F8 Y  Q
    * Y* S- C# f$ b6 R# {5 A4 w
    回复

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2025-2-23 13:02 , Processed in 0.486147 second(s), 30 queries .

    Powered by Javazx

    Copyright © 2012-2022, Javazx Cloud.

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