Наши данные хранятся в S3 как JSON без разделов. До сегодняшнего дня мы использовали только Athena, а теперь попробовали Redshift Spectrum.
Мы выполняем один и тот же запрос дважды. Один раз использовали Redshift Spectrum и один раз использовали Athena. Оба подключаются к одним и тем же данным в S3.
При использовании Redshift Spectrum для выполнения этого отчета требуется бесконечно (более 15 минут), а при использовании Athena — всего 10 секунд.
Запрос, который мы выполняем в обоих случаях в консоли aws, таков:
SELECT "events"."persistentid" AS "persistentid",
SUM(1) AS "sum_number_of_reco"
FROM "analytics"."events" "events"
GROUP BY "events"."persistentid"
Есть идеи, что происходит? Спасибо
В этом разница между бессерверными и вашими серверами. Спектр Redshift использует ваш кластер Redshift, размер которого вы можете изменять по мере необходимости, но он, вероятно, меньше, чем парк Athena, который был назначен вашему запросу. — person AJ222 schedule 28.11.2019
Ребята из службы поддержки AWS говорят, что это происходит потому, что у нас много маленьких файлов (поскольку мы используем Kineses Firehose и он создает файл в s3 каждые 5 минут) … — person AJ222 schedule 28.11.2019
Мощность обработки Redshift Spectrum ограничена размером кластера Redshift.
Информацию можно найти на странице Улучшение спектра Amazon Redshift Эффективность запроса
С другой стороны, Athena использует оптимизированный объем ресурсов для запроса, который может быть больше, чем может получить спектр небольшого кластера Redshift.
Это было подтверждено нашим тестированием производительности Redshift Spectrum с различным размером кластера Redshift.