Database 如何在Google Bigtable中聚合行

Database 如何在Google Bigtable中聚合行,database,google-cloud-platform,google-cloud-bigtable,bigtable,Database,Google Cloud Platform,Google Cloud Bigtable,Bigtable,我需要在Google Bigtable中保存错误日志。每个日志都属于一个表示任何类型服务的项目。需要支持以下查询 获取给定开始日期和结束日期之间的所有唯一错误,以及它们发生的次数。顺序应该是降序的,以便最新的错误排在第一位。例如,有三个错误。其中两个相似,只是发生在不同的时间。相应的查询应返回两个错误,而其中一个错误的计数为2,表示其错误发生了两次 每个错误都有一个指纹,它是错误消息和堆栈跟踪的散列 选择: 我现在想知道如何设计行键来执行上面提到的查询 a)使用项目ID和指纹。 反向投影#指纹

我需要在Google Bigtable中保存错误日志。每个日志都属于一个表示任何类型服务的项目。需要支持以下查询

获取给定开始日期和结束日期之间的所有唯一错误,以及它们发生的次数顺序应该是降序的,以便最新的错误排在第一位。例如,有三个错误。其中两个相似,只是发生在不同的时间。相应的查询应返回两个错误,而其中一个错误的计数为2,表示其错误发生了两次

每个错误都有一个指纹,它是错误消息和堆栈跟踪的散列

选择: 我现在想知道如何设计行键来执行上面提到的查询

a)使用项目ID和指纹。

反向投影#指纹

如果出现新错误,它将检查是否已经存在类似错误,并在适当的情况下增加其计数。否则,它将创建一个计数为1的新行。另一方面,我不知道如何提供降序

b)将每个错误存储在单独的行中。

reversed_projectd#reversed_时间戳

这将解决降序的问题,但不会聚合类似的错误。例如,如果有人希望查看给定时间范围内的所有唯一错误,并且该范围包含(例如)四个唯一错误,但每个错误发生了50000次,则我需要对200.000行执行行扫描,并在服务器上聚合它们

有没有人对可能的解决方案有想法?非常感谢。

您可以查看这篇文章,其中讨论了云错误报告中的日志条目格式,并提供了示例。这将帮助您为使用MutateRow API请求构建数据。如果您希望以后在新创建的数据库上利用BigQuery的功能,可以参考以下内容