问题标签 [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 回答
451 浏览

android - hyperlog-android 并非所有日志都发送到服务器。如何解决这个问题?

我正在像这样在我的基本应用程序中初始化超级日志

谁能告诉我我在这里做错了什么?

0 投票
2 回答
236 浏览

java - 如何使用 Data Flow runner 从 ApacheBeam 将 hyperLogLog 字段保存到 BigQuery

我需要将 HLL 草图从 ApacheBeam 保存到 BigQuery。

我找到了一些用于 Apache-Beam 的扩展

但我找不到将草图本身保存到 BigQuery 的方法。以后可以通过一段时间滑动将其与合并功能和其他功能一起使用:请参阅此链接

我的代码:

我刚刚找到了如何做,hyperLogLogPlus.cardinality()但是如何编写缓冲区本身,以便我以后可以在 BiGQuery 中运行它的合并功能。

使用hyperLogLogPlus.getBytes也不适用于合并。

0 投票
1 回答
108 浏览

google-cloud-dataflow - 无法从 ApacheBeam sql 调用“ApproximateDistinct.ApproximateDistinctFn”

尝试使用ApproximateDistinct.ApproximateDistinctFnapache beam sql 中的聚合函数,但失败了。

我的 SQL:

我在 Apache-Beam 中调用此查询的代码:

这引发了这个异常:

0 投票
1 回答
127 浏览

python - 不同计数算法

我想知道是否可以通过以下方式进行近似的不同计数:

  1. 我有一个这样的聚合:
  1. 我想知道我是否可以获得以下信息:

换句话说,如果不传递所有值(有太多而且我没有足够的内存来处理它),是否可以为每个特定于区域的行项目传递某种散列(或其他东西),以近似当在多个项目之间相加时,近似的不同计数是多少?或者这是不可能的。

请注意,我不是在寻找 sql 方法,我只是想看看它是否可以传递某种对象/哈希/等。返回每个订单项,然后在多个订单项中建立一个近似的唯一计数。

0 投票
1 回答
216 浏览

google-cloud-platform - Google BigQuery 的 HLL+ 精度

这里描述了使用HLL.INIT(...)和的精度HLL.MERGE(...)

https://cloud.google.com/bigquery/docs/reference/standard-sql/hll_functions

但是,我想知道是否存在基数大小,在该点下 HLL 保证是准确的。例如,如果我有 10 个不同的值,并且我在各个区域将它们“合并”在一起,那么每次都会 100% 准确,还是会受到 HLL 错误范围的影响?换句话说,每个 HLL 级别是否有保证的上限Precision,在该上限下可以保证 100% 的准确度?如果是这样,如何确定每个精度级别?

0 投票
1 回答
219 浏览

algorithm - 在 SQL 之外使用 HLL_COUNT.MERGE

我可以使用以下查询来概括所有不同计数的 HLL 草图:

我得到这样的东西:

在此处输入图像描述

虽然我通常会使用该HLL_COUNT.merge(...)函数来获取总数,例如:

在此处输入图像描述

由于各种原因,我需要做MERGESQL/BigQuery 之外的事情。是否有某种库/开源库,我可以在其中执行以下操作:

是否可以使用 BQ 之外的库以及从中生成的哈希以任何方式执行此操作?

0 投票
1 回答
60 浏览

sql - 可以在 BigQuery 之外进行数据透视吗?

假设我正在寻找构建以下数据透视表:

为此,我可以像这样进行基本聚合:

并得到如下结果:

然后我可以在 BigQuery/SQL 之外“构建结果”(例如在 javascript 甚至 pandas 中)以获得旋转结果。

但是,当这些值不能简单地“加起来”或以某种直接的方式计算时,我会遇到麻烦。例如:

有没有办法在 BigQuery 中获取一个值,以便我们可以在 BigQuery 之外进行此计算?我已经在此处发布了一个先前的问题,您似乎无法使用HLL_COUNT,因为它在外部不可用。[或者是否有其他类型的算法可以用于构建某种可以在 SQL 之外合并的独特草图?]。

或者是否有另一种方法来构建我缺少的数据透视结果(BigQuery 之外)?

更新:上面的例子更多地给出了这个问题的概述。实际的数据透视查询是这样的:在 X 轴和 Y 轴上获取顶级专利国家、BQ 公共数据集中的代码。

0 投票
1 回答
61 浏览

hyperloglog - 基于 HyperLogLog 的使用分析是否符合 GDPR?

背景:我们的服务有遥测系统,想跟踪留存率、有多少用户使用各种功能等。

有两种选择可以处理用户身份信息并符合 GDPR:

  1. 支持根据请求删除用户信息
  2. 将数据保留少于 30 天

选项 #1 难以实施(对于遥测系统)。选项 #2 不允许回答诸如“什么是功能 X 的 6 个月保留期?”之类的问题。

如何获得上述问题的答案的一个想法是每周/每天计算每个功能的 HyperLogLog blob,并将它们永远分开存储。这将允许基于这些 blob 继续合并/dcount/计算保留。

假设任何用户可识别信息在 30 天后消失(在用户帐户被删除后),HyperLogLog blob 是否仍允许跟踪用户(即回答特定用户是否在两年前使用功能 X)?

如果它允许,那么它是不合规的(如果它不允许,并不意味着它是合规的)。

0 投票
1 回答
718 浏览

redis - 如何使 Redis 中的 HyperLogLog 过期?

HyperLogLog占用 12KB 的空间。我在文档中看不到有关何时释放该存储空间的任何内容。

我目前的计划是EXPIRE每次打电话都打电话PFADD,但我找不到太多关于过期 HLL 的讨论,所以我想知道我是否做错了......

我计划使用 HLL 实时计算我网站上的活跃访问者数量。我只想保留过去一小时的计数,释放比这更早的任何东西。

0 投票
1 回答
1169 浏览

count - BigQuery 到 Data Studio :无论所选时间段如何,都显示可靠的 COUNT DISTINCT

在我的 BigQuery 项目中,我存储从 Firebase 集成的事件数据。粒度和维度使得尝试在 Data Studio 中快速呈现原始数据会使报告变得非常缓慢(每页/交互 1-2 分钟)。

然后我开始思考如何在 BigQuery 中创建预聚合表以加快一切速度,但很快意识到 COUNT DISTINCT 指标将是这种方法的问题。让我解释:

以上是网站访问量表。

显然,创建一个预聚合表,如

有一个限制,即计数不能进一步聚合(甚至更少,动态地)以获得总数,因为执行 SUM 将返回 8 个不正确的唯一用户,只有 3 个唯一用户。

在 BigQuery 中,这是通过使用 HLL_COUNT 来解决的,尽管近似值对我来说还可以。

现在到了一个大问题:

如何做同样的事情以使结果可以在 Data Studio 中显示????

HLL_COUNT.EXTRACT 不能作为其中的函数使用,在报告中我总是要记住,日期范围是由用户设置的,但是他喜欢,所以不可能为 ALL存储预先汇总的结果案例...

编辑 1:APPROX_COUNT_DISTINCT

根据 Bobbylank 的回答,我尝试使用 APPROX_COUNT_DISTINCT。但是,我发现这似乎只是将问题移到了底线。我的错没有解释那里有什么。尽管性能可以接受,但我似乎无法将数据源与此计算指标混合。

示例:在显示所选期间的唯一用户数量(现在有效)之后,我还尝试像 Firebase 一样在 Data Studio 中显示平均每用户收入 (ARPU)。

为此,我必须SUM(REVENUE) / APPROX_COUNT_DISTINCT(USER)

显然,REVENUE 可以与预聚合一起使用,并且可以在原始数据中使用。然后我尝试将原始数据与仅包含用户访问的表混合。但是 APPROX_COUNT_DISTINCT 不能在混合数据定义中使用,因为不允许计算指标。

即使尝试将 USER 字段用作具有 Count Distinct 聚合的指标,尽管在分别显示收入和用户计数时返回正确的数字,但当我尝试将它们划分时,问题变成了聚合(将 SUM 或 AVG 应用于该字段,基本上是结果将是每天的 AVG(REVENUE/USERS))。

然后我还尝试将 REVENUE 直接存储在访问表中,但 Data Studio 提醒我无法创建计算指标,我无法在计算字段中混合维度和指标。