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

    Doris数据去重有妙招,在精确与性能之间达成完美平衡

    今天我们就来聊聊Apache Doris在面对这个挑战时提供的两种绝妙解决方案:BITMAP精确去重和HLL近似去重。就像中国功夫讲究刚柔并济,这两种方案各有特色,恰如太极的阴阳两面,完美互补。...传统的去重方案在处理这些数据时往往力不从心,就像用小勺子舀大海。Doris创新性地引入和优化了BITMAP正交计算的概念。...在实际业务中,当数据量达到百亿级别时,查询性能相比传统方案提升了3-5倍。 HLL近似去重:概率统计的艺术之美 统计学告诉我们,在处理海量数据时,有时"差不多"就OK了。...HLL在Doris中的实现精妙绝伦。它的时间复杂度是O(n),空间复杂度仅为O(mloglogn),在保证1-2%误差范围内完成去重统计。...智能选择:如何选对最佳去重方案 数据处理就像武功修炼,没有最好的武功,只有最适合的心法。在实际业务中,BITMAP和HLL各自有最适合的应用场景。让我分享一些实战经验。

    12300

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

    本文将为大家介绍腾讯游戏营销活动分析系统——奕星,在去重服务上的技术思路和迭代方案,希望与大家一同交流探讨。文章作者:王方晓,腾讯运营开发工程师。...比如A活动时间是1-10号,B活动是5-15号,那么如果想分别得到 A 和 B 的去重参与人数,则必须分别开启任务对 A 和 B 在他们所属的时间区间内进行计算去重。...基于此,目前奕星主要是基于 Storm 在单位时间窗口内进行初次去重,以达到降低原始数据量级的目的。...基于实时计算+LevelDB增量去重方案 文件增量去重的方案,运行了一段时间后,就出现了一个很大的问题:就是每日新增的文件量巨大,日均几十万。...比如系统只支持活动整个期间内的去重人数计算,如果想知道活动期间内某一段时间内的去重就无法实现。 另外如果某个活动引入了脏数据后,只能将整个活动的 K-V 结构删除后重跑,非常耗时。

    1.2K108

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

    比如A活动时间是1-10号,B活动是5-15号,那么如果想分别得到 A 和 B 的去重参与人数,则必须分别开启任务对 A 和 B 在他们所属的时间区间内进行计算去重。...基于此,目前奕星主要是基于 Storm 在单位时间窗口内进行初次去重,以达到降低原始数据量级的目的。 ?...基于实时计算+LevelDB增量去重方案 文件增量去重的方案,运行了一段时间后,就出现了一个很大的问题:就是每日新增的文件量巨大,日均几十万。...比如系统只支持活动整个期间内的去重人数计算,如果想知道活动期间内某一段时间内的去重就无法实现。 另外如果某个活动引入了脏数据后,只能将整个活动的 K-V 结构删除后重跑,非常耗时。...在 24 核 96G 内存的机器上,实际测试下来在 1 亿条记录中,精确去重一个参与量为100W 的活动,仅需 0.1 s 不到,而导出这个号码包文件只需要 0.2 s 不到。

    2.6K40

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

    比如A活动时间是1-10号,B活动是5-15号,那么如果想分别得到 A 和 B 的去重参与人数,则必须分别开启任务对 A 和 B 在他们所属的时间区间内进行计算去重。...主要的原因是玩家参与活动的时候是即时参与行为,比如一个玩家来到一个活动页面后,一般是连续将活动中能参与的功能都参与下,不会参与完一个等很久再参与下一个,所以导致同一个玩家的日志时间连续性较高,单位时间窗口内去重后量级会降低很多...基于此,目前奕星主要是基于 Storm 在单位时间窗口内进行初次去重,以达到降低原始数据量级的目的。...基于实时计算+LevelDB增量去重方案 文件增量去重的方案,运行了一段时间后,就出现了一个很大的问题:就是每日新增的文件量巨大,日均几十万。...比如系统只支持活动整个期间内的去重人数计算,如果想知道活动期间内某一段时间内的去重就无法实现。 另外如果某个活动引入了脏数据后,只能将整个活动的 K-V 结构删除后重跑,非常耗时。

    1.7K52

    布隆过滤器(bloom filter)的原理及在推荐去重中的应用

    遇到的问题 在业务中,我需要给每个用户保存1w条浏览记录,之后每一次的返回值都要和历史记录做一个去重,即保证用户不会重复看到同一篇文章....倒是能存下这么多,但是太影响性能了. 2.时间问题 这个需求对即时性要求还是比较高的,用户两次刷新的间隔可能只有几秒钟,在此期间就要完成历史数据的添加以及过滤....布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。...在redis中存储序列化后的布隆过滤器对象,时间为30分钟,30分钟内用户如果再次访问,直接从redis中获取过滤器,然后进行过滤操作. 3....布隆过滤器部分 主要是添加以及查询两个操作,从hbase拿到数据之后,构造过滤器,然后对当前返回的10条内容进行判重.之后将新的10条内容加入过滤器,再次写入redis. 流程图 ?

    2.3K30

    这些年,为了在 Excel 中给序列去重,不知道坑死了多少人

    关于 PowerBI 在 Excel 基础上如何进入,可以参考:这些年,Excel不知道坑死了多少人,你有幸免吗? 本文快速讲述 Excel 序列去重问题。...本文表面在讲解 Excel 序列去重问题,实际在通过一个点问题,让各位老铁看到一个面,一个空间,一个原来你没有思考过的方式,它是我们持续改进的思维模式。...永强问,怎么是 Excel 第二定律,那第一定律,去哪里了?罗叔:在之前的文章找。等下再说。...在本案例中,当去重已经进入透视表后,由于透视表是一个相对独立的系统,很难基于透视表继续写公式,而我们去重的目的就是为了后续参加更多的函数计算,所以,透视表虽然表面上解决了这个问题,但实则切断了计算计算的很多可能...另外,透视表的天然用途是分组汇总计算,并不是去重,这里其实是用到了透视表的分组,而却又不汇总,并不是透视表的设计初衷,这种技巧并没有在微软的主功能线路上,尽量避免。

    2.8K30

    基于 Redis 布隆过滤器实现海量数据去重及其在 PHP 爬虫系统中的应用

    Bloom Filter,Redis 官方提供的布隆过滤器要到 Redis 4.0 提供了插件功能之后才能使用 —— 布隆过滤器会作为一个插件加载到 Redis 服务器中,给 Redis 提供了布隆去重功能...因此,布隆过滤器非常适用于做海量数据的去重,比如一个爬虫系统,需要爬取数百万乃至上千万甚至上亿的链接,当拿到一个链接进行爬取前,先要判断这个链接是否已经爬取过,如果没有才进行爬取,以免浪费系统资源,通过布隆过滤器很容易实现这个功能...运行 sail artisan start:crawl 推送任务到队列,这个时候可以看到 Processed 日志输出,表明布隆过滤器已经介入并进行了去重操作,运行完成后,通过如下命令启动队列处理器进程消费队列...其他使用场景 除了爬虫链接去重之外,布隆过滤器还可以广泛应用于推荐系统去重(比如电商推荐系统排除已购买过的商品)、敏感词过滤系统(敏感词库是否已包含这个敏感词)、垃圾邮件/短信过滤(判断某个邮箱是否是垃圾邮箱...)、避免缓存击穿(将缓存键放到布隆过滤器,避免恶意读取不存在的缓存键对 DB 造成巨大压力)等业务场景,这里就不一一介绍了,有需要的同学可以在自己的系统中使用布隆过滤器去实现。

    2K11

    引以为戒:避免在Set中使用未重写equals和hashCode的引用对象进行去重

    在日常的Java开发中,我们经常会使用Set集合来实现去重操作,确保集合中不含有重复的元素。...然而,如果使用未重写equals()和hashCode()方法的引用对象进行去重,可能会导致意外的行为,最近了在项目中就遇到了这个情况,让我们深入探讨这个问题,并引以为戒,确保正确实现去重操作。...由于HashMap的键是唯一的,所以在HashSet中也不会出现重复的元素,从而实现了集合的去重功能。...这样的行为可能导致Set集合无法正确去重,即使两个对象的内容完全相同,也可能被当作不同的元素存储在Set中。...通过以上文章,希望读者朋友们能够深刻理解Set集合去重原理,并意识到在使用Set集合进行去重时,正确实现equals()和hashCode()方法的重要性,以避免不必要的错误和问题。

    39940

    初学乍练redis:两行shell脚本实现slowlog持久化转储(去重保留历史条目、时间戳格式化)

    但问题并没有这么简单,我们还有以下几个问题需要解决: 将UNIX时间戳转换成普通日期时间表示。 多次get到的条目很可能存在重复,需要进行去重处理。...如前所述,多次get到的条目需要做去重处理。每个慢日志条目由多行组成,其中前三行固定格式,但命令的行数是不定的。...shell在处理文本文件时,一般都是按某些条件逐行去重,面对这种多行整体去重的场景,很自然想到行转列,将每个条目的多行转换成一行,然后在整行去重就容易了。...去重后,再将每个条目的单行转成原始的多行格式化显示。...将前面处理后的输出整行排序去重。

    1.1K20

    django model 条件过滤

    'date': '2018-05-22'} models.PlayUser.objects.filter(**condtions) #4 条件选取 等于 – filter 不等于 – exclude 去重...去掉表里一模一样的数据, models.SpecialGamesBet.objects.all().distinct() 如果需要按某个字段去掉重复的,只有数据库是 PostgreSQL 才支持,其他数据库不支持按字段去重...__iexact 精确 等于 忽略大小写 ilike 'aaa' __contains 包含 like '%aaa%' __icontains 包含 忽略大小写 ilike '%aaa%',但是对于sqlite...__gt 大于 __gte 大于等于 __lt 小于 __lte 小于等于 __in 存在于一个list范围内 __startswith 以...开头 __istartswith 以...开头 忽略大小写...__endswith 以...结尾 __iendswith 以...结尾,忽略大小写 __range 在...范围内 __year 日期字段的年份 __month 日期字段的月份 __day 日期字段的日

    67920

    浏览器的数据存储方法比较

    该 API 不是异步的,这意味着在进行操作时将完全阻塞您的 JavaScript 进程。因此,在它上面运行重操作可能会阻止 UI 渲染。 也存在 SessionStorage API。...WebSQL 需要浏览器使用 SQLite(版本 3.6.19)的特定版本(特定版本),这意味着每当 SQLite 有任何更新或错误修复时,都无法将其添加到 WebSQL 中,否则可能会破坏网络。...性能比较 现在我们已经审查了每种存储方法的特性,让我们深入了解性能比较,重点关注初始化时间、读写延迟和批量操作。 请注意,我们只运行简单的测试,并且对于您在应用程序中的特定用例,结果可能会有所不同。...这里是从第一次能够存储数据所需时间的时间测量结果: 技术 时间(毫秒) IndexedDB 46 OPFS Main Thread 23 OPFS WebWorker 26.8 WASM SQLite...只有键值赋值是可能的,当你需要基于索引的范围内查询数据时,无法高效地使用它。

    13310

    实战干货:从零快速搭建自己的爬虫系统

    (3)任务去重与调度 主要是防止网页的重复抓取,比如 A 中包含了 B 的地址,B 中又包含了返回 A 的地址,如果不做去重,则容易造成爬虫在 A 和 B 间死循环的问题。...但同时也要注意去重的时间窗口,无限期的去重将导致网页内容无法重新爬取被更新。...db 常用的就是 sqlite,shelve 可以用来存储 python 对象,如果你的数据分析也是 python 脚本实现,shelve 无疑可以降低不少解析时间。...scrapy 是不错的爬虫库,或者说是爬虫框架,着重实现了上述的 网页爬取、任务去重调度功能,也提供网页内容分析,不过是 xpath 的形式。...任务调度,pyspider 采用数据库来存储需要的任务,taskid = md5sum( URL ) 为 primary key 保存每个任务链接上次执行的时间以及更新时间,以此方式去重和筛选出可执行的任务

    11.6K41
    领券