 2. 腾讯 clickhouse实践 _2019丁晓坤&熊峰数据化驱动服务 场景视图: TGlog 服务端采集 腾讯游戏 服务器 腾讯游戏 移动客户端 微信 小游戏 WEB 游戏 海外 游戏 TDM-SDK 客户端采集 特性 采集 大数据基础 PaaS平台 游戏 营销活动 Dbbinlog 数据库采集 Game DB 数 据 管 理 + 元 数 据 TDBANK 准实时传输管道 Kafka-Pipeline 实时管道 数据可视化 游 谱 游戏说 神秘 商店 iData 多维提取 … 游戏数据 驱动场景 潘多拉 社交与功能 用户增长 服务场景 游戏 社区 微信手Q 渠道投放 直播 电竞 … 大数据基础PaaS平台 n 标准化、海量数据接入能力 n 实时化、低延时对接数据应用 n 异构化兼容能力 大数据应用PaaS服务 游戏数据驱动场景 n 实时干预游戏用户 n 精细化、精准化驱动场景服务 Extract Data Representation 20 业务应用实践 iData 2 iData画像服务需要升级 Ø扩展性差 数据导入后结果不支持修改/追加 Ø数据类型有限 数据类型只能支持数字类型 Ø数据量有限 数据量达到10亿级以上查询效率有所降低 Ø单表计算 不能进行多表关联计算 一切以用户价值为依归 21 业务应用实践 iData 2 为什么选择ClickHouse0 码力 | 26 页 | 3.58 MB | 1 年前3 2. 腾讯 clickhouse实践 _2019丁晓坤&熊峰数据化驱动服务 场景视图: TGlog 服务端采集 腾讯游戏 服务器 腾讯游戏 移动客户端 微信 小游戏 WEB 游戏 海外 游戏 TDM-SDK 客户端采集 特性 采集 大数据基础 PaaS平台 游戏 营销活动 Dbbinlog 数据库采集 Game DB 数 据 管 理 + 元 数 据 TDBANK 准实时传输管道 Kafka-Pipeline 实时管道 数据可视化 游 谱 游戏说 神秘 商店 iData 多维提取 … 游戏数据 驱动场景 潘多拉 社交与功能 用户增长 服务场景 游戏 社区 微信手Q 渠道投放 直播 电竞 … 大数据基础PaaS平台 n 标准化、海量数据接入能力 n 实时化、低延时对接数据应用 n 异构化兼容能力 大数据应用PaaS服务 游戏数据驱动场景 n 实时干预游戏用户 n 精细化、精准化驱动场景服务 Extract Data Representation 20 业务应用实践 iData 2 iData画像服务需要升级 Ø扩展性差 数据导入后结果不支持修改/追加 Ø数据类型有限 数据类型只能支持数字类型 Ø数据量有限 数据量达到10亿级以上查询效率有所降低 Ø单表计算 不能进行多表关联计算 一切以用户价值为依归 21 业务应用实践 iData 2 为什么选择ClickHouse0 码力 | 26 页 | 3.58 MB | 1 年前3
 2. ClickHouse MergeTree原理解析-朱凯区、数据副本和数据采样这些特 性,同时也只有此系列的表引擎支持ALTER相关操作。 合并树家族 其中MergeTree作为家族中最基础的表引擎,提供了主键索引、数据分区、数据副 本和数据采样等所有的基本能力,而家族中其他的表引擎则在MergeTree的基础之 上各有所长。 MergeTree的名称由来 MergeTree在写入一批数据时,数据总会以数据片段的形式写入磁盘,且数据 片段不 型YYYYMMDD格式,则直接按照该整型的字符形式 输出作为分区ID的取值。 l 使用日期类型 如果分区键取值属于日期类型,或者是能够转 换为YYYYMMDD日期格式的整型,则使用按照 YYYYMMDD日期格式化后的字符形式输出作为分区 ID的取值。 l 使用其它类型 如果分区键取值既不属于整型,也不属于日期 类型,例如String、Float等。则通过128位Hash 算法取其Hash值作为分区ID的取值。 8192 索引数据的生成规则 依照索引粒度生成索引,紧凑存储,惜字如金。 PRIMARY KEY ID 索引的查询过程 假如现在有一份测试数据,共192行记录。其中,主键ID为String类型, ID的取值从A000、A001、A002,按顺序增长,直至A192为止。 MergeTree的索引粒度index_granularity = 3。 索引的查询过程 MergeTree会将此数0 码力 | 35 页 | 13.25 MB | 1 年前3 2. ClickHouse MergeTree原理解析-朱凯区、数据副本和数据采样这些特 性,同时也只有此系列的表引擎支持ALTER相关操作。 合并树家族 其中MergeTree作为家族中最基础的表引擎,提供了主键索引、数据分区、数据副 本和数据采样等所有的基本能力,而家族中其他的表引擎则在MergeTree的基础之 上各有所长。 MergeTree的名称由来 MergeTree在写入一批数据时,数据总会以数据片段的形式写入磁盘,且数据 片段不 型YYYYMMDD格式,则直接按照该整型的字符形式 输出作为分区ID的取值。 l 使用日期类型 如果分区键取值属于日期类型,或者是能够转 换为YYYYMMDD日期格式的整型,则使用按照 YYYYMMDD日期格式化后的字符形式输出作为分区 ID的取值。 l 使用其它类型 如果分区键取值既不属于整型,也不属于日期 类型,例如String、Float等。则通过128位Hash 算法取其Hash值作为分区ID的取值。 8192 索引数据的生成规则 依照索引粒度生成索引,紧凑存储,惜字如金。 PRIMARY KEY ID 索引的查询过程 假如现在有一份测试数据,共192行记录。其中,主键ID为String类型, ID的取值从A000、A001、A002,按顺序增长,直至A192为止。 MergeTree的索引粒度index_granularity = 3。 索引的查询过程 MergeTree会将此数0 码力 | 35 页 | 13.25 MB | 1 年前3
 4. ClickHouse在苏宁用户画像场景的实践60 时长 结论: • 整形值精确去重场景,groupBitmap 比 uniqExact至少快 2x+ • groupBitmap仅支持整形值去重, uniqExact支持任意类型去重。 • 非精确去重场景,uniq在精准度上有优势。 5 0.25 0.46 0.29 0 0 0 0.05 0.1 0.15 0.2 0.25 Bitmap Container 0 1 1 0 ① ② ③ ④ ClickHouse集成RoaringBitmap Bitmap字段类型,该类型扩展自AggregateFunction类型,字段类型定义: AggregateFunction( groupBitmap, UInt(8|16|32|64)) 参考: https://clickhouse.y 回最终结果 -MergeState:将中间计算结果迚行合幵计算,返回合幵后的中间结果 ClickHouse集成RoaringBitmap Bitmap的运算函数集:  构造Bitmap类型  Bitmap自身戒者之间的位运算  Bitmap不Array双向转换 Bitmap bitmapToArray Array Integer bitmapBuild0 码力 | 32 页 | 1.47 MB | 1 年前3 4. ClickHouse在苏宁用户画像场景的实践60 时长 结论: • 整形值精确去重场景,groupBitmap 比 uniqExact至少快 2x+ • groupBitmap仅支持整形值去重, uniqExact支持任意类型去重。 • 非精确去重场景,uniq在精准度上有优势。 5 0.25 0.46 0.29 0 0 0 0.05 0.1 0.15 0.2 0.25 Bitmap Container 0 1 1 0 ① ② ③ ④ ClickHouse集成RoaringBitmap Bitmap字段类型,该类型扩展自AggregateFunction类型,字段类型定义: AggregateFunction( groupBitmap, UInt(8|16|32|64)) 参考: https://clickhouse.y 回最终结果 -MergeState:将中间计算结果迚行合幵计算,返回合幵后的中间结果 ClickHouse集成RoaringBitmap Bitmap的运算函数集:  构造Bitmap类型  Bitmap自身戒者之间的位运算  Bitmap不Array双向转换 Bitmap bitmapToArray Array Integer bitmapBuild0 码力 | 32 页 | 1.47 MB | 1 年前3
 ClickHouse在B站海量数据场景的落地实践Future Work Future Work v ClickHouse集群容器化,提升物理集群资源使⽤率 v ClickHouse倒排索引调研与改造,提升⽇志检索性能 v 丰富ClickHouse编码类型,拓展zorder应⽤场景,提升圈选计算性能 v ClickHouse存算分离探索,降低集群扩容成本 Q&A0 码力 | 26 页 | 2.15 MB | 1 年前3 ClickHouse在B站海量数据场景的落地实践Future Work Future Work v ClickHouse集群容器化,提升物理集群资源使⽤率 v ClickHouse倒排索引调研与改造,提升⽇志检索性能 v 丰富ClickHouse编码类型,拓展zorder应⽤场景,提升圈选计算性能 v ClickHouse存算分离探索,降低集群扩容成本 Q&A0 码力 | 26 页 | 2.15 MB | 1 年前3
 2. Clickhouse玩转每天千亿数据-趣头条我们遇到的问题 order by (timestamp, eventType) or order by (eventType, timestamp) 业务场景 1:趣头条和米读的上报数据是按照”事件类型”(eventType)进行区分 2:指标系统分”分时”和”累时”指标 3:指标的一般都是会按照eventType进行区分 select count(1) from table where dt=''0 码力 | 14 页 | 1.10 MB | 1 年前3 2. Clickhouse玩转每天千亿数据-趣头条我们遇到的问题 order by (timestamp, eventType) or order by (eventType, timestamp) 业务场景 1:趣头条和米读的上报数据是按照”事件类型”(eventType)进行区分 2:指标系统分”分时”和”累时”指标 3:指标的一般都是会按照eventType进行区分 select count(1) from table where dt=''0 码力 | 14 页 | 1.10 MB | 1 年前3
共 5 条
- 1













