2. ClickHouse MergeTree原理解析-朱凯
[SAMPLE BY expr] [SETTINGS name=value, 省略...] 分区键 排序键 主键 index_granularity = 8192 索引粒度 MergeTree的存储结构 数据以分区的形式被组织 , PARTITION BY 各列独立存储, 按ORDER BY 排序 一级索引, 按PRIMARY Key 排序 数据分区 数据的分区规则 l 不指定分区键 如果单个批次数据直接超过1M,则首先按照1M 大小截断并生成下一个压缩数据块。剩余数据继续依 照上述规则执行。此时,会出现一个批次数据生成多 个压缩数据块的情况。 每个压缩数据块的体积,按照其压缩前的数据字节大小,都被严格的控制在64K~1M之间,其上下限分 别由min_compress_block_size(默认65536)与max_compress_block_size(默认1048576)参数指定。 数据标记 数据标记的作用0 码力 | 35 页 | 13.25 MB | 1 年前34. ClickHouse在苏宁用户画像场景的实践
Bitmap位存储和位计算 每个bit位表示一个数字id,对亍40亿个的用户id,只需要40亿bit位, 约477m大小 = (4 * 109 / 8 / 1024 / 1024) 但是如果使用上述的数据结构存储单独一个较大数值的数字id,会造成空间上的浪费,例如 仅存储40亿一个数值也需要477m的空间。也就是说稀疏的Bitmap和稠密的占用空间相 同。通常会使用一种bitmap压缩算法迚行优化。 Array Container Run Container Bitmap Container 10 RoaringBitmap原理介绍 11 丌仅数据结构设计精巧,而且还有 很多高效的Bitmap计算函数。 稀疏数据,劢态分配 最大存储:4096元素 最大空间:8KB 连续数据,劢态分配 最大存储:65536元素 最大空间:128KB 用户画像平台可以从ES、Hbase、Redis查 询数据 痛点: 标签导入到ES的时间过长,需要等待各种业 务数据准备就绪,才能迚行关联查询。 新增戒者修改标签,丌能实时迚行,涉及到 ES文档结构的变化。 ES对资源消耗比较大,属亍豪华型配置。 ES的DSL诧法对用户丌太友好,用户学习成 本高。 Kafka Flink 18 ClickHouse替换ES存储标签数据0 码力 | 32 页 | 1.47 MB | 1 年前3ClickHouse在B站海量数据场景的落地实践
Cluster-02 Cluster-n 。。。 ClickHouse Yuuni 定制开发的 ClickHouse-JDBC 与ClickHouse兼容的 HTTP 接口 请求管理/流量控制 查询缓存 查询分发器 查询处理器 ClickHouse 监控管理平台 元数据管理 库表管理 权限管理 埋点分析 报表平台 HDFS/Hive Kafka/Databus 离线接入 Berserker数据源管理: Ø 建表 Ø 修改表元数据 Ø 表元数据管理 v Yuuni: Ø 屏蔽集群信息 Ø 原⽣JDBC,HTTP接⼜ Ø 读写分离 Ø 动态查询缓存 Ø 流量控制 v 监控管理平台: Ø 统计⼤盘 Ø 回归测试 Ø 接⼊评估 Ø 数据迁移 Ø 数据重平衡 v 交互式分析查询:Superset提供即时查询能⼒ v 离线写⼊服务 (Rider) ⽬标:⽀持UpSert,Delete操作,提升查询性能 v 设计:delete on insert Unique Engine v write-write冲突依靠table level lock控制 v write-merge冲突: Unique Engine v 常驻内存模式对内存消耗很⼤ v ⾮常驻内存模式index load过程慢 v 多并发加载优化索引加载速度: 日志 日志0 码力 | 26 页 | 2.15 MB | 1 年前32. 腾讯 clickhouse实践 _2019丁晓坤&熊峰
Shard02 Shard03 Load Balancing 一切以用户价值为依归 6 部署与监控管理 1 线性平滑扩容: 扩容: 1.安装新部署新的shard分片机器 2.新shard上创建表结构 3.批量修改当前集群的配置文件增加新的分片 4.名字服务添加节点 一切以用户价值为依归 7 部署与监控管理 1 大批量,少批次 WriteModel BatchSize RowLengt0 码力 | 26 页 | 3.58 MB | 1 年前32. Clickhouse玩转每天千亿数据-趣头条
es默认值为0,即不限制clickhouse内存使用 解决: clickhouse安装完成以后,在users.xml文件中配置一下max_memory_usage_for_all_queries,控制 clickhouse-server最大占用内存,避免被OS kill 我们遇到的问题 Memory limit (for query) exceeded:would use 9.37 GiB (attempt0 码力 | 14 页 | 1.10 MB | 1 年前3
共 5 条
- 1