4. ClickHouse在苏宁用户画像场景的实践
苏宁科技集团.大数据中心.杨兆辉 1 关亍我 苏宁科技集团大数据中心架构师 曾就职亍中兴通讯10+years ,从事大规模分布式系统研发 10+years C++、Java、Go编程经验,熟悉大数据架构、解决方案 ClickHouse Contributor Github: https://github ch_label_dist_double ch_label_dist_date 查询 分布式表 标签数据表 HDFS 导入 HDFS上采用snappy.parquet格式存储数据。 采用AB表切换方式,避免查询和写入的冲突,标签数据表以日期结尾命名。 通过重建分布式表迚行AB表切换,指向丌同日期的标签数据表。 通过增加标签数据表的副本数,提升幵发性能。 : 预估人数 人群画像 用户ID清单 用户画像场景1—预估人数 输入条件 返回结果 场景描述 场景:限量发放10万张家电类优惠券,先预估出符合条件的用户数。 操作:用户指定标签及标签间的逡辑关系,统计出符合标签逡辑的人数。 标签表达式,包含标签、算术运算符、逡辑运算符、括号。 整形值,表示符合标签表达式的用户人数 例如: 23 user_number0 码力 | 32 页 | 1.47 MB | 1 年前36. ClickHouse在众安的实践
5亿,销售保单33.3亿张。 CHAPTER 报表系统的现状 01 数据分析的最直观表现形式:报表 报表≠数据驱动 每天被访问超过10次的报表寥寥无几 传统报表访问往往是静态的、高聚合、低频、表单式的 集智平台可视化交互分析 数据加工的链路与数据价值发现 竞争优势 分析成熟度 洞察与应对 预测与行动 源数据 数据清洗 标准报表 OLAP系统 商务智能(BI) 机器学习建模 ~4x • 升级后 • ~250s --> ~69s,~3.62x l 数据加热后 ~69s -- > 18s ,~3.8x • ToDos • 优化数据导入流程 • 支持多分区,支持指定主键 • 常用字段加热 29 常用分析性能的命令分享 • linux命令 • top:查看系统cpu使用率,内存使用率等 • iotop:查看系统进程占用io情况 • iostat -dmx0 码力 | 28 页 | 4.00 MB | 1 年前32. ClickHouse MergeTree原理解析-朱凯
MergeTree的存储结构 数据以分区的形式被组织 , PARTITION BY 各列独立存储, 按ORDER BY 排序 一级索引, 按PRIMARY Key 排序 数据分区 数据的分区规则 l 不指定分区键 如果不使用分区键,既不使用PARTITION BY声 明任何分区表达式,则分区ID默认取名为all,所 有的数据都会被写入到这个all分区。 l 使用整型 如果分区键取值属于整型(兼容UInt64,包括 字节大小,都被严格的控制在64K~1M之间,其上下限分 别由min_compress_block_size(默认65536)与max_compress_block_size(默认1048576)参数指定。 数据标记 数据标记的作用 数据标记作为衔接一级索引和数据桥梁,起作用像极 了做过标记小抄的书签,而且书本中每个一级章节都 拥有各自的书签。 数据标记的工作方式 1字节 * 8192 =0 码力 | 35 页 | 13.25 MB | 1 年前3ClickHouse在B站海量数据场景的落地实践
⼴告DMP(包括统计分析,⼈群预估) Ø 电商交易分析 Ø OGV内容分析 Ø APM (Application Performance Management) 基于ClickHouse的交互式OLAP技术架构 Cluster-01 Cluster-02 Cluster-n 。。。 ClickHouse Yuuni 定制开发的 ClickHouse-JDBC 与ClickHouse兼容的 Ø 数据重平衡 v 交互式分析查询:Superset提供即时查询能⼒ v 离线写⼊服务 (Rider) v 实时写⼊服务 (BSQL/Saber) ClickHouse 监控管理平 台 BSQL/Saber 实时写入服务 Rider 离线写入服务 平台服务 Berserker 数据源管理 交互式 分析查询 Yuuni服务 用户 内核 Map隐式列 v 原⽣Map使⽤Array 原⽣Map使⽤Array of Tuple实现 v 原⽣Map查询时需读取⼤量⽆效数据 Map隐式列 v Map隐式列将每个Key存储为独⽴列 v Map隐式列查询时只读取需要的隐式列 Bulkload v 原⽣写⼊⽅式消耗ClickHouse Server资源,影响查询性能 v 实时写⼊任务长期占⽤资源,故障恢复的时间和运维成本较⾼ v 基于中间存储的Bulkload⽅案降低ClickHouse0 码力 | 26 页 | 2.15 MB | 1 年前32. 腾讯 clickhouse实践 _2019丁晓坤&熊峰
基于位图的分布式计算引擎 API Server Scheduler SQL-Parser QueryOptimier Column1 DataNode Column2 Column3 ColumnN Column1 DataNode Column2 Column3 ColumnN bitmap 画像下钻分布式计算引擎 多维 提取 iData大数据分析引擎 分布式多维计算引擎 分布式多维计算引擎 基于位图索引和行式内容存储 分布式画像引擎 基于位图索引和列式内容存储 多维 分析 跟踪 分析 下钻 分析 透视 分析 画像 分析 一切以用户价值为依归 19 业务应用实践 iData 2 旧画像系统 Block 1 Block 2 Block … Storage Scheduler Data Stats Gather SQL Parser Query Block 2 Block … DataNode-2 Block 1 Block 2 Block … DataNode-3 DataNode-1 指标计算平台 Ø 分布式计算 • 并行计算 Ø 列式存储 • 按需加载减少IO • 可支持大量列 Ø 动态位图索引 • 缓存上次结果 • 成本低、命中率高 核心特点 Bitmap Filter Builder0 码力 | 26 页 | 3.58 MB | 1 年前32. Clickhouse玩转每天千亿数据-趣头条
9.37 GiB (attempt to allocate chunk of 301989888 bytes), maximum: 9.31 GiB 分析: 1:max_memory_usage指定单个SQL查询在该机器上面最大内存使用量 2:除了些简单的SQL,空间复杂度是O(1) 如: select count(1) from table where column=value select0 码力 | 14 页 | 1.10 MB | 1 年前3蔡岳毅-基于ClickHouse+StarRocks构建支撑千亿级数据量的高可用查询引擎
虚拟集群最少两台机器在不同的机房; Ø 数据独立,多写,相互不干扰; Ø 数据读取通过应用程序做负载平衡; Ø 灵活创建不同的虚拟集群用于适当的场合; Ø 随时调整服务器,新增/缩减服务器; 分布式: k8s的集群式部署 全球敏捷运维峰会 广州站 采用ClickHouse后平台的查询性能 system.query_log表,记录已经 执行的查询记录 query:执行的详细SQL,查询相关记录可以 左右表join的时候要注意数据量的变化; • 是否采用分布式; • 监控好服务器的cpu/内存波动/`system`.query_log; • 数据存储磁盘尽量采用ssd; • 减少数据中文本信息的冗余存储; • 特别适用于数据量大,查询频次可控的场景,如数据分析,埋点日志系统; 全球敏捷运维峰会 广州站 StarRocks应用小结 • 发挥分布式的优势,要提前做好分区字段规划; • 支持各0 码力 | 15 页 | 1.33 MB | 1 年前38. Continue to use ClickHouse as TSDB
引入辅助索引,加快数据检索 速度 低成本存储 • 列式存储结合高效的编码 • Delta、XOR 等适合时序场景的压缩算法 • 通过 Rollup 功能,对历史数据做聚合,减少数据量 稳定可扩展 • 分布式架构 • 数据多副本存储 • 服务高可用 Thanks For You0 码力 | 42 页 | 911.10 KB | 1 年前3
共 8 条
- 1