Keen.io 有限的数据集上进行计算



因此,我已经开始为 keen.io 编写一些基本的计算查询,这些查询总共包含大约 170,000 个事件,每个事件最多可能有 10 个属性。

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

有没有办法在筛选的数据集上运行计算查询?我应该(例如)为每个用户分配自己的event_collection或其他东西吗?

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

简短的回答是:否,除了减少集合中的事件数量和要查询的时间范围之外,没有直接的方法可以筛选出需要付费的事件。

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

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

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

需要指出的另一件事是,在某些情况下,您可以使用 Keen 的缓存数据集功能获得良好的解决方案,该功能可以有效地预先计算某些索引属性的每个观测值的查询结果。这是一个稍微高级的功能,但在正确的情况下,它可以在成本、速度和简单性方面比其他选项显着改进。

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

最新更新