基于 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. 非常感谢您的观看

首页 - Wiki
Copyright © 2011-2024 iteam. Current version is 2.139.0. UTC+08:00, 2024-12-28 18:30
浙ICP备14020137号-1 $访客地图$