基于Cloudera Impala的
联邦SQL执行引擎
SequoiaSQL
王涛
SequoiaDB(巨杉数据库)CTO
taoewang@sequoiadb.com
提纲
1

Cloudera Impala 简介

2

SequoiaDB 简介

3

SequoiaSQL 增强特性

4

使用场景

5

性能指标
Real Time SQL Query Engine

CLOUDERA IMPALA 简介
SQL-On-Hadoop

IBM BigSQL

SQL-H

Stinger

Presto
Cloudera Impala 特性
通用性

高性能

•针对交易与分析系统
•支持从毫秒到小时级查询

价值:
提升应用开发效率
减少学习成本
提升运行性能

•C++执行内核
•运行时代码生成(LLVM)
•原生的SQL执行引擎
通用性
...
Impala 架构
Document NoSQL Database

SEQUOIADB简介
SequoiaDB
文档类NoSQL数据库
•
•
•
•
•
•

JSON数据类型
并行执行引擎
线性水平扩张
MPP – 无单点故障
在压缩数据上执行SQL
保持数据接近CPU/核

应用程序层

调度层
SequoiaDB 架构图
应用层
协调节点

编目分片

...

调度层

网络层
数据存
储层

数据分片

数据分片

数据分片

...
JSON格式与查询
需要更多的时间被行业用户接受
{
name: “Tim”,
age: 30,
phone: [
12345,
67890
]

}

CREATE TABLE EMP
( NAME CHAR(10),
AGE INTEGER...
Federation Engine

SEQUOIASQL 增强特性
SequoiaSQL联邦执行引擎
• SequoiaSQL 是基于开源项目开
发的SQL执行引擎
– Cloudera Impala

•
•
•
•

不仅仅是“SQL-on-Hadoop”
支持JDBC
兼容Hive驱动
增强功能
– 加入...
Metastore嵌入SequoiaDB
SequoiaDB

元存储在Derby或者其他关
元存储在SequoiaDB,无需
系型数据库
依赖其他数据库
需要依赖Hive的配置文件

数据默认存储在SequoiaDB,
扩展表可映射 HDFS...
Update/Delete/Merge
SequoiaSQL

查询
添加
更改
删除
MERGE

半结构化

查询
覆盖添加

非结构化

查询

结构化
查询谓词下压,利用数据库索引提升性能
查询

SELECT * FROM T, K WHERE
T.Price > 1000 AND T.id = K.id

关联

数据存储层
HDFS
Database

T.Price > 1000
HD...
SequoiaSQL 应用架构

JDBC/API接口
Pig

Hive

SequoiaSQL
MapReduce
分布式计算框架

HDFS
分布式存储引擎

SequoiaDB

关系型
数据库
SequoiaSQL 系统架构
其他
数据源

应用层

SequoiaSQL

调度层

Oracle
编目分片

协调节点

HDFS

...

HBase
DB2
MySQL

网络层
数据存
储层

MongoDB
etc…
数据分片...
NoSQL in Industry

USE CASES
交易流水归档历史查询
面临的挑战
•

•

•

每天需要入库归档超
过100GB数据
用户需要能够并发、
实时、由多个维度访
问超过2年的历史数
据
当前Oracle数据库无
法满足实时查询的需
求

解决方式
•

•

•

•

使用...
交易流水归档历史查询
Legacy
Systems
IBM
UDB
ESE

TCPIP

Oracle
10G
SAS

TCPIP

End Users

TCPIP

TCPIP
Management

ODS & IDS
SPSS

C...
交易流水归档历史查询
Hadoop
Platform

业务系
统

HDFS
数据录入

SequoiaDB
Hive

数据录入

SequoiaSQL

Web
服务

一级分行用户

当日归档数据
二级行管理员

客户分群
数据分析

...
Performance Benchmark

性能指标
SQL1:
SQL5:
SELECT
select
cttb.appg_mode
ac_nm,appg_date,cst_id,dep_acno,tran_ty
,cttb.appg_date
pe,tran_amount from
,cttb...
SequoiaSQL Hive性能对比
700
SQL
SQL
SQL
SQL
SQL

600
500

1
2
3
4
5

SequoiaSQL Hive
0.49
96.903
22.28
147.087
316.26
600.164
...
Roadmap

产品路标规划
产品路标规划

•
•
•
•

其他Join方式实现
聚合下压
排序下压
….

2013.12.31

•
•
•
•

支持嵌套类型
支持数组类型
添加其他数据源
…

•
•

基于成本的性能优化
….

2014.12.31
王涛
taoewang@sequoiadb.com
Upcoming SlideShare
Loading in...5
×

王涛:基于Cloudera impala的非关系型数据库sql执行引擎

586

Published on

BDTC 2013 Beijing China

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
586
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

王涛:基于Cloudera impala的非关系型数据库sql执行引擎

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

    Clipping is a handy way to collect important slides you want to go back to later.

×