Как агрегировать строки в Google Bigtable - PullRequest
0 голосов
/ 19 марта 2020

Мне нужно сохранить журналы ошибок в Google Bigtable. Каждый журнал принадлежит проекту, который представляет любой вид услуг. Необходимо поддерживать следующий запрос.

Получить все уникальные ошибки между заданной датой начала и окончания с числом их повторений . Порядок должен быть убывающим , чтобы на первом месте были последние ошибки. Например, есть три ошибки. Два из них похожи, они просто произошли в разное время. Соответствующий запрос должен вернуть две ошибки, в то время как одна из них имеет счетчик 2, чтобы указать, что его ошибка произошла дважды.

Каждая ошибка имеет отпечаток пальца, который представляет собой ха sh сообщения об ошибке и стека trace.

Альтернативы:

Теперь мне интересно, как спроектировать ключ строки для выполнения вышеупомянутого запроса.

a) Использование идентификатора проекта и отпечатка пальца .

reversed_projectID#fingerprint

Если возникнет новая ошибка, она проверит, существует ли подобная ошибка, и при необходимости увеличит ее счетчик. В противном случае он создает новую строку со счетчиком 1. С другой стороны, я не вижу, как можно обеспечить порядок убывания.

b) Хранение каждой ошибки в отдельной строке.

reversed_projectID#reversed_timestamp

Это решит проблему с нисходящим порядком, но не объединяет подобные ошибки. Если, например, кто-то хочет увидеть все уникальные ошибки для данного временного диапазона, и этот диапазон содержит, например, четыре уникальные ошибки, но каждая ошибка произошла 50 000 раз, мне нужно выполнить сканирование строк по 200 000 строк и объединить их в сервер.

У кого-нибудь есть идеи для возможного решения? Большое спасибо.

1 Ответ

0 голосов
/ 20 марта 2020

Вы можете ознакомиться с этой документацией , в которой обсуждается формат записи журнала в отчете об ошибках облака, с примерами JSON представления . Это поможет вам структурировать данные для записи в BigTable с использованием запроса MutateRow API. Если вы хотите sh использовать возможности BigQuery во вновь созданной базе данных впоследствии, вы можете обратиться к этому документу .

...