Slide 1

Slide 1 text

大数据与 SequoiaDB 许建辉

Slide 2

Slide 2 text

Who am I? • 许建辉 – [email protected] • SequoiaDB 研发总监 2

Slide 3

Slide 3 text

Agenda 大数据概况 1 NoSQL 3 NoSQL + Hadoop 4 Hadoop 2 应用场景 5 3

Slide 4

Slide 4 text

大数据概况 • Big Data, Big World 4

Slide 5

Slide 5 text

• 传统的结构化数据依然是最常见的数据 • 非结构化的情绪表达和客户行为快速增长 • 企业现存的非结构化数据蕴含大量开放文本 • 视频音频在业务操作中被使用 • 博客,论坛以及评论反映了客户的声音 volume • 30% 组织需要每天处理 >100GB 数据 • 批处理更新从每天提升到每小时,每分钟,甚至 实时 • 复杂事件处理能够即时产生信息发送给分析系统 • 实时流数据处理 大数据: 3V 特征 volum e velocit y 海量数据规模 高时效性 多样化 • 50% 组织拥有和处理 >10TB 数据 • 10% 已经处理 >1PB • 电子商务和 Web 日志可产生每分钟上万的数据 项 • 社交媒体应用每分钟产生百万交互活动 价值: 提高效率 提升客户体验 降低风险 创造新的商机 5

Slide 6

Slide 6 text

Hadoop and NoSQL Volume Variety Velocity Hadoop 分布式存储 Yes Yes NoSQL Yes Yes Hadoop 针对海量与多样化数据 NoSQL 针对海量与高时效性数据 Hadoop 与 NoSQL 互为补充,而非取代 6

Slide 7

Slide 7 text

大数据架构参考 超越传统的数据仓库概念 流计算 传统 数据仓库 In-Motion Analytics Data Analytics Data Operations Model Building Results Horizontal Scale Database & Warehouse At-Rest Data Analytics Results Ultra Low Latency Results 传统 /关系型 数据源 非传统 /非关系型 数据源 传统 /关系型 数据源 非传统 /非关系型 数据源 大数据 处理 7

Slide 8

Slide 8 text

Hadoop 生态圈 • Big Data Platform 8

Slide 9

Slide 9 text

Hadoop 的定义 • Hadoop 是一个分布式运算框架 ( YARN ) • 包含多种执行引擎,例如 MapR educe 、 Spark 等 • 狭义的 Hadoop 指的是 MapRed uce 和 HDFS • 广义的 Hadoop 指的是整个 Had oop 生态圈 9

Slide 10

Slide 10 text

10

Slide 11

Slide 11 text

Hadoop 的定位 • Hadoop 主要作为离线分析平台设计 • 唯一的在线处理相关的组件是 Hbase • Hbase 作为宽表数据库,和传统的关系型数据库与文档类 NoSQL 相比功能受限 11

Slide 12

Slide 12 text

NoSQL 数据库 • 实时大数据计算引擎 12

Slide 13

Slide 13 text

NoSQL 从两个方面解决大数据存储和访问的 问题 • 数据模型 – 提供快速开发快速迭代的能力 – 解决分布式关系型数据库( MPP )中关联的性能问题 • 分布式架构 – 数据的分布式存储 – 数据的分布式运算 13

Slide 14

Slide 14 text

NoSQL 怎样解决关系型数据模型的痛点? NoSQL 的 JSON 模型怎 么解决这个问 题? 关系模型迭代 太复杂 14

Slide 15

Slide 15 text

对于相对简单的数据模型,关系型数据库完全可以满足需求 15

Slide 16

Slide 16 text

但是,每一次业务的迭代都会带来数据模型的变更 16

Slide 17

Slide 17 text

同时会带来已有业务逻辑和 SQL 语句的重大调整 17

Slide 18

Slide 18 text

复杂的数据模型最终会制约应用程序的敏捷迭代开发 18

Slide 19

Slide 19 text

SequoiaDB SequoiaDB vs MySQL 19

Slide 20

Slide 20 text

db.user.profile.find ( { “user_id” : 1021 } ) ; SequoiaDB vs MySQL 一条简单的查询语句,就可以将复杂的数据对象整个检索出来 20

Slide 21

Slide 21 text

关系模型向嵌套模型的转化 21

Slide 22

Slide 22 text

NoSQL 让我们能够 • 快速开发,快速迭代 • 减少新功能发布的停机时间 • 确保产品能够随时水平扩张 22

Slide 23

Slide 23 text

SequoiaDB 架构 23

Slide 24

Slide 24 text

