У меня есть таблица, как описано в прикрепленном изображении . Его данные поступают из 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
Прикрепленный файл для данных образца из 12 записей, которые я протестировал, и результат был 1 запись