Подсчет данных в Афине не верен - PullRequest
0 голосов
/ 12 марта 2020

У меня есть таблица, как описано в прикрепленном изображении . Его данные поступают из Firehose (максимальные буферы: 128 МБ или 900 секунд)

  • Когда я пытаюсь выполнить простой подсчет, он возвращает неудобное число, 296! хотя размер отсканированных данных огромен, 12 ГБ, по сравнению с 5 КБ для каждой записи в этом наборе данных

  • Когда я пытаюсь загрузить и обработать этот набор данных в Glue Job, он возвращает ожидаемое количество: 1778072

Интересно, причина была в поле request_query с типом array<string>

Поскольку задание используется для фактического рабочего процесса, существует ' Иногда я хочу запросить только базовые c данные, такие как ip, http_user_agent, ... и этой схемы достаточно для этих задач, без необходимости написания другого сценария задания и ожидания его успешного выполнения

Надеюсь, что есть какие-то способы решить это

* РЕДАКТИРОВАТЬ

Я работаю с консоли Athena. Вот несколько примеров запросов:

SELECT count(case when request_api = 'collections' then 1 end)
FROM "request_events"
where event_day = '2020-03-01'
and tenant_id = 'devsite.com'

SELECT request_api, count(*)
FROM "request_events"
where event_day = '2020-03-01'
and tenant_id = 'devsite.com'
group by request_api
  • РЕДАКТИРОВАТЬ 2

Прикрепленный файл для данных образца из 12 записей, которые я протестировал, и результат был 1 запись

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...