狠狠撸

狠狠撸Share a Scribd company logo
基于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执行引擎
通用性

高性能

兼容性

兼容性

?支持HDFS与HBase数据源
?支持Hive的metastore
?支持HQL
?接口与Hive保持兼容(JDBC)

volume
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,
PHONE1 INTEGER,
PHONE2 INTEGER
);
INSERT INTO EMP
VALUES ( “Tim”, 30,
12345, 67890 ) ;
Federation Engine

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

?
?
?
?

不仅仅是“SQL-on-Hadoop”
支持JDBC
兼容Hive驱动
增强功能
– 加入SequoiaDB与关系型数据库
的读写接口
– 将metastore嵌入SequoiaDB
– 增加Update/Delete/Merge语句
– 谓词条件下压

Application
SQL
JDBC

SequoiaSQL Engine
Federated Database
Metastore嵌入SequoiaDB
SequoiaDB

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

数据默认存储在SequoiaDB,
扩展表可映射 HDFS 和
数据默认存储在HDFS
HBASE
SequoiaDB

SequoiaDB

SequoiaDB
Update/Delete/Merge
SequoiaSQL

查询
添加
更改
删除
MERGE

半结构化

查询
覆盖添加

非结构化

查询

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

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

关联

数据存储层
HDFS
Database

T.Price > 1000
HDFS
批量扫描

索引扫描

优势:
1.减少网络数据传输
2.利用数据库索引提升性能
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数据库无
法满足实时查询的需
求

解决方式
?

?

?

?

使用MapReduce与
Hive作为ETL处理的
补充进行数据清洗和
转换
使用Hive将最终结果
并行加载入
SequoiaDB
使用SequoiaDB,在
常用查询字段上建立
多个索引保证查询性
能
使用SequoiaSQL进行
实时数据查询

最终结果
?

?
?

?
?

可以在线针对2年内
的历史数据进行多条
件检索
高数据压缩比节省数
据存储空间
利于细分客户群,发
现高价值用户,降低
客户流失率
帮助自营产物、套餐
等设计与创新
提升客户体验,进行
策略管控
交易流水归档历史查询
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
交易流水归档历史查询
Hadoop
Platform

业务系
统

HDFS
数据录入

SequoiaDB
Hive

数据录入

SequoiaSQL

Web
服务

一级分行用户

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

客户分群
数据分析

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.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;
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
Roadmap

产物路标规划
产物路标规划

?
?
?
?

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

2013.12.31

?
?
?
?

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

?
?

基于成本的性能优化
….

2014.12.31
王涛
taoewang@sequoiadb.com

More Related Content

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