2023 年 1 月 18 日,微软举办了一次 ClickHouse 社区聚会,WebXT 团队在聚会上展示了他们使用 ClickHouse 的两款分析产品:Titan 和 Microsoft Clarity。该团队分享了他们如何能够在几秒钟内分析 PB 级数据,以及如何只需点击几下即可创建自定义仪表盘。
数据和分析高级总监 Satish Manivannan 介绍了这两款产品,并讨论了 Titan 的愿景,Titan 的目标是为微软数千名员工提供自助式分析服务。
Titan:微软的自助式分析工具
WebXT 拥有微软一些最大的 Web 属性,包括 Edge 浏览器、必应搜索、MSN、微软广告、地图等。这些 Web 属性会生成 PB 级数据,分析对于其成功至关重要。
WebXT 团队开发了 Titan,这是一种内部数据分析工具,它能够以高效且灵活的方式实现自助式交互式数据分析。Titan 已经开发了 2 年半,每月有超过 2500 人使用,每天接收超过 10 万个查询。
该团队选择 ClickHouse 为他们的分析解决方案提供支持,并结合使用 Apache Superset 作为数据可视化工具。ClickHouse 和 Superset 都是开源技术,Manivannan 解释了他们如何认为这是一种竞争优势。“我们不仅为微软技术做出贡献,而且我们非常拥抱开源社区,这样我们才能更好地与我们的竞争对手竞争。当然,我认为我们在 ClickHouse 等其他解决方案中发现了宝藏”,Manivannan 说。
历史上,该团队一直在使用内部和第三方分析工具的组合。切换到 ClickHouse 为团队节省了数百万美元的许可费用。“我们使用了 Adobe Analytics,还有 Interana,它被称为 Scuba。” Manivannan 解释说,这些工具运行良好,但他们的需求不断增加。“我们需要一些我们可以内部构建的东西,这样我们才能更快地创新,跟上团队正在进行的创新步伐。”
Titan 为数千名微软员工提供交互式分析,取代了 Adobe Analytics 等第三方工具,节省了数百万美元。
Titan 的高级需求
Titan 的主要目标是提供自助式分析,响应时间在几秒钟内。这将使人们能够以交互方式对数据进行切片和切块,并将其保存为仪表盘。该工具还需要允许自定义指标、过滤器和列。高级分析(如用户分析、队列分析、A/B 测试和灵活的数据保留)也是重要的需求。Manivannan 讨论了自由格式查询分析的挑战,并强调了对可扩展、高性能和高可用基础设施的需求。
ClickHouse 被选中用于 Titan,因为它满足了所有高级需求。
Manivannan 解释说,ClickHouse 是这些需求中许多需求的绝佳选择,因为它速度快且具有成本效益。“ClickHouse 符合这些条件中的很多。它肯定很快。我们还做了一些自定义优化。所以我们的主要口号是,更快更便宜......ClickHouse 发挥了重要作用,满足了我们各种数据需求。”
他还强调了 ClickHouse 中的内置遥测,这使得监控数据使用和存储更加容易。
Titan 平台包括数千个仪表盘,用于跟踪 KPI、自定义问题构建、用户分析功能和 A/B 测试功能。
ClickHouse 作为 Titan 的数据引擎
WebXT 团队的首席软件工程经理林唐介绍了 Titan 架构的高级概述,该架构包括数据源引擎、API 和由 Superset 提供支持的交互式可视化。数据源引擎有三个主要输入:Cosmos、Azure 和实时流式场景。
必应拥有大量多样化且昂贵的查询,它拥有包含数百台机器的集群,以支持查询需求。ClickHouse 用作数据引擎,他们设置了多个集群,使用 ZooKeeper 来管理 ClickHouse 集群。
Titan 架构,包括数据源引擎、API 和由 Superset 提供支持的交互式可视化。
该 API 用于提供身份验证,并避免向后端数据库发送大量请求。他们还查询微软内部 API 以获取有关实验场景的信息。为了避免将每个查询都发送到后端数据库,他们实施了缓存,在负载较低的时间段内预先缓存数据,并在自定义仪表盘上立即显示数据。
唐随后讨论了他们如何使用查询构建器和可视化工具(包括一个允许用户轻松地在采样数据和原始数据之间切换的采样功能)对 Superset 进行定制。
ClickHouse 的优化技术
此次演讲还涵盖了围绕 ClickHouse 的优化,包括一个近实时管道,用于收集来自生产服务的信号,以及一个内置的查询优化器,用于提高查询性能。Joiner Optimizer 被实施来解决大数据联接的挑战,从而使查询性能提高了 10 倍。条件优化器通过首先执行“where”操作来预先选择条件,从而减少数据大小并提高处理速度。时区优化器首先选择数据范围,然后应用时间戳,这使得查询性能得到了显著提升。
使用 ClickHouse 的 Titan 近实时数据管道。
他们还讨论了存储效率,需要优化存储以提高性能。唐解释说,Titan 使用基于角色的返回和删除来跟踪需要删除的数据,确保高效删除而不会影响系统性能。他们还讨论了 ClickHouse 的丰富编码选项,发现 ZSTD 尽管查询性能较慢,但可以为某些表格节省 50% 的存储空间。
在微软举办的 ClickHouse 社区聚会上,与会者深入了解了基于 ClickHouse 的 Titan 和 Microsoft Clarity 的成功实施案例。活动强调了数据对微软成功的重要性,并展示了自助分析如何为公司创造价值。
更多详情
- 本次演讲于 2023 年 1 月 18 日在微软雷德蒙德办公室举行的 ClickHouse 社区聚会 上发表。
- 了解更多关于 ClickHouse 如何在 Microsoft Clarity 中使用的信息,Microsoft Clarity 是一个免费的网站行为分析产品,供网站所有者使用,请查看我们的 聚会报告。