Upgrade to Pro — share decks privately, control downloads, hide ads and more …

140810-intro_sequoiaDB

Zoom.Quiet
August 12, 2014

 140810-intro_sequoiaDB

140810 源泉创会上 巨杉的分享!

Zoom.Quiet

August 12, 2014
Tweet

More Decks by Zoom.Quiet

Other Decks in Technology

Transcript

  1. • 传统的结构化数据依然是最常见的数据 • 非结构化的情绪表达和客户行为快速增长 • 企业现存的非结构化数据蕴含大量开放文本 • 视频音频在业务操作中被使用 • 博客,论坛以及评论反映了客户的声音

    volume • 30% 组织需要每天处理 >100GB 数据 • 批处理更新从每天提升到每小时,每分钟,甚至 实时 • 复杂事件处理能够即时产生信息发送给分析系统 • 实时流数据处理 大数据: 3V 特征 volum e velocit y 海量数据规模 高时效性 多样化 • 50% 组织拥有和处理 >10TB 数据 • 10% 已经处理 >1PB • 电子商务和 Web 日志可产生每分钟上万的数据 项 • 社交媒体应用每分钟产生百万交互活动 价值: 提高效率 提升客户体验 降低风险 创造新的商机 5
  2. Hadoop and NoSQL Volume Variety Velocity Hadoop 分布式存储 Yes Yes

    NoSQL Yes Yes Hadoop 针对海量与多样化数据 NoSQL 针对海量与高时效性数据 Hadoop 与 NoSQL 互为补充,而非取代 6
  3. 大数据架构参考 超越传统的数据仓库概念 流计算 传统 数据仓库 In-Motion Analytics Data Analytics Data

    Operations Model Building Results Horizontal Scale Database & Warehouse At-Rest Data Analytics Results Ultra Low Latency Results 传统 /关系型 数据源 非传统 /非关系型 数据源 传统 /关系型 数据源 非传统 /非关系型 数据源 大数据 处理 7
  4. Hadoop 的定义 • Hadoop 是一个分布式运算框架 ( YARN ) • 包含多种执行引擎,例如

    MapR educe 、 Spark 等 • 狭义的 Hadoop 指的是 MapRed uce 和 HDFS • 广义的 Hadoop 指的是整个 Had oop 生态圈 9
  5. 10

  6. Hadoop 的定位 • Hadoop 主要作为离线分析平台设计 • 唯一的在线处理相关的组件是 Hbase • Hbase

    作为宽表数据库,和传统的关系型数据库与文档类 NoSQL 相比功能受限 11
  7. db.user.profile.find ( { “user_id” : 1021 } ) ; SequoiaDB

    vs MySQL 一条简单的查询语句,就可以将复杂的数据对象整个检索出来 20
  8. SequoiaDB 物理架构 协调节点 数据节点 协调节点 数据节点 协调节点 数据节点 协调节点 协调节点

    协调节点 数据节点 数据节点 数据节点 数据节点 数据节点 数据节点 数据节点 数据节点 数据节点 编目节点 编目节点 编目节点 角色 功能 协调节点 胖客户层,从编目读取数据分布信息,从数据节点读取数据 数据节点 负责数据表存储,提供查询、聚集、数据复制功能 编目节点 负责元数据信息存储,包括组信息、表切割信息 cm cm cm cm cm cm 24
  9. 节点恢复 主数据节点 从数据节点 应用 程序 读、写操作 只读 异步日志复制 HA 高可用性

    节点恢复同步 场景:问题节点恢复后自动并入集群,成为从节点 28
  10. Hadoop and NoSQL Volume Variety Velocity Hadoop 分布式存储 Yes Yes

    NoSQL Yes Yes Hadoop 针对海量与多样化数据 NoSQL 针对海量与高时效性数据 Hadoop 与 NoSQL 互为补充,而非取代 31
  11. 与 Hive 对接 , 实现大数据导入 / 分析 与 Hadoop/sqoop 对接,实现

    传统数据库 / 非结构化数据与 SequoiaDB 转换 HDFS Hive SequoiaDB sdb connector Sqoop HDFS SequoiaDB sdb connector SequoiaDB 与 Hadoop 丰富的对接形式 32
  12. Hadoop + SequoiaDB = 实时处理 + 分析 HDFS 分布式存储引擎 Hive

    MapReduce 分布式计算框架 SequoiaD B Pig SQL Engine JDBC/API 接口 关系型 数据库 33
  13. 现有的挑战 • 数据量大 – 主要归档在磁带上,部分在线 – 在线数据的可检索性低 – 任何对早期历史数据的查询都需要漫长的过程 •

    数据类型繁杂 – 各个业务系统经过多年运行,交易明细数据版本繁多,数据结构不统 一 – 不同的数据源不同的数据结构 : 结构化数据、半结构化数据、非结构 化数据 • 系统环境复杂 – 各个业务系统的历史归档存在不同软件、硬件、版本的平台中 我们能不能使用一个平台,存储所有的历史数据,并且能够实 时检索? 38
  14. 历史数据管理和应用架构 - 总体架构 核心 理财 信贷 国际 基金 历史数据 当前数据

    历史数据 当前数据 历史数据 当前数据 历史数据 当前数据 历史数据 当前数据 历史数据查询系统 大数据平台 业务系统实时查询服务 批量检索 服务 随机查询 服务 数据下载 服务 数据仓库和分析型应用 ODS/DSA – 面向主题、当前 DW – 面向 主题、历史 和汇总 DM DM 随机查询 反洗钱 审计 39
  15. 历史数据管理和应用架构 - 逻辑结构 数据交换平台 CRM 数据仓库 ECIF 渠道系统 …… 核心

    业务系统 零售 业务系统 信贷 业务系统 国际结算 业务系统 统一数据视图 历史数据访问 层 历史数据存储 层 历史交易数据存储 理财 信贷 对公 渠道 对私 国际 元 数 据 安 全 管 理 元 数 据 管 理 历史数据查询 层 业务系统实时查询服务 核 心 理 财 信 贷 国 际 批量检索服 务 核 心 理 财 公 安 人 行 随机查询服 务 分 行 其 他 数据下载服 务 …… 40
  16. 挑战:历史数据分析困难 核心 零售 信贷 …… 历史记录归档 历史记录归档 历史记录归档 核心历史 记录系统

    零售历史 记录系统 信贷历史 记录系统 批处理任务 批处理任务 批 处 理 任 务 Data Warehouse Reporting 局限性 • T+1 的数据处理 • 丢失数据细节 • 数据模型僵硬 • 性能低效 造成问题 • 当天数据无法统计 • 用户体验效果不佳 • 错失商机 • 损失利润 41
  17. 方案:使用统一的历史归档平台 核心 零售 信贷 …… 实时或批 处理任务 …… 营销管理 客户信息

    操作报告 Data Warehouse Reporting 优势 • 实时数据处理 • 保留数据细节 • 敏捷开发 • 更高客户保持率 • 主动异常管理 前端应用 后台分析 42
  18. 异构数据复制机制 • 差异化的数据 可靠性级别 • 灵活可配置的 数据分片 • 支持同步与异 步复制机制

    异步业务请求 w=1 Repl-log Repl-log Repl-log Secondary Pull 批量 Repl-log Push 更新通知 虚拟复制请求 Primary Secondary Repl-Group Repl-log 相对窗口 HOT-Window COLD-Window LOST-Window 同步业务请求 w=3 优势:异构数据复制机制灵活平衡业务性能、可用性和数据可靠性 44
  19. 读写分离 实例 3 批量分析类 实例 2 Ad-hoc 类 实例 1

    数据录入类 分区 4 分区 3 分区 2 分区 1 主 从 从 主 从 从 主 从 从 主 从 从 优势:细粒度划分,指定应用程序所使用的实例 45
  20. SequoiaDB 与 MongoDB 的差异 SequoiaDB MongoDB 事务 有 无 SQL

    支持 有 无 性能 高 中 数据压缩 有 无 存储过程 有 弱 JDBC 驱动 有 无 数据可靠性 高 低 记录锁 有 无 46
  21. SequoiaDB 与 HBase 的差异 SequoiaDB HBase 多索引 有 无 非主键排序

    有 无 聚集 有 无 存储过程 有 无 事务 有 无 锁 有 无 SQL/JDBC 有 无 高可用性 强 弱 图形管理界面 有 无 数据更新删除 有 无 47
  22. Hbase 仅支持单维度实时访问 SequoiaDB 支持多维度实时访问 用户 ID 姓名 存款余额 开户时间 保险余额

    10035 张三 100.00 2012-12-01 1755.35 77591 李四 155023.35 2013-03-05 8325.14 155382 王五 128.00 1997-05-04 889.66 11526 赵六 133512.00 1995-01-01 4481.25 SequoiaDB 可以在多个不同的字段上创建索引,支持多维度随机查询 Hbase 仅能在一个字段上创建索引,仅支持单维度查询 48
  23. MongoDB 的灵活性 +Cassandra 的性能 • 场景 1 :电信 – 40

    亿条记录 – 30 TB – 8 台物理机 – 48GB 内存 – 6 SATA 磁盘 • 场景 2 : YCSB 测试 – 1 亿条记录 – 插入 / 更新 / 查询 – 单用户 / 多用户 – 最高吞吐量 49
  24. Scenario 1 – compare with HBase   hbase sequoiadb note

    Data load 21hrs,10mins,46sec 20hrs,28mins,29sec 4billions row, 30TB Query on PK 105 21ms Update on PK 16 13ms Delete on PK 6 19ms insert 310 539row/s Batch insert 311 3257row/s Query on table scan 15266 4183sec Update on table scan 3hrs,48mins,26sec 1hrs,9mins,34s   Delete on table scan 3hrs,48mins,26sec 1hrs,9mins,43s   Query on 2nd index (hbase has to do table scan) 3hrs,48mins,26sec 21ms Delete on 2nd index 3hrs,48mins,26sec 19ms Update on 2nd index 3hrs,48mins,26sec 16ms File size 36.42 23.72TB 50
  25. Scenario 1 – compare with HBase 0 2 4 6

    8 10 12 Query on PK,ms 0 2 4 6 8 10 12 Batch insert, row/s 0 2 4 6 8 10 12 insert , row/s 0 2 4 6 8 10 12 Table scan, sec 0 2 4 6 8 10 12 Update on PK, ms 0 2 4 6 8 10 12 Query on 2nd index , ms 51
  26. Scenario 1 – compare with MongoDB   mongodb sequoiadb note

    Load data 3h 58m 43s 2h 57m 50s 4 billion rows, 30TB Query on index 23 20ms Update on index 30 22ms Delete on index 28 16ms insert 2994 6419row/s Batch insert 5257 14996row/s Query on table scan 3745 3536sec Update on table scan 3641 3536sec Delete on table scan 3641 3536sec   insert ( multiple thread ) 1709 4073row/s/thread Batch insert ( multiple thread ) 2315 5027row/s/thread 52
  27. Scenario 1 – compare with MongoDB 0 2 4 6

    8 10 12 Single thread batch insert ,rows/second 0 2 4 6 8 10 12 Multiple threads batch insert , rows/second/thread 0 2 4 6 8 10 12 Multiple thread insert , rows/second/thread 0 2 4 6 8 10 12 Query with index , ms 0 2 4 6 8 10 12 Full table scan , second 0 2 4 6 8 10 12 Update with index , ms 53
  28. Scenario 2 – single thread 0 2 4 6 8

    10 12 0 2 4 6 8 10 12 0 2 4 6 8 10 12 0 2 4 6 8 10 12 YCSB Test , 8 Boxes , 100 millions records , single thread insert/update/query 35 54
  29. Scenario 2 – multi-thread YCSB Test , 4 Boxes ,

    100 millions records , multiple threads 36 55
  30. Scenario 3 – best throughput for batch-insert 0 2 4

    6 8 10 12 0 5000 Total Throughput(ops/sec) YCSB Test , 3 Boxes , 100 millions records , best throughput for Batch-Insert 56
  31. 编目节点 数据组 数据组 数据组 数据组 数据组 数据组 数据组 基于块级并发能力 数据块

    … 数据块 数据块 数据块 协调节点 编目节点 数据组 数据块 … 数据块 数据块 数据块 数据组 数据块 … 数据块 数据块 数据块 业务应用 /Hadoop 获取分片信息 数据组 1 :分片号 10,12… 数据组 2 :分片号 1,2… 并发读取各个数 据块内容 1 大数据查询和导入性能相对 HBASE 有较大幅度提升; 2 与 Hadoop Map/Reduce 对接能发挥更大的并发优势;   导入数据量 导入性能 Hbase 30 亿条记录 15W/Sec SequoiaDB 30 亿条记录 19.3W/Sec 0 2 4 6 8 10 12 在某电信运营商场景测试 多线程并发平均响应时间 导入性能 58
  32. 挑战 1 :数据分层存储,历史数据访问困难 在线数据库 磁带库 渠道 信贷 对公 理财 对私

    国际 在线 0-2 年 离线 2-15 年 信息生命管理周期 历史数据存储 历史数据查询服务 数据提取 渠道 信贷 对公 理财 对私 国际 60