《专场18.2-弹性经济云上ClickHouse的架构思想-罗春.pdf》由会员分享,可在线阅读,更多相关《专场18.2-弹性经济云上ClickHouse的架构思想-罗春.pdf(20页珍藏版)》请在三个皮匠报告上搜索。
1、关于我关于我AboutMe罗春 沃趣科技在阿里巴巴上班,做一名DBA在沃趣科技创业,做一名杂役在沃趣科技再再创业,做一名大大杂役大数据MPP界的黑马 ClickHouseClickBench跑分表ClickHouse趋势图https:/主机1-分片0-副本1主机0-分片0-副本0异步复制主机3-分片1-副本1主机2-分片1-副本0异步复制主机5-分片2-副本1主机4-分片2-副本0异步复制主机7-分片3-副本1主机6-分片3-副本0异步复制zookeep1zookeep2zookeep3ZK元数据存储,分布式协调,副本状态,merge选主等ClickHouse分布式分片复制集群CHProxy数
2、据写入分布式表查询标准ClickHouse架构ClickHouse,一个极致性能,“简单的”SQL引擎简单,复杂单机单机性能爆表SQL亲民列存压缩向量执行多线程预存计算多存储引擎简易部署单机能力手工分布式没有重平衡粗暴元数据管理DDL聚合函数复杂JoinDML分析函数ClickHouse的一些槽点扩容无法重平衡无集中元数据管理数据入口尴尬Join不友好集群部署复杂借力云上的弹性资源云主机云主机块设备块设备负载均衡负载均衡S3S3对象存储对象存储弹性计算,按需申请丰富的vCPU与内存组合按量/包月/竞价实例高性能云盘,块设备存储IOPS/吞吐量可量化自带容错,按需扩容流量分发,跨区域故障保护包月
3、/流量多模式灵活计费数据存储可靠性9个9,全网灵活访问高吞吐量,成本低廉云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式 API。这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。“”K8s容器化+弹性云资源构建云原生ClickHouseK8S集群镜像仓库控制面DB TowerDB PoolController ManagerDatabase Operator平台入口WEB/API管理控制端管理控制端云主机ECS云盘/本地盘ELB网络均衡公有云基础资源K8S全容器化数据库监控管
4、理扩容升级数据接入备份恢复数据库业务数据库数据库RDSRDS服务端服务端S3对象存储(1)(2)(3)(4)K8s容器化+弹性云资源构建云原生ClickHouse我眼中的云原生数据库弹性扩展MPP是share-nothing架构,扩展节点容易计算和存储紧耦合,数据重分布是弹性扩展最大的障碍计算和存储紧耦合,数据重分布是弹性扩展最大的障碍我眼中的云原生数据库弹性扩展计算节点1计算节点2计算节点3计算节点4计算资源池计算资源池存储资源池存储资源池存储分片1存储分片2存储分片3存储分片4存储分片5存储分片6存储分片7存储分片8计算节点1D0D1D2D3D4D5D6D7计算节点1D0D1D2D3D4D
5、5D6D7计算节点2计算节点1D0D1D2D3D4D5D6D7计算节点3计算节点2计算节点4存算分离,计算与存储的关系编排存算分离,计算与存储的关系编排节点0-localtablelocaltable_all on cluster myclusterD0D1D2D3节点1-localtableD4D5D6D7分布式表计算层-ClickHouse节点云盘节点0-localtablelocaltable_all on cluster myclusterD0D2节点1-localtableD4D6分布式表计算层-ClickHouse节点云盘新节点2-localtableD1D3新节点3-localt
6、ableD5D7ClickHouse存算分离-ZeroCopy弹性伸缩云上的极简ClickHouse使用姿势vCPU 16 Core内存 32GB对象存储ClickHouse计算节点,单机性能爆表Spot竞价实例,按需抢占高效云盘,单盘支持16TB+计算存储分离,灵活扩展热数据缓存,节省成本对象存储,空间无限ECS云主机网络不限速冷数据存档,数据可靠性9个9ClickHouseClickHouse的数据写入特点的数据写入特点批量插入,害怕零散数据列存压缩,不擅长更新删除同步方案同步方案控制迁移批次数据量,分批插入所有都是插入,引入DML和版本标识ReplacingMergeTree单Part自
7、动去重异步任务处理删除数据ClickHouse数据接入-数据库实时增量原始同步数据的困扰业务不想修改SQL逻辑不想等待后台merge应对方案窗口分析函数自动新增一张视图很土,但管用ClickHouse数据接入-实时查询视图ClickHouse数据接入-全量并发拉取Tab1Tab2Tab2(where 1=1)Tab1(id1 and id 20000 and id maxKey)计算分片Go线程池线程1线程2线程3线程4分片逻辑分片逻辑表级并发 vs 表内并发默认主键,ID数值型字段,时间字段不符合条件不做分片源端表分片SQL多线程拉取参数控制参数控制-work-threads 工作线程数-s
8、plit-rowcount单分片行数限制-repeat-read一致读-commit-batchsize批次提交行数-fetch-batchsizefetch批次行数迁移的状态 多久可以迁移完成,进度如何 是否有失败的对象 迁移对象的状态维护表名表名分片拉取分片拉取SQL分片迁移状态分片迁移状态已迁移行数已迁移行数saledb.tab1id 1 and id 20000 and id=40000failed300saledb.tab1id=40000success0orderdb.orderWhere 1=1success3000迁移的异常控制 增量断点续传 如何应付网络较差的数据库 全量也要断点续传?表名表名迁移状态迁移状态估算行数估算行数已迁移行数已迁移行数saledb.tab1failed5000049000orderdb.ordersuccess30003000优化前优化后ClickHouse数据接入-全量断点续传从Oracle一体机看大数据技术ThanksYour Data,Your Cloud,We Integrate!罗春 Squids