问题标签 [hyperloglog]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
43 浏览

search - 使用逻辑表达式的组合过滤大量数据

我有大量数据表示为(例如)-

用户名 | 性别 | 位置 | 用户类型

根据用例,可能会有更多列。该位置由密码表示。

我最近阅读了有关 HyperLogLog 和 Redis 实现的信息。因此,例如,我可以方便地统计男性用户或某种“类型”的用户,我可以合并这些超级日志集来回答以下问题 -

男性和 A 类型的唯一用户数

问题是当我必须处理像位置这样的列时。我无法为每个可能的密码存储集合。所以像这样的问题 -

属于密码 A 和 B 的男性唯一用户数

用这种方法很难回答。

使用 HyperLogLog 或 redis 不是约束。只要能解决问题,我愿意使用任何可用的工具。

0 投票
1 回答
48 浏览

apache-spark - 如何提高计算聚合的性能?

我试图解决的问题似乎微不足道。我收集了大量的事件(实际上它们来自移动应用程序,所以它们是移动事件)。每个事件由几个属性描述:

我将这些事件存储在 hdfs 上,我要解决的问题是允许用户近乎实时地分析这些事件。通过分析,我的意思是能够只选择特定的列、有趣的日期范围,并查看有多少事件来自不同的手机型号。例如,假设我有以下数据集:

让我们还假设用户想要从 2015 年 7 月开始查找来自不同手机的事件数量。他正在寻找的答案如下所示:

因为事件的数量很大,我试图计算聚合并将它们存储在 cassandra 中。每天计算聚合,在前面的示例数据集中,我的聚合看起来像这样:

问题是它们仍然太多。我仍然需要 spark 来运行按需任务来汇总请求日期范围内的聚合。它很慢,需要大量的网络传输。我阅读了很多关于 HyperLogLog 和其他类似算法的信息,但我不知道如何在这里使用它们。我并不关心确切的结果,估计对我来说非常好。谁能建议我能做什么?

0 投票
3 回答
243 浏览

algorithm - 快速估计项目数量超过给定阈值的方法?概率数据结构?

我有一个很大的值列表,从 0 到 100,000 范围内(为了清楚起见,这里用字母表示)。每个输入中可能有几千个项目。

我想找到计数超过某个阈值的数字计数。例如,如果阈值为 3,则答案为{a: 4, b: 5}

显而易见的方法是按身份分组,计算每个分组,然后过滤。

这是一个与语言无关的问题,但在 Clojure 中(如果您不了解 Clojure,请不要推迟!):

这个函数运行在非常多的输入上,每个输入都非常大,所以分组和过滤是一个昂贵的操作。如果输入永远不能产生超过给定阈值的任何输出或以其他方式划分问题空间,我想找到某种保护函数,该函数将提前返回。例如,最简单的是if the size of the input is less than the size of the threshold return nil.

我正在寻找一个更好的保护函数,如果输入不能产生任何输出,它将跳过计算。或者一种更快的方式来产生输出。

显然,它必须比分组本身便宜。一个很好的解决方案涉及通过不同的输入集对输入进行计数,但最终与分组一样昂贵......

我有一个想法,概率数据结构可能是关键。有任何想法吗?

(我标记了 hyerloglog,虽然我认为它不适用,因为它不提供计数)

0 投票
1 回答
105 浏览

azure - 如何将 hyperloglog 密钥迁移到 azure redis

我正在尝试使用MIGRATE命令将 redis hyperloglog 密钥从一台服务器迁移到 azure redis 服务,但据我所知,MIGRATE 不支持将密钥移动到需要身份验证的 redis 服务器

那我该如何迁移 hyperlolog 密钥?

0 投票
2 回答
745 浏览

bigdata - 为什么 Hyperloglog 有效,哪些实际问题?

我知道 Hyperloglog 是如何工作的,但我想了解它真正适用于哪些实际情况,即使用 Hyperloglog 是否有意义,为什么?如果您曾用于解决任何现实世界的问题,请分享。我正在寻找的是,考虑到 Hyperloglog 的标准错误,它今天真正在哪些实际应用程序中使用,为什么它会起作用?

0 投票
1 回答
124 浏览

testing - 你如何测试 Hyperloglog 的实现?

那里有很多 Hyperloglog 实现,但是您如何验证/测试 Hyperloglog 实现?要检查它的“准确性”,它是“错误”绑定行为吗?只是扔一些静态测试用例看起来很无效。

更具体地说,有人改变了随机数例程,我怎么知道这不是一个灾难性的选择,并通过一些自动化的、可重复的测试来展示?

谁能指出我在 github 或其他地方的任何已知的良好测试,并且可能是一些解释?

0 投票
1 回答
309 浏览

redis - Redis Hyperloglog 限制

我正在尝试使用 Redis Hyperloglog 以一种骇人听闻的方式解决问题,但我想了解的是 Hyperloglog 对数据或分布的限制和假设。

count-min 和bloom 过滤器有自己的一组限制,但谷歌在提供有关Hyperloglog 应用程序和限制的大量信息方面没有帮助。

我正在使用 Redis Hyperloglog,正如Antirez所描述的那样there are no practical limits to the cardinality of the sets we can count.但是从理论的角度来看,Hyperloglog 是否对数据或分布做出任何假设/约束?

0 投票
1 回答
341 浏览

cassandra - 一个商店如何大规模存储独特的“喜欢”或“视图”或设置?

我想深入了解各种公司如何解决计数/增加“喜欢”/“视图”/“转推”或类似的东西的数量。

在每月超过 5000 万活跃用户的用户群中,我看到 Redis 和 Cassandra 都用于存储用户 ID 集以快速检索集基数(例如查看者计数)。这些解决方案有一些缺陷,但效果很好,可以并且正在被扩展。但是,我很好奇其他商店在这种情况下使用什么。

具体来说,做解决方案:

  • 使用集合,或其他数据结构,或者只是简单的键值?
  • 确切或近似计数,?
  • 仅在内存中,还是混合?
  • 开源解决方案,还是自产自销?
  • 有没有人构建了一个轻量级的仅集存储系统,并在其之上进行了 hyperloglog 估计?
0 投票
1 回答
1153 浏览

python - 如何得到一族独立的通用散列函数?

我正在尝试使用随机平均来实现 hyperloglog 计数算法。为此,我需要许多独立的通用散列函数来散列不同子流中的项目。

我发现hashlib中只有几个哈希函数可用, 我似乎没有办法提供种子或其他东西?我正在考虑为不同的子流使用不同的盐。

0 投票
1 回答
347 浏览

algorithm - 逻辑集操作的基数近似——(AND/OR/XOR 的“HyperLogLog”)

我们目前面临一个有趣的问题。我们想估计一个集合的基数,而不需要存储每个项目(通常位图/位集是一个不错的方法)。一个非常好的算法是所谓的 HyperLogLog 随机算法(在此处查看更多信息http://antirez.com/news/75)。

这里的问题是,您只能将集合合并为UNIONs,所以基本上它是一个OR组合。

实际上,我们不仅希望将集合与 OR 组合,还希望与 AND 组合。我们甚至想结合这些操作。

示例: set1 AND (set2 OR set3) OR (set4 AND set5)

每个集合可能具有数百万范围内的基数。每个值的大小为 128 位。

每个集合都可以以任何方式表示,例如“HLL、布隆过滤器、普通列表或这些的组合”。该算法必须使用可行的空间量在尽可能短的时间内执行。

有任何想法吗?