王涛:基于cloudera impala的非关系型数据库sql执行引擎
DESCRIPTION
BDTC 2013 Beijing ChinaTRANSCRIPT
![Page 2: 王涛:基于Cloudera impala的非关系型数据库sql执行引擎](https://reader031.vdocuments.mx/reader031/viewer/2022020709/55626318d8b42aed7d8b4d0a/html5/thumbnails/2.jpg)
提纲
Cloudera Impala 简介 1
SequoiaSQL 增强特性 3
使用场景 4
SequoiaDB 简介 2
性能指标 5
![Page 3: 王涛:基于Cloudera impala的非关系型数据库sql执行引擎](https://reader031.vdocuments.mx/reader031/viewer/2022020709/55626318d8b42aed7d8b4d0a/html5/thumbnails/3.jpg)
CLOUDERA IMPALA 简介
Real Time SQL Query Engine
![Page 4: 王涛:基于Cloudera impala的非关系型数据库sql执行引擎](https://reader031.vdocuments.mx/reader031/viewer/2022020709/55626318d8b42aed7d8b4d0a/html5/thumbnails/4.jpg)
SQL-On-Hadoop
IBM BigSQL
SQL-H Stinger Presto
![Page 5: 王涛:基于Cloudera impala的非关系型数据库sql执行引擎](https://reader031.vdocuments.mx/reader031/viewer/2022020709/55626318d8b42aed7d8b4d0a/html5/thumbnails/5.jpg)
•支持HDFS与HBase数据源 •支持Hive的metastore •支持HQL •接口与Hive保持兼容(JDBC)
volume
•C++执行内核 •运行时代码生成(LLVM) •原生的SQL执行引擎
Cloudera Impala 特性
高性能 通用性
兼容性
通用性
高性能
兼容性
•针对交易与分析系统 •支持从毫秒到小时级查询
价值: 提升应用开发效率 减少学习成本 提升运行性能
![Page 6: 王涛:基于Cloudera impala的非关系型数据库sql执行引擎](https://reader031.vdocuments.mx/reader031/viewer/2022020709/55626318d8b42aed7d8b4d0a/html5/thumbnails/6.jpg)
Impala 架构
![Page 7: 王涛:基于Cloudera impala的非关系型数据库sql执行引擎](https://reader031.vdocuments.mx/reader031/viewer/2022020709/55626318d8b42aed7d8b4d0a/html5/thumbnails/7.jpg)
SEQUOIADB简介
Document NoSQL Database
![Page 8: 王涛:基于Cloudera impala的非关系型数据库sql执行引擎](https://reader031.vdocuments.mx/reader031/viewer/2022020709/55626318d8b42aed7d8b4d0a/html5/thumbnails/8.jpg)
SequoiaDB 文档类NoSQL数据库
• JSON数据类型
• 并行执行引擎
• 线性水平扩张
• MPP – 无单点故障
• 在压缩数据上执行SQL
• 保持数据接近CPU/核
应用程序层
调度层
![Page 9: 王涛:基于Cloudera impala的非关系型数据库sql执行引擎](https://reader031.vdocuments.mx/reader031/viewer/2022020709/55626318d8b42aed7d8b4d0a/html5/thumbnails/9.jpg)
SequoiaDB 架构图
编目分片
... 数据分片 数据分片 数据分片
数据存储层
...
协调节点
调度层
网络层
应用层
![Page 10: 王涛:基于Cloudera impala的非关系型数据库sql执行引擎](https://reader031.vdocuments.mx/reader031/viewer/2022020709/55626318d8b42aed7d8b4d0a/html5/thumbnails/10.jpg)
JSON格式与查询 需要更多的时间被行业用户接受
{ name: “Tim”, age: 30, phone: [ 12345, 67890 ] }
CREATE TABLE EMP ( NAME CHAR(10), AGE INTEGER, PHONE1 INTEGER, PHONE2 INTEGER ) ; INSERT INTO EMP VALUES ( “Tim”, 30, 12345, 67890 ) ;
![Page 11: 王涛:基于Cloudera impala的非关系型数据库sql执行引擎](https://reader031.vdocuments.mx/reader031/viewer/2022020709/55626318d8b42aed7d8b4d0a/html5/thumbnails/11.jpg)
SEQUOIASQL 增强特性
Federation Engine
![Page 12: 王涛:基于Cloudera impala的非关系型数据库sql执行引擎](https://reader031.vdocuments.mx/reader031/viewer/2022020709/55626318d8b42aed7d8b4d0a/html5/thumbnails/12.jpg)
SequoiaSQL联邦执行引擎
• SequoiaSQL 是基于开源项目开发的SQL执行引擎 – Cloudera Impala
• 不仅仅是“SQL-on-Hadoop” • 支持JDBC • 兼容Hive驱动 • 增强功能
– 加入SequoiaDB与关系型数据库的读写接口
– 将metastore嵌入SequoiaDB – 增加Update/Delete/Merge语句 – 谓词条件下压
Application
SQL
JDBC
SequoiaSQL Engine Federated Database
![Page 13: 王涛:基于Cloudera impala的非关系型数据库sql执行引擎](https://reader031.vdocuments.mx/reader031/viewer/2022020709/55626318d8b42aed7d8b4d0a/html5/thumbnails/13.jpg)
元存储在Derby或者其他关系型数据库 需要依赖Hive的配置文件
数据默认存储在HDFS
Metastore嵌入SequoiaDB
SequoiaDB
SequoiaDB SequoiaDB SequoiaDB
元存储在SequoiaDB,无需依赖其他数据库
数据默认存储在SequoiaDB,扩展表可映射 HDFS 和 HBASE
![Page 14: 王涛:基于Cloudera impala的非关系型数据库sql执行引擎](https://reader031.vdocuments.mx/reader031/viewer/2022020709/55626318d8b42aed7d8b4d0a/html5/thumbnails/14.jpg)
Update/Delete/Merge
SequoiaSQL
查询 添加 更改 删除 MERGE
查询 覆盖添加
查询
半结构化 非结构化 结构化
![Page 15: 王涛:基于Cloudera impala的非关系型数据库sql执行引擎](https://reader031.vdocuments.mx/reader031/viewer/2022020709/55626318d8b42aed7d8b4d0a/html5/thumbnails/15.jpg)
查询谓词下压,利用数据库索引提升性能
查询
关联
索引扫描
T.Price > 1000 数据存储层 HDFS Database
HDFS
SELECT * FROM T, K WHERE T.Price > 1000 AND T.id = K.id
批量扫描
优势: 1.减少网络数据传输 2.利用数据库索引提升性能
![Page 16: 王涛:基于Cloudera impala的非关系型数据库sql执行引擎](https://reader031.vdocuments.mx/reader031/viewer/2022020709/55626318d8b42aed7d8b4d0a/html5/thumbnails/16.jpg)
SequoiaSQL 应用架构
HDFS 分布式存储引擎
Hive
MapReduce 分布式计算框架
SequoiaDB
Pig
SequoiaSQL
JDBC/API接口
关系型 数据库
![Page 17: 王涛:基于Cloudera impala的非关系型数据库sql执行引擎](https://reader031.vdocuments.mx/reader031/viewer/2022020709/55626318d8b42aed7d8b4d0a/html5/thumbnails/17.jpg)
SequoiaSQL 系统架构
编目分片
... 数据分片 数据分片 数据分片
数据存储层
...
调度层
网络层
应用层
协调节点
SequoiaSQL
其他 数据源
DB2
Oracle
HDFS
HBase
MySQL
MongoDB etc…
![Page 18: 王涛:基于Cloudera impala的非关系型数据库sql执行引擎](https://reader031.vdocuments.mx/reader031/viewer/2022020709/55626318d8b42aed7d8b4d0a/html5/thumbnails/18.jpg)
USE CASES NoSQL in Industry
![Page 19: 王涛:基于Cloudera impala的非关系型数据库sql执行引擎](https://reader031.vdocuments.mx/reader031/viewer/2022020709/55626318d8b42aed7d8b4d0a/html5/thumbnails/19.jpg)
交易流水归档历史查询
面临的挑战 解决方式 最终结果
• 每天需要入库归档超过100GB数据
• 用户需要能够并发、实时、由多个维度访问超过2年的历史数据
• 当前Oracle数据库无法满足实时查询的需求
• 使用MapReduce与Hive作为ETL处理的补充进行数据清洗和转换
• 使用Hive将最终结果并行加载入SequoiaDB
• 使用SequoiaDB,在常用查询字段上建立多个索引保证查询性能
• 使用SequoiaSQL进行实时数据查询
• 可以在线针对2年内的历史数据进行多条件检索
• 高数据压缩比节省数据存储空间
• 利于细分客户群,发现高价值用户,降低客户流失率
• 帮助自营产品、套餐等设计与创新
• 提升客户体验,进行策略管控
![Page 20: 王涛:基于Cloudera impala的非关系型数据库sql执行引擎](https://reader031.vdocuments.mx/reader031/viewer/2022020709/55626318d8b42aed7d8b4d0a/html5/thumbnails/20.jpg)
交易流水归档历史查询
Legacy Systems
Other Sources
New Systems
Text Data
Manual Input
…
IBM UDB ESE
Oracle 10G
Hive
HDFS
SequoiaSQL
SequoiaDB
ODS & IDS
SAS
SPSS
Web App
R
End Users
Management
Cube Analysts
Data Mart Users
Web App Users
TCPIP
TCPIP
TCPIP
TCPIP
TCPIP
TCPIP
TCPIP
TCPIP
![Page 21: 王涛:基于Cloudera impala的非关系型数据库sql执行引擎](https://reader031.vdocuments.mx/reader031/viewer/2022020709/55626318d8b42aed7d8b4d0a/html5/thumbnails/21.jpg)
交易流水归档历史查询
HDFS
当日归档数据
业务系统
数据录入
数据录入
SequoiaDB
客户分群 数据分析
Hive
SequoiaSQL 一级分行用户
二级行管理员
营业厅叫号机
移动设备
Web服务
文本数据
手工输入数据
Web服务
报表展现
精准推送
Hadoop Platform
![Page 22: 王涛:基于Cloudera impala的非关系型数据库sql执行引擎](https://reader031.vdocuments.mx/reader031/viewer/2022020709/55626318d8b42aed7d8b4d0a/html5/thumbnails/22.jpg)
性能指标
Performance Benchmark
![Page 23: 王涛:基于Cloudera impala的非关系型数据库sql执行引擎](https://reader031.vdocuments.mx/reader031/viewer/2022020709/55626318d8b42aed7d8b4d0a/html5/thumbnails/23.jpg)
SQL1: select ac_nm,appg_date,cst_id,dep_acno,tran_type,tran_amount from sdbmassdata.local_sdb_ch_bank limit 10; SQL2: select count(cst_id) from sdbmassdata.local_sdb_ch_bank;
SQL3: select * from sdbmassdata.local_sdb_ch_bank order by tran_amount limit 10 ; SQL4: select max(tran_amount) from sdbmassdata.local_sdb_ch_bank group by ac_nm,appg_date,cst_id,dep_acno,tran_amount,tran_type limit 10;
SQL5: SELECT cttb.appg_mode ,cttb.appg_date ,cttb.tran_code …<300+字段> ,dhit.cst_tp_code ,dhit.ssn_avg_bal ,dhit.dpstm_term FROM sdbmassdata.local_ctis_txn_tif_bas_f cttb LEFT OUTER JOIN sdbmassdata.local_dep_hist_inf_tmp dhit ON ( cttb.ACT_NO = dhit.DEP_ACNO AND dhit.STAT_DT = '2012-02-01' ) LEFT OUTER JOIN sdbmassdata.local_BANCS_CUSM_F bcf ON (dhit.CST_ID = bcf.CI03_CUST_ACCT_NO) limit 1;
表名 记录数
local_sdb_ch_bank 20,000,000
local_bancs_cusm_f 70,602
local_ctis_txn_tif_bas_f
22,869,263
local_dep_hist_inf_tmp
313,721
![Page 24: 王涛:基于Cloudera impala的非关系型数据库sql执行引擎](https://reader031.vdocuments.mx/reader031/viewer/2022020709/55626318d8b42aed7d8b4d0a/html5/thumbnails/24.jpg)
SequoiaSQL Hive性能对比
0
100
200
300
400
500
600
700
SQL 1 SQL 2 SQL 3 SQL 4 SQL 5
SequoiaSQL
Hive
SequoiaSQL Hive
SQL 1 0.49 96.903
SQL 2 22.28 147.087
SQL 3 316.26 600.164
SQL 4 38.18 231.108
SQL 5 20.69 578.676
环境: 3台物理机 每台7个数据分区组
![Page 25: 王涛:基于Cloudera impala的非关系型数据库sql执行引擎](https://reader031.vdocuments.mx/reader031/viewer/2022020709/55626318d8b42aed7d8b4d0a/html5/thumbnails/25.jpg)
产品路标规划
Roadmap
![Page 26: 王涛:基于Cloudera impala的非关系型数据库sql执行引擎](https://reader031.vdocuments.mx/reader031/viewer/2022020709/55626318d8b42aed7d8b4d0a/html5/thumbnails/26.jpg)
产品路标规划
• 其他Join方式实现
• 聚合下压
• 排序下压
• ….
2013.12.31 2014.12.31
• 支持嵌套类型
• 支持数组类型
• 添加其他数据源
• …
• 基于成本的性能优化
• ….