Transcript Slide 1

文档式数据库
在Hadoop集群中的应用
SequoiaDB – 王涛
提纲
1
大数据回顾
2
文档式数据库特性
3
数据库在Hadoop中的定位
4
用户案例
Batch Analytics
大数据回顾
大数据:信息驱动力3v
海量数据规模
高时效性
•50%组织拥有和处理>10TB数据
•10%已经处理>1PB
•电子商务和Web日志可产生每分钟上万的数据项
•社交媒体应用每分钟产生百万交互活动
•30%组织需要每天处理>100GB数据
•批处理更新从每天提升到每小时,每分钟,甚至实时
•复杂事件处理能够即时产生信息发送给分析系统
•实时流数据处理
价值:
提高效率
提升客户体验
降低风险
创造新的商机
volume
variety
velocity
多样化
•传统的结构化数据依然是最常见的数据
•非结构化的情绪表达和客户行为快速增长
•企业现存的非结构化数据蕴含大量开放文本
•视频音频在业务操作中被使用
•博客,论坛以及评论反映了客户的声音
volume
Hadoop与NoSQL – 解决BigData的核武器
Hadoop
分布式存储
NoSQL
数据库
传统关系型
数据库
Volume
Variety
Yes
Yes
Yes
Velocity
Yes
Yes
Hadoop针对海量与多样化数据
NoSQL针对海量与高时效性数据
Hadoop与NoSQL互为补充,而非取代
Real-time data access
NOSQL数据库
关系型数据库面临的困境
数据模型僵化
关系模型制约水平扩张
海量数据瓶颈
无法处理海量数据,性能瓶颈
强一致性
日志,锁构成性能瓶颈
高成本
仅支持垂直扩张,成本昂贵
大量的关联是分布式关系模型中的瓶颈
文档式NoSQL解决方案
数据模型灵活
Schemaless带来开发的敏捷
和可扩展性的提升
海量数据
分布式架构+半结构化存储=
水平扩张
最终一致性
带来性能大幅度提升
低成本
使用PC服务器进行水平扩张
NoSQL利用嵌套和数组解决关联难题
用户ID
用户名
用户ID
交易金额
交易时间
1
王萍
2
135
7:05
2
张楠
3
115
12:01
3
李克同
2
42,138
12:24
4
Jerry
3
31,238
15:31
……
• 大表之间的关联性
能低下
• 关联操作造成节点
间大量的数据移动
……
2千万条记录
1.5亿条记录
•单条记录实现1:1与1:N模型
用户ID
用户名
交易时间金额
1
王萍
[ { 15:53, 7500} ]
2
张楠
[ { 07:05, 135 }, {12:24, 42138 } ]
3
李克同
[ { 12:01, 115}, { 15:31, 31238 }, {16:30, 557 } ]
……
在线扩容
•
•
•
•
存储空间可扩展
在线迁移数据
业务不中断
负载均衡
•
扩容步骤:
•
将新增节点添加到集群中
•
划分数据分区
•
系统自动迁移数据
异构数据复制机制
•
异步业务请求w=1
Primary
同步业务请求w=3
•
Repl-log
虚拟复制请求
Secondary
Push更新通知
•
差异化的数据
可靠性级别
灵活可配置的
数据分片
支持同步与异
步复制机制
Secondary
Pull批量Repl-log
Repl-log
Repl-log
Repl-Group
LOST-Window
COLD-Window
HOT-Window
Repl-log相对窗口
异构数据复制机制灵活平衡业务性能、可用性和数据可靠性
多索引支持
ID_Index
ID
Name
Phone
Name_Index
1
1
Tom
135
Amy
2
2
Bob
412
Bob
3
3
Jim
531
Jim
4
4
Amy
986
Kevin
5
5
Susan
257
Lily
6
6
Lily
264
Susan
7
7
Kevin
223
Tom
•
和很多KV或者宽表数据库比起来,文档型数
据库一般对一个集合能够在不同字段上创建多
个索引
Big Data Platform
HADOOP+NOSQL
NoSQL数据库在Hadoop中的定位
连接器
连接器
HDFS
NoSQL数据库
Hadoop连接器
Hadoop MapReduce
Job Tracker
Task Tracker
Task Tracker
Task Tracker
连接器
数据库
Data Node
从Hadoop导入数据
Extract
Flume
Connector
Sqoop
Connect
Other
Sources
Transform
Load
Hadoop
HDFS
Hadoop
Connector
NoSQL
• 可直接从HDFS加载数据
• 优化并行
• 支持Pig、Hive与MapReduce
查询谓词下压,利用数据库索引提升性能
查询
SELECT * FROM T, K WHERE
T.Price > 1000 AND T.id = K.id
关联
数据存储层
HDFS
Database
HDFS
批量扫描
T.Price > 1000
索引扫描
基于块级并发能力
业务应用/Hadoop
Hbase
获取分片信息
数据组1:分片号10,12…
数据组2:分片号1,2…
编目节点
编目节点
导入数据量
导入性能
30亿条记录
15W/Sec
SequoiaDB 30亿条记录
19.3W/Sec
导入性能
并发读取各个数
据块内容
协调节点
4
IBM Average Query
Time(s)
SequoiaDB Average
Query Time(s)
3.5
3
数据块
数据块
数据块
2.5
数据块
数据块
数据块
2
数据块
…
数据块
…
数据块
…
0.5
数据块
数据块
数据块
0
数据组
数据组
数据组
数据组
数据组
数据组
数据组
数据组
数据组
1.5
1 大数据查询和导入性能相对HBASE有较大幅度提升;
2 与Hadoop Map/Reduce 对接能发挥更大的并发优势;
1
20
50
100
150
200
多线程并发平均响应时间
在某电信运营商场景测试
Use cases
用户案例
交易流水归档历史查询
面临的挑战
•
•
•
每天需要入库归档超
过100GB数据
用户需要能够并发、
实时、由多个维度访
问超过2年的历史数
据
当前Oracle数据库无
法满足实时查询的需
求
解决方式
•
•
•
•
使用MapReduce与
Hive作为ETL处理的
补充进行数据清洗和
转换
使用Hive将最终结果
并行加载入
SequoiaDB
小规模x86集群平台
降低TCO
使用SequoiaDB,在
常用查询字段上建立
多个索引保证查询性
能
最终结果
•
•
•
•
•
可以在线针对2年内
的历史数据进行多条
件检索
高数据压缩比节省数
据存储空间
利于细分客户群,发
现高价值用户,降低
客户流失率
帮助自营产品、套餐
等设计与创新
提升客户体验,进行
策略管控
交易流水归档历史查询
交易流水归档历史查询
Hadoop
Platform
业务系
统
HDFS
数据录入
SequoiaDB
Hive
数据录入
SequoiaSQL
Web
服务
一级分行用户
当日归档数据
二级行管理员
客户分群
数据分析
Web
服务
营业厅叫号机
文本数据
报表展现
精准
推送
手工输入数据
移动设备
谢谢
王涛
[email protected]
www.sequoiadb.com
微博账号
@SequoiaDB
微信账号
Hadoop与文档式NoSQL之间的关系
优势
传统关系数据库
大数据HADOOP平台
文档式NoSQL数据库
 基于关系模型的高性能数据查
询和分析;
 大规模并行数据处理;
 大规模并行实时数据访问;
 灵活可编程;
 数据模型动态灵活;
 支持海量数据存储的文件系统;
 计算引擎强大,功能丰富;
 低硬件成本服务器集群。
 低硬件成本服务器集群。
 不适合非结构化数据处理;
 不适合复杂数据关联查询;
 不适合非结构化数据存储
 通常情况,企业级硬件支持
 缺乏标准访问接口。
 结构化数据的高性能复杂查询
 非结构化数据处理;
 传统报表分析和数据挖掘。
 全数据批量处理;
 成熟内建数据挖掘算法;
 成熟报表工具;
 标准数据访问接口。
劣势
适合场景
 个性化数据分析和挖掘;
 结构化与半结构化高性能大规模
并行处理;
 海量数据实时检索分析
 海量数据检索,索引和搜索。
应用
 企业级数据仓库
 低成本海量数据存储和分析
互为补充而非取代
 实时大数据查询分析
SequoiaDB
与HBase的差异
SequoiaDB
HBase
多索引
有
无
非主键排序
有
无
聚集
有
无
存储过程
有
无
事务
有
无
锁
有
无
SQL/JDBC
有
无
高可用性
强
弱
图形管理界面
有
无
数据更新删除
有
无
SequoiaDB
与MongoDB的差异
SequoiaDB
MongoDB
事务
有
无
SQL支持
有
无
性能
高
中
数据压缩
有
无
存储过程
有
弱
JDBC驱动
有
无
图形管理界面
有
无
MongoDB天生的互联网基因使其缺乏企业级功能,且与Hadoop结合极其有限
SequoiaDB
NoSQL实时数据引擎
•
•
•
•
•
•
灵活动态的数据类型
并行执行引擎
线性水平扩张
MPP – 无单点故障
在压缩数据上执行SQL
保持数据接近CPU/核
应用程序层
调度层
SequoiaDB
为实时查询与分析而建立
应用层
协调节点
编目分片
...
协调层
网络层
数据存
储层
数据分片
数据分片
数据分片
...
SequoiaDB
平台架构
在线扩容
•
•
•
•
存储空间可扩展
在线迁移数据
业务不中断
负载均衡
•
扩容步骤:
•
将新增节点添加到集群中
•
划分数据分区
•
系统自动迁移数据
在线扩容优势
传统数据库(ORACLE和DB2)
– 性能及吞吐量非线性增长
– 业务中断时间长
性
能
和
吞
吐
量
SequoiaDB
SequoiaDB
– 增加节点可线性提升数据访问性
能
– 无需中断业务在线扩容
传统(ORACLE和DB2)
1
2
3
4
5
6
7
8
9
节点数(个)
10 11
Single Shard
Two Shards
Three Shards
异构数据复制机制
•
异步业务请求w=1
Primary
同步业务请求w=3
•
Repl-log
虚拟复制请求
Secondary
Push更新通知
•
差异化的数据
可靠性级别
灵活可配置的
数据分片
支持同步与异
步复制机制
Secondary
Pull批量Repl-log
Repl-log
Repl-log
Repl-Group
LOST-Window
COLD-Window
HOT-Window
Repl-log相对窗口
异构数据复制机制灵活平衡业务性能、可用性和数据可靠性
SequoiaDB
大数据合作伙伴
SequoiaDB
集成Hadoop解决方案
SequoiaDB
与Hadoop丰富的对接形式
Hive
sdb connector
Sqoop
sdb connector
HDFS
SequoiaDB
与Hive对接, 实现大数据导入/分析
SequoiaSQL
HDFS
SequoiaDB
SequoiaSQL 实现SDB/HDFS之间数据互通
HDFS
SequoiaDB
与Hadoop/sqoop对接,实现
传统数据库/非结构化数据与SequoiaDB转换
Hadoop连接器
客户端
Hadoop MapReduce
Job Tracker
Task Tracker
Task Tracker
Task Tracker
连接器
数据库
Data Node
SequoiaDB
从Hadoop导入数据
Extract
Flume
Connector
Sqoop
Connect
Other
Sources
Transform
Load
Hadoop
HDFS
SequoiaDB
Connector
SequoiaDB
• 可直接从HDFS加载数据
• 优化并行
• 支持Pig、Hive与MapReduce
基于块级并发能力
业务应用/Hadoop
Hbase
获取分片信息
数据组1:分片号10,12…
数据组2:分片号1,2…
编目节点
编目节点
导入数据量
导入性能
30亿条记录
15W/Sec
SequoiaDB 30亿条记录
19.3W/Sec
导入性能
并发读取各个数
据块内容
协调节点
4
IBM Average Query
Time(s)
SequoiaDB Average
Query Time(s)
3.5
3
数据块
数据块
数据块
2.5
数据块
数据块
数据块
2
数据块
…
数据块
…
数据块
…
0.5
数据块
数据块
数据块
0
数据组
数据组
数据组
数据组
数据组
数据组
数据组
数据组
数据组
1.5
1 大数据查询和导入性能相对HBASE有较大幅度提升;
2 与Hadoop Map/Reduce 对接能发挥更大的并发优势;
1
20
50
100
150
200
多线程并发平均响应时间
在某电信运营商场景测试
SequoiaSQL
让SequoiaDB支持原生SQL
• 原生SQL支持
• 支持JDBC/ODBC
• 多种数据源
– SequoiaDB
– Hive
– HBase
Application
SQL
JDBC/ODBC
SequoiaSQL Engine
SequoiaSQL v.s. Hive+HDFS
Tests
Time
(Sec)
Test 1
Test 2
Test 3
Test 4
Hive+HDFS
32.603
17.822
39.815
42.128
SequoiaSQL
3.2
2
1
1
SequoiaSQL is 10+ times faster than Hive+HDFS
Hadoop + SequoiaDB = 实时分析+批处理分析
JDBC/ODBC/API接口
Pig
执行引擎
Hive
查询引擎
MapReduce
分布式计算框架
HDFS
分布式存储引擎
SequoiaSQL
SequoiaDB
SequoiaDB
与其他数据库的功能差异
SequoiaDB
MongoDB
HBase
RDBMS
(Oracle,DB2)
事务
有
无
无
有
SQL支持
有
无
无
有
分布式
有
有
有
无
性能
高
中
高
低
多索引
有
有
无
有
数据压缩
有
无
有
有
存储过程
有
弱
无
有
JDBC驱动
有
无
无
有
图形管理界面
有
无
无
有
数据模型
JSON对象
JSON对象
宽表
关系结构
客户分群 – 第一阶段
业务系统
营销管理
建立营销规则
ETL
Hadoop
+
SequoiaDB
计算用户分群
精准推送
营销记录
客户分群 – 第一阶段
业务系统
营销管理
建立营销规则
ETL
Hadoop
+
SequoiaDB
计算用户分群
精准推送
营销记录
客户分群 – 第二阶段
业务系统
数据挖掘
建立营销规则
ETL
Hadoop
+
SequoiaDB
计算用户分群
精准推送
营销记录