基于 CarbonData的数据湖实践
如果无法正常显示,请先停止浏览器的去广告插件。
1. 基于 CarbonData 的
数据湖实践
蔡强,华为云 CarbonData PMC
2. 目录 CONTENT
01
挑战与机遇
一份数据需满足多种用途
02
数据湖优化实践
数据接入、查询优化
3. 01
挑战与机遇
4. 典型的数据分析场景
运维
日志分析
数据洞察
交互式分析
BI报表
批处理计算
一份数据三种用途面临的挑战
① 日志分析:问题定位
特点:按用户ID点查询,实时数据
② 交互式分析:产生洞察和预测
特点:多维度,模式不固定,
计算灵活,海量数据
③ 报表计算:BI报表
特点:周期性汇总统计,业务数据变
更,DB数据同步
数据
5. Multi-dimensional OLAP
Query
典型的解决方案
1. NoSQL数据库
• Key-Value store: low latency, <5ms
• No Standard SQL support
Full Scan Query
2. MPP数据库
• Shared-nothing enables fast query execution
• Poor scalability: < 100 cluster size, no fault-tolerance Option Store
KV Store HBase,
Cassandra
3. Search Engine
• Advanced indexing technique for fast search
• 3~4X data expansion in size, no SQL support
4. SQL on Hadoop
• Modern distributed architecture and high scalability
• Slow on point queries
5. Cube Data
• Pre-aggregation, quick OLAP query Parallel database Greenplum
Vertica
Search engine Solr
ElasticSearch
SQL on Hadoop -
Pipeline Impala
Drill
SQL on Hadoop -
BSP Hive
SparkSQL
Small Scan Query
Good
Bad
6. CarbonData愿景:一份数据支持多种场景
7. CarbonData架构
spark extension
storage handler
数据接入
connector
sdk(java)
物化视图
索引
insert, update, delete,
compaction, merge
pycarbon
Carbon Core
File, Segment, Transaction, Cache
Carbon格式表
列存, 行存
混合格式表
一张表内包含多格式:csv, json,
parquet, orc, carbon
pycarbon
8. 02
数据湖优化实践
9. 优化一: Flink准实时入库,数据延迟5分钟
多个查询集群
索引构建集群
Flink集群
App
埋点数据
Kafka
Sink
Carbon SDK
本地盘
• 写入时机:
• Flink Checkpoint时间间隔设置
• 数据条数(carbon.writer.local.commit.threshold)
• 可靠性:先落盘,再上传,网络故障时支持重传
• 数据实时性:写入即可查,支持延后构建索引
CarbonData表空间 (HDFS或云存储)
Segment
…
Segment
数据
文件 数据
文件
数据
文件 数据
文件
元数据
索引
文件
10. DB数据实时同步
MySQL
查询集群
查询时合并Delta文件
(Merge On Read)
增量日志采集
Spark streaming集群
Oracle
…
Kafka
Carbon MergeInto
(Insert/update/delete)
•只追加Delta文件,IO冲击小。对比“文件
重写”方式,更新时间缩短50%-70%.
•多个Delta文件自动合并,避免小文件问
题
CarbonData表空间 (HDFS或云存储)
Segment
数据
文件
Segment
Delta
文件
数据
文件
数据
文件
数据
文件
元数据
Delta
文件
11. 优化二:超大规模,支持大单表10万亿数据点查秒级响应
Index Service
(索引集群)
查询集群
索引服务
索引
节点
索引
节点
索引
节点
CarbonData表空间 (HDFS或云存储)
Segment
数据
文件
Segment
索引
文件
数据
文件
数据
文件
数据
文件
元数据
索引
文件
分布式索引缓存
• 解决Driver侧索引内存太大
• 解决多集群共享一份索引
• 在YARN上部署
索引预加载:
• 解决首次查询慢
• 数据入库后即自动预加载
12. 多级索引机制提升点查询性能达100倍
SELECT city, app FROM t1 WHERE userId=’421083199901010200’
利用Carbon索引,只扫描10MB
无索引,暴力全扫描>10GB
Spark + Carbon
Spark
Spark+Carbon优化
Spark Driver
索引
全量扫描
Executor
Task
Executor
Task
Task …
Task
云存储
Executor
Executor
…
Task
云存储
File
File File File File File File File
Blocklet
Blocklet
Blocklet Blocklet
Blocklet
Blocklet Blocklet
Blocklet
Blocklet Blocklet
Blocklet
Blocklet Blocklet
Blocklet
Blocklet Blocklet
Blocklet
Blocklet Blocklet
Blocklet
Blocklet Blocklet
Blocklet
Blocklet
Footer Footer Footer Footer Footer Footer Footer Footer
13. • 加速对高基数列的查询,主表的主索引是用户ID,但
对手机号码查询性能不好,则用SI对手机号码做索引
• SI上也有索引,加速SI的处理
二级索引加速多维过滤
查询集群
+
索引集群
Carbon优化规则:
利用block_id做pruning
CarbonData表空间 (HDFS或云存储)
主表
Segment1
数据
索引
文件f1 文件 Segment2
数据
索引
文件f3 文件
数据
文件f2 数据
文件f4
元数据
二级索引表 (SI)
Segment1
索引
数据
文件
文件
Segment2
索引
数据
文件
文件
元数据
索引列
min 索引列
max block_idmi
n block_idm
ax
13860001 13860005 f3 f4
索引列
(手机号码) block_id
13860001 f4
13860004 f3
13860005 f3
… …
14. 二级索引加速多维过滤
// 使用二级索引做过滤
SELECT … WHERE 字段1 = 10 and 字段2 = 20
SELECT … WHERE 字段1 = 10 or 字段3 = 30 or 字段4 = 40
➔ 两张索引表做join,再查主表
➔ 两张索引表做union,再查主表
查询集群
+
索引集群
Carbon优化规则:
利用block_id做pruning
CarbonData表空间 (HDFS或云存储)
主表
二级索引表
(字段1索引)
二级索引表
(字段2索引)
二级索引表
(字段3索引)
二级索引表
(字段4索引)
15. 优化三:低成本,存算分离性价比高
用CarbonData替换ES,查询时间是ES的两倍,而成本下降到1/5
成本优化点1:存储从本地盘(接近100万/PB/月)改为对象存储
成本优化点2:ES计算存储不分离,为了存储1PB数据,需要200台计算节点(百万/月)
CarbonData计算按需弹性,每天仅有8小时计算节点开机时间,每次开机50台
16. 优化四:物化视图MV自动优化
查询集群
入库集群
+
+
MV自动入库
SQL自动改写
表空间 (HDFS或云存储)
CarbonData表
Segment
Segment
数据
文件 数据
文件
数据
文件 数据
文件
元数据
Spark Datasource表
Parquet
文件
Parquet
文件
Hive表
ORC
文件
ORC
文件
MV表 – 分钟表 MV表 – 天表
MV表 – 小时表 MV表 – 月表
1. 支持多种格式
除了加速Carbon表格,也可以加
速Parquet, ORC表格。
限制:由于无Segment概念,只
支持全量刷新MV,无法增量刷
新
2. 支持时间序列
入库主表时自动完成各周期表的
预汇聚
查询主表时,自动选择合适的周
期表进行上卷(Rollup)
17. CarbonData在华为云的实践
MRS
MRS
数仓,
批处理
DB
JSON
XML
CSV
CarbonSQL
数据更新/删除/合并,索引管理,
物化视图管理,非结构化数据转换
流式入库,
批量入库,
数据同步
机器学习
CarbonData
ACID事务控制
元数据
OBS优化
JPG
WAV
TXT
交互式查询,
数据集市,
主题分析
ModelArts
MRS/DLI
多格式
AVRO
MRS/DLI
OBS/HDFS
索引
ModelArts
深度学习
18. 非常感谢您的观看