SequoiaDB 物理架构 协调节点 数据节点 协调节点 数据节点 协调节点 数据节点 协调节点 协调节点 协调节点 数据节点 数据节点 数据节点 数据节点 数据节点 数据节点 数据节点 数据节点 数据节点 编目节点 编目节点 编目节点 角色 功能 协调节点 胖客户层,从编目读取数据分布信息,从数据节点读取数据 数据节点 负责数据表存储,提供查询、聚集、数据复制功能 编目节点 负责元数据信息存储,包括组信息、表切割信息 cm cm cm cm cm cm 24

Slide 25

Slide 25 text

主数据节点 从数据节点 从数据节点 应用 程序 只读 读、写操作 只读 异步日志复制 HA 高可用性 优势: 高可用性 + 读写分离 25

Slide 26

Slide 26 text

主数据节点 从数据节点 从数据节点 应用 程序 只读 只读 异步日志复制 HA 高可用性 场景:主节点掉电,从节点立刻感知 26

Slide 27

Slide 27 text

主数据节点 主数据节点 从数据节点 应用 程序 自动选主 HA 高可用性 场景:从节点自动选举出新的主节点 27

Slide 28

Slide 28 text

节点恢复 主数据节点 从数据节点 应用 程序 读、写操作 只读 异步日志复制 HA 高可用性 节点恢复同步 场景:问题节点恢复后自动并入集群,成为从节点 28

Slide 29

Slide 29 text

SequoiaDB 内部模块架构 29

Slide 30

Slide 30 text

NoSQL + Hadoop • Enhance your data center 30

Slide 31

Slide 31 text

Hadoop and NoSQL Volume Variety Velocity Hadoop 分布式存储 Yes Yes NoSQL Yes Yes Hadoop 针对海量与多样化数据 NoSQL 针对海量与高时效性数据 Hadoop 与 NoSQL 互为补充,而非取代 31

Slide 32

Slide 32 text

与 Hive 对接 , 实现大数据导入 / 分析 与 Hadoop/sqoop 对接,实现 传统数据库 / 非结构化数据与 SequoiaDB 转换 HDFS Hive SequoiaDB sdb connector Sqoop HDFS SequoiaDB sdb connector SequoiaDB 与 Hadoop 丰富的对接形式 32

Slide 33

Slide 33 text

Hadoop + SequoiaDB = 实时处理 + 分析 HDFS 分布式存储引擎 Hive MapReduce 分布式计算框架 SequoiaD B Pig SQL Engine JDBC/API 接口 关系型 数据库 33

Slide 34

Slide 34 text

NoSQL + Hadoop = 混合业务大数据平台 NoSQL 数据库 Hadoop 引擎 实时处理引擎 离线 分析 在线 处理 34

Slide 35

Slide 35 text

海量历史交易信息查询与分析 • 业典型应用场景 35

Slide 36

Slide 36 text

大数据就是基础设施:历史数据查询 面向数据备份恢复 面向数据索引查询 还在忍受传统磁带备份的束缚, 无法实现历史数据的回溯查询? 36

Slide 37

Slide 37 text

§ 高性价比的数据存储持续在线; § 去格式的长期数据保存方案; § 秒级快速索引数据回溯; § 满足复杂历史数据查询需求; 找回数据 是关键 全量计算——金融行业历史数据 37

Slide 38

Slide 38 text

现有的挑战 • 数据量大 – 主要归档在磁带上,部分在线 – 在线数据的可检索性低 – 任何对早期历史数据的查询都需要漫长的过程 • 数据类型繁杂 – 各个业务系统经过多年运行,交易明细数据版本繁多,数据结构不统 一 – 不同的数据源不同的数据结构 : 结构化数据、半结构化数据、非结构 化数据 • 系统环境复杂 – 各个业务系统的历史归档存在不同软件、硬件、版本的平台中 我们能不能使用一个平台,存储所有的历史数据,并且能够实 时检索? 38

Slide 39

Slide 39 text

历史数据管理和应用架构 - 总体架构 核心 理财 信贷 国际 基金 历史数据 当前数据 历史数据 当前数据 历史数据 当前数据 历史数据 当前数据 历史数据 当前数据 历史数据查询系统 大数据平台 业务系统实时查询服务 批量检索 服务 随机查询 服务 数据下载 服务 数据仓库和分析型应用 ODS/DSA – 面向主题、当前 DW – 面向 主题、历史 和汇总 DM DM 随机查询 反洗钱 审计 39

Slide 40

Slide 40 text

历史数据管理和应用架构 - 逻辑结构 数据交换平台 CRM 数据仓库 ECIF 渠道系统 …… 核心 业务系统 零售 业务系统 信贷 业务系统 国际结算 业务系统 统一数据视图 历史数据访问 层 历史数据存储 层 历史交易数据存储 理财 信贷 对公 渠道 对私 国际 元 数 据 安 全 管 理 元 数 据 管 理 历史数据查询 层 业务系统实时查询服务 核 心 理 财 信 贷 国 际 批量检索服 务 核 心 理 财 公 安 人 行 随机查询服 务 分 行 其 他 数据下载服 务 …… 40

Slide 41

Slide 41 text

挑战:历史数据分析困难 核心 零售 信贷 …… 历史记录归档 历史记录归档 历史记录归档 核心历史 记录系统 零售历史 记录系统 信贷历史 记录系统 批处理任务 批处理任务 批 处 理 任 务 Data Warehouse Reporting 局限性 • T+1 的数据处理 • 丢失数据细节 • 数据模型僵硬 • 性能低效 造成问题 • 当天数据无法统计 • 用户体验效果不佳 • 错失商机 • 损失利润 41

Slide 42

Slide 42 text

方案:使用统一的历史归档平台 核心 零售 信贷 …… 实时或批 处理任务 …… 营销管理 客户信息 操作报告 Data Warehouse Reporting 优势 • 实时数据处理 • 保留数据细节 • 敏捷开发 • 更高客户保持率 • 主动异常管理 前端应用 后台分析 42

Slide 43

Slide 43 text

谢谢 43

Slide 44

Slide 44 text

异构数据复制机制 • 差异化的数据 可靠性级别 • 灵活可配置的 数据分片 • 支持同步与异 步复制机制 异步业务请求 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

Slide 45

Slide 45 text

读写分离 实例 3 批量分析类 实例 2 Ad-hoc 类 实例 1 数据录入类 分区 4 分区 3 分区 2 分区 1 主 从 从 主 从 从 主 从 从 主 从 从 优势:细粒度划分,指定应用程序所使用的实例 45

Slide 46

Slide 46 text

SequoiaDB 与 MongoDB 的差异 SequoiaDB MongoDB 事务 有 无 SQL 支持 有 无 性能 高 中 数据压缩 有 无 存储过程 有 弱 JDBC 驱动 有 无 数据可靠性 高 低 记录锁 有 无 46

Slide 47

Slide 47 text

SequoiaDB 与 HBase 的差异 SequoiaDB HBase 多索引 有 无 非主键排序 有 无 聚集 有 无 存储过程 有 无 事务 有 无 锁 有 无 SQL/JDBC 有 无 高可用性 强 弱 图形管理界面 有 无 数据更新删除 有 无 47

Slide 48

Slide 48 text

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

Slide 49

Slide 49 text

MongoDB 的灵活性 +Cassandra 的性能 • 场景 1 :电信 – 40 亿条记录 – 30 TB – 8 台物理机 – 48GB 内存 – 6 SATA 磁盘 • 场景 2 : YCSB 测试 – 1 亿条记录 – 插入 / 更新 / 查询 – 单用户 / 多用户 – 最高吞吐量 49

Slide 50

Slide 50 text

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

Slide 51

Slide 51 text

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

Slide 52

Slide 52 text

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

Slide 53

Slide 53 text

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

Slide 54

Slide 54 text

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

Slide 55

Slide 55 text

Scenario 2 – multi-thread YCSB Test , 4 Boxes , 100 millions records , multiple threads 36 55

Slide 56

Slide 56 text

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

Slide 57

Slide 57 text

SequoiaDB v.s. Couchbase • couchbase 在使用到 Bucket 配置的限额内存时性能急剧下降 YCSB Test , 3 Boxes , 100 millions records 57

Slide 58

Slide 58 text

编目节点 数据组 数据组 数据组 数据组 数据组 数据组 数据组 基于块级并发能力 数据块 … 数据块 数据块 数据块 协调节点 编目节点 数据组 数据块 … 数据块 数据块 数据块 数据组 数据块 … 数据块 数据块 数据块 业务应用 /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

Slide 59

Slide 59 text

与传统方式相比的优势 看得更长 • 传统历史归档需要区分冷热数据,热数据保存在在线数 据库中,冷数据保存在磁带中 • 新的架构允许冷热数据同时在线,随时查询 看得更广 • 传统方式中,不同业务的历史数据独立保存,难以互相 关联 • 新的架构允许应用程序交叉访问所有数据细节, 360 度 业务认知 59

Slide 60

Slide 60 text

挑战 1 :数据分层存储,历史数据访问困难 在线数据库 磁带库 渠道 信贷 对公 理财 对私 国际 在线 0-2 年 离线 2-15 年 信息生命管理周期 历史数据存储 历史数据查询服务 数据提取 渠道 信贷 对公 理财 对私 国际 60

Slide 61

Slide 61 text

方案:建立一体化大数据历史存储平台 历史存储库 在线 0-15 年 历史数据存储 历史数据查询服务 渠道 信贷 对公 理财 对私 国际 61