首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

秒级去重:ClickHouse在腾讯海量游戏营销活动分析中的应用

导语 | 腾讯内部每日都需要对海量的游戏营销活动数据做效果分析,而活动参与人数的去重一直是一项难点。本文将为大家介绍腾讯游戏营销活动分析系统——奕星,在去重服务上的技术思路和迭代方案,希望与大家一同交流探讨。文章作者:王方晓,腾讯运营开发工程师。 一、背景 奕星 (EAS) 是腾讯内部专注于游戏营销活动分析的系统,在营销活动效果分析中,奕星遇到一个最大的问题就是对活动参与人数的去重,并给出对应的活动号码包。单个营销活动的周期是固定的,但活动与活动之间时间很少会有完全相同的情况。 比如A活动时间是1-10号

04

MPP架构与Hadoop架构是一回事吗?

计算机领域的很多概念都存在一些传播上的“谬误”。MPP这个概念就是其中之一。它的“谬误”之处在于,明明叫做“Massively Parallel Processing(大规模并行处理)”,却让非常多的人拿它与大规模并行处理领域最著名的开源框架Hadoop相关框架做对比,这实在是让人困惑——难道Hadoop不是“大规模并行处理”架构了?很多人在对比两者时,其实并不知道MPP的含义究竟是什么、两者的可比性到底在哪里。实际上,当人们在对比两者时,与其说是对比架构,不如说是对比产品。虽然MPP的原意是“大规模并行处理”,但由于一些历史原因,现在当人们说到MPP架构时,它们实际上指代的是“分布式数据库”,而Hadoop架构指的则是以Hadoop项目为基础的一系列分布式计算和存储框架。不过由于MPP的字面意思,现实中还是经常有人纠结两者到底有什么联系和区别,两者到底是不是同一个层面的概念。这种概念上的含混不清之所以还在流传,主要是因为不懂技术的人而喜欢这些概念的大有人在,所以也并不在意要去澄清概念。“既然分布式数据库是MPP架构,那么MPP架构就等于分布式数据库应该也没什么问题吧。”于是大家就都不在意了。不过,作为一个技术人员,还是应该搞清楚两种技术的本质。本文旨在做一些概念上的澄清,并从技术角度论述两者同宗同源且会在未来殊途同归。

03

面试官: ClickHouse 为什么这么快?

这两种方法中,并没有哪一种严格地比另一种好。运行时代码生成可以更好地将多个操作融合在一起,从而充分利用 CPU 执行单元和流水线。矢量化查询执行不是特别实用,因为它涉及必须写到缓存并读回的临时向量。如果 L2 缓存容纳不下临时数据,那么这将成为一个问题,如果我们要尽量使块的大小足够小,从而 CPU 缓存能够容纳下临时数据。在这个假设下,与其他计算相比,读写临时数据几乎是没有任何开销的(相比后者优点:拆分流水线使得中间数据缓存、获取同时运行的类似查询的中间数据以及相似查询的流水线合并等功能很容易实现,并且矢量化查询执行更容易利用 CPU 的 SIMD 功能)。论文表明,将两种方法结合起来是更好的选择,clickhouse 使用了矢量化查询执行,同时初步提供了有限的运行时动态代码生成。

04
领券