• 1. 大数据与SequoiaDB许建辉
  • 2. Who am I?许建辉 xujianhui@sequoiadb.com SequoiaDB 研发总监 2
  • 3. Agenda大数据概况1NoSQL3NoSQL + Hadoop4Hadoop2应用场景53
  • 4. 大数据概况Big Data, Big World4
  • 5. 传统的结构化数据依然是最常见的数据 非结构化的情绪表达和客户行为快速增长 企业现存的非结构化数据蕴含大量开放文本 视频音频在业务操作中被使用 博客,论坛以及评论反映了客户的声音volume30%组织需要每天处理>100GB数据 批处理更新从每天提升到每小时,每分钟,甚至实时 复杂事件处理能够即时产生信息发送给分析系统 实时流数据处理大数据:3V特征volumevelocity海量数据规模高时效性多样化50%组织拥有和处理>10TB数据 10%已经处理>1PB 电子商务和Web日志可产生每分钟上万的数据项 社交媒体应用每分钟产生百万交互活动价值: 提高效率 提升客户体验 降低风险 创造新的商机5
  • 6. Hadoop and NoSQLVolumeVarietyVelocityHadoop 分布式存储YesYesNoSQLYesYesHadoop针对海量与多样化数据 NoSQL针对海量与高时效性数据 Hadoop与NoSQL互为补充,而非取代6
  • 7. 大数据架构参考超越传统的数据仓库概念流计算传统 数据仓库In-Motion AnalyticsData Analytics Data Operations Model BuildingResultsHorizontal ScaleDatabase & WarehouseAt-Rest Data AnalyticsResultsUltra Low Latency Results传统/关系型 数据源非传统/非关系型 数据源传统/关系型 数据源 非传统/非关系型 数据源大数据 处理7
  • 8. Hadoop生态圈Big Data Platform8
  • 9. Hadoop的定义Hadoop是一个分布式运算框架(YARN) 包含多种执行引擎,例如MapReduce、Spark等 狭义的Hadoop指的是MapReduce和HDFS 广义的Hadoop指的是整个Hadoop生态圈9
  • 10. 10
  • 11. Hadoop的定位Hadoop主要作为离线分析平台设计 唯一的在线处理相关的组件是Hbase Hbase作为宽表数据库,和传统的关系型数据库与文档类NoSQL相比功能受限11
  • 12. NoSQL数据库实时大数据计算引擎12
  • 13. NoSQL从两个方面解决大数据存储和访问的问题数据模型 提供快速开发快速迭代的能力 解决分布式关系型数据库(MPP)中关联的性能问题 分布式架构 数据的分布式存储 数据的分布式运算13
  • 14. NoSQL怎样解决关系型数据模型的痛点?NoSQL的JSON模型怎么解决这个问题?关系模型迭代太复杂14
  • 15. 对于相对简单的数据模型,关系型数据库完全可以满足需求15
  • 16. 但是,每一次业务的迭代都会带来数据模型的变更16
  • 17. 同时会带来已有业务逻辑和SQL语句的重大调整17
  • 18. 复杂的数据模型最终会制约应用程序的敏捷迭代开发18
  • 19. SequoiaDBSequoiaDB vs MySQL19
  • 20. db.user.profile.find ( { “user_id” : 1021 } ) ;SequoiaDB vs MySQL一条简单的查询语句,就可以将复杂的数据对象整个检索出来20
  • 21. 关系模型向嵌套模型的转化21
  • 22. NoSQL让我们能够快速开发,快速迭代 减少新功能发布的停机时间 确保产品能够随时水平扩张22
  • 23. SequoiaDB架构23
  • 24. SequoiaDB物理架构协调节点数据节点协调节点数据节点协调节点数据节点协调节点协调节点协调节点数据节点数据节点数据节点数据节点数据节点数据节点数据节点数据节点数据节点编目节点编目节点编目节点角色功能协调节点胖客户层,从编目读取数据分布信息,从数据节点读取数据数据节点负责数据表存储,提供查询、聚集、数据复制功能编目节点负责元数据信息存储,包括组信息、表切割信息CM节点负责集群管理,包括watchdog, 节点增删启停 cmcmcmcmcmcm24
  • 25. 主数据节点从数据节点从数据节点应用程序只读读、写操作只读异步日志复制HA高可用性优势: 高可用性 + 读写分离25
  • 26. 主数据节点从数据节点从数据节点应用程序只读只读异步日志复制HA高可用性场景:主节点掉电,从节点立刻感知26
  • 27. 主数据节点主数据节点从数据节点应用程序自动选主HA高可用性场景:从节点自动选举出新的主节点27
  • 28. 节点恢复主数据节点从数据节点应用程序读、写操作只读异步日志复制HA高可用性节点恢复同步场景:问题节点恢复后自动并入集群,成为从节点28
  • 29. SequoiaDB内部模块架构29
  • 30. NoSQL + HadoopEnhance your data center30
  • 31. Hadoop and NoSQLVolumeVarietyVelocityHadoop 分布式存储YesYesNoSQLYesYesHadoop针对海量与多样化数据 NoSQL针对海量与高时效性数据 Hadoop与NoSQL互为补充,而非取代31
  • 32. 与Hive对接, 实现大数据导入/分析与Hadoop/sqoop对接,实现 传统数据库/非结构化数据与SequoiaDB转换HDFSHiveSequoiaDBsdb connectorSqoopHDFSSequoiaDBsdb connectorSequoiaDB 与Hadoop丰富的对接形式32
  • 33. Hadoop + SequoiaDB = 实时处理+分析HDFS 分布式存储引擎HiveMapReduce 分布式计算框架SequoiaDBPigSQL EngineJDBC/API接口关系型 数据库33
  • 34. NoSQL + Hadoop = 混合业务大数据平台NoSQL 数据库Hadoop引擎实时处理引擎离线分析在线处理34
  • 35. 海量历史交易信息查询与分析业典型应用场景35
  • 36. 大数据就是基础设施:历史数据查询面向数据备份恢复面向数据索引查询还在忍受传统磁带备份的束缚, 无法实现历史数据的回溯查询?全量视图全量建模全量数据科学 个性化\反馈36
  • 37. 高性价比的数据存储持续在线; 去格式的长期数据保存方案; 秒级快速索引数据回溯; 满足复杂历史数据查询需求;找回数据 是关键全量计算——金融行业历史数据37
  • 38. 现有的挑战数据量大 主要归档在磁带上,部分在线 在线数据的可检索性低 任何对早期历史数据的查询都需要漫长的过程 数据类型繁杂 各个业务系统经过多年运行,交易明细数据版本繁多,数据结构不统一 不同的数据源不同的数据结构:结构化数据、半结构化数据、非结构化数据 系统环境复杂 各个业务系统的历史归档存在不同软件、硬件、版本的平台中 我们能不能使用一个平台,存储所有的历史数据,并且能够实时检索?38
  • 39. 历史数据管理和应用架构 - 总体架构核心理财信贷国际基金历史数据当前数据历史数据当前数据历史数据当前数据历史数据当前数据历史数据当前数据历史数据查询系统大数据平台业务系统实时查询服务批量检索服务随机查询服务数据下载服务数据仓库和分析型应用ODS/DSA – 面向主题、当前DW – 面向主题、历史和汇总DMDM随机查询反洗钱审计39
  • 40. 历史数据管理和应用架构 - 逻辑结构数据交换平台CRM数据仓库ECIF渠道系统……核心 业务系统零售 业务系统信贷 业务系统国际结算 业务系统统一数据视图历史数据访问层历史数据存储层历史交易数据存储理财信贷对公渠道对私国际元数据安全管理元数据管理历史数据查询层业务系统实时查询服务核心理财信贷国际批量检索服务核心理财公安人行随机查询服务分行其他数据下载服务……40
  • 41. 挑战:历史数据分析困难核心零售信贷……历史记录归档历史记录归档历史记录归档核心历史记录系统零售历史记录系统信贷历史记录系统批处理任务批处理任务批处理任务Data WarehouseReporting局限性 T+1的数据处理 丢失数据细节 数据模型僵硬 性能低效造成问题 当天数据无法统计 用户体验效果不佳 错失商机 损失利润41
  • 42. 方案:使用统一的历史归档平台核心零售信贷……实时或批处理任务……营销管理客户信息操作报告Data WarehouseReporting优势 实时数据处理 保留数据细节 敏捷开发 更高客户保持率 主动异常管理前端应用后台分析42
  • 43. 谢谢43
  • 44. 异构数据复制机制差异化的数据可靠性级别 灵活可配置的数据分片 支持同步与异步复制机制 异步业务请求w=1Repl-logRepl-logRepl-logSecondaryPull批量Repl-logPush更新通知虚拟复制请求PrimarySecondaryRepl-GroupRepl-log相对窗口HOT-WindowCOLD-WindowLOST-Window同步业务请求w=3优势:异构数据复制机制灵活平衡业务性能、可用性和数据可靠性44
  • 45. 读写分离实例3 批量分析类实例2 Ad-hoc类实例1 数据录入类分区4分区3分区2分区1主从从主从从主从从主从从优势:细粒度划分,指定应用程序所使用的实例45
  • 46. SequoiaDB 与MongoDB的差异SequoiaDBMongoDB事务有无SQL支持有无性能高中数据压缩有无存储过程有弱JDBC驱动有无数据可靠性高低记录锁有无46
  • 47. SequoiaDB 与HBase的差异SequoiaDBHBase多索引有无非主键排序有无聚集有无存储过程有无事务有无锁有无SQL/JDBC有无高可用性强弱图形管理界面有无数据更新删除有无47
  • 48. Hbase仅支持单维度实时访问 SequoiaDB支持多维度实时访问用户ID姓名存款余额开户时间保险余额10035张三100.002012-12-011755.3577591李四155023.352013-03-058325.14155382王五128.001997-05-04889.6611526赵六133512.001995-01-014481.25SequoiaDB可以在多个不同的字段上创建索引,支持多维度随机查询 Hbase仅能在一个字段上创建索引,仅支持单维度查询48
  • 49. MongoDB的灵活性+Cassandra的性能场景1:电信 40亿条记录 30 TB 8台物理机 48GB内存 6 SATA 磁盘 场景2:YCSB测试 1亿条记录 插入/更新/查询 单用户/多用户 最高吞吐量 49
  • 50. Scenario 1 – compare with HBase hbasesequoiadbnoteData load21hrs,10mins,46sec20hrs,28mins,29sec4billions row, 30TBQuery on PK10521msUpdate on PK1613msDelete on PK619msinsert310539row/sBatch insert3113257row/sQuery on table scan152664183secUpdate on table scan3hrs,48mins,26sec1hrs,9mins,34s Delete on table scan3hrs,48mins,26sec1hrs,9mins,43s  Query on 2nd index (hbase has to do table scan)3hrs,48mins,26sec21msDelete on 2nd index 3hrs,48mins,26sec19msUpdate on 2nd index 3hrs,48mins,26sec16msFile size36.4223.72TB50
  • 51. Scenario 1 – compare with HBaseQuery on PK,msBatch insert, row/sinsert,row/sTable scan, secUpdate on PK, msQuery on 2nd index,ms51
  • 52. Scenario 1 – compare with MongoDB mongodbsequoiadbnoteLoad data3h 58m 43s2h 57m 50s4 billion rows, 30TBQuery on index2320msUpdate on index3022msDelete on index2816msinsert29946419row/sBatch insert525714996row/sQuery on table scan37453536secUpdate on table scan36413536secDelete on table scan36413536sec insert(multiple thread)17094073row/s/threadBatch insert(multiple thread)23155027row/s/thread52
  • 53. Scenario 1 – compare with MongoDBSingle thread batch insert,rows/secondMultiple threads batch insert,rows/second/threadMultiple thread insert,rows/second/threadQuery with index,msFull table scan,secondUpdate with index,ms53
  • 54. Scenario 2 – single threadYCSB Test,8 Boxes,100 millions records,single thread insert/update/query3554
  • 55. Scenario 2 – multi-threadYCSB Test,4 Boxes,100 millions records,multiple threads insert/update/query3655
  • 56. Scenario 3 – best throughput for batch-insertYCSB Test,3 Boxes,100 millions records,best throughput for Batch-Insert56
  • 57. SequoiaDB v.s. Couchbasecouchbase在使用到Bucket配置的限额内存时性能急剧下降YCSB Test,3 Boxes,100 millions records57
  • 58. 编目节点数据组数据组数据组数据组数据组数据组数据组基于块级并发能力数据块…数据块数据块数据块协调节点编目节点数据组数据块…数据块数据块数据块数据组数据块…数据块数据块数据块业务应用/Hadoop获取分片信息 数据组1:分片号10,12… 数据组2:分片号1,2…并发读取各个数据块内容1 大数据查询和导入性能相对HBASE有较大幅度提升; 2 与Hadoop Map/Reduce 对接能发挥更大的并发优势; 导入数据量导入性能Hbase30亿条记录15W/SecSequoiaDB30亿条记录19.3W/Sec在某电信运营商场景测试多线程并发平均响应时间导入性能58
  • 59. 与传统方式相比的优势看得更长 传统历史归档需要区分冷热数据,热数据保存在在线数据库中,冷数据保存在磁带中 新的架构允许冷热数据同时在线,随时查询 看得更广 传统方式中,不同业务的历史数据独立保存,难以互相关联 新的架构允许应用程序交叉访问所有数据细节,360度业务认知59
  • 60. 挑战1:数据分层存储,历史数据访问困难在线数据库磁带库渠道信贷对公理财对私国际在线 0-2年离线 2-15年信息生命管理周期历史数据存储历史数据查询服务数据提取渠道信贷对公理财对私国际60
  • 61. 方案:建立一体化大数据历史存储平台历史存储库在线 0-15年历史数据存储历史数据查询服务渠道信贷对公理财对私国际61