【问题标题】:Keen.io compute over limited data setKeen.io 计算有限数据集
【发布时间】:2018-01-29 20:46:06
【问题描述】:

所以,我已经开始在一个包含大约 170,000 个事件的数据集上编写一些基本的计算查询,每个事件最多可能有 10 个属性。

仅通过测试,我们就已经查询了大约 6 亿个属性,尽管其中大多数查询都是针对我自己的本地数据,只存储了少数事件,所以我猜测计算查询正在运行所有 170k 事件,而不是 50-100 过滤结果集。

有没有办法在过滤后的数据集上运行计算查询?我应该(例如)为每个用户分配他们自己的 event_collection 还是什么?

【问题讨论】:

    标签: analytics keen-io


    【解决方案1】:

    注意:我是 Keen IO 的平台工程师和架构师。

    简短的回答是:不,除了减少要查询的集合中的事件数量和时间范围之外,没有直接的方法来过滤您需要付费的事件。

    基于properties scanned 的敏锐账单。您可以点击链接了解详细信息,但简短版本是: Properties Scanned = [# of events matching collection and timeframe] * [# of properties needed to evaluate your query]`.

    在某些情况下,将事件分成不同的集合实际上可能是一个合理的解决方案。但要小心,因为这样做有效地消除了评估跨越多个/所有集合的查询的能力。如果您愿意重复写入每个事件,则一种选择是写入一个全局集合和一个每个 ID 的集合(或您想要“索引”的任何内容)。这种非规范化可能会带来一些其他的复杂情况,就像非规范化一样,但它确实有可能显着减少您的计算使用量。

    (无论如何,这是我们注意到许多客户最近开始遇到的一个摩擦点。我们正在积极寻找为“二级索引”添加某种本机支持以直接解决此问题的选项在产品中。但不幸的是,我现在不能承诺任何特定的功能/时间表。)

    要指出的另一件事是,在某些情况下,您可以使用 Keen 的 Cached Datasets 功能获得一个很好的解决方案,该功能有效地为某些索引属性的每个观察值预先计算查询结果。这是一个更高级的功能,但在适当的情况下,它可以在成本、速度和简单性方面显着优于其他选项。

    最后:如果您需要更详细的帮助来找出解决问题的最佳技术方法,team@keen.io 是一个很好的资源。希望对您有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-02
      • 2013-01-26
      • 1970-01-01
      • 1970-01-01
      • 2017-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多