#sql #amazon-redshift
#sql #amazon-redshift
Вопрос:
Существует отдельный запрос к одной таблице
select distinct d, e, f, a, b, c from t where a = 1 and e = 2;
Количество различных значений в столбцах a, b, c велико (высокая мощность столбца), а столбцы d, e, f являются столбцами с низкой мощностью. Мои данные находятся в формате ORC в S3, и у меня есть внешняя таблица в Athena и Redshift spectrum, указывающая на один и тот же файл.
При выполнении вышеуказанного запроса в athena он возвращается через пару секунд, тогда как в redshift spectrum это занимает пару минут.
Но когда я перемещаю столбец f в конец списка выбора, он также отлично работает в спектре красного смещения. Это происходит только для этого конкретного столбца, я имею в виду, что перемещение d или e в конце не имеет никакого значения, т. Е. Они выполняются дольше. Столбец f является столбцом varchar, как и другие, и максимальная длина этого столбца составляет 30 байт.
Два вопроса
-
(a) Любая информация или указания на особое поведение, при котором перемещение столбца f в конец списка ускоряет его выполнение, в то время как размещение его между ними замедляет
-
(b) Существует ли рекомендуемая наилучшая практика SQL для перечисления столбцов в порядке убывания мощности столбца в операторах distinct или group by? Имеет ли значение время выполнения, если столбцы меньшей мощности помещаются первыми или если они расположены в смешанном порядке?
Комментарии:
1. Связанные: cybertec-postgresql.com/en/speeding-up-group-by-in-postgresql (это для Postgres, но может применяться и к Redshift)
2. Спасибо, поэтому предлагается сначала поместить отдельные столбцы, что приводит к более быстрым результатам.
3. ведет ли себя «group by» вместо использования distinct одинаково?
Ответ №1:
Обновление вашего драйвера Redshift до последней версии обычно может привести вашу скорость Redshift Spectrum почти в соответствие с Athena.
https://docs.aws.amazon.com/redshift/latest/mgmt/configure-jdbc-connection.html#download-jdbc-driver
Возможно, это не причина в вашем случае использования, но определенно стоит попробовать!
Комментарии:
1. Спасибо, Джон, я использую последнюю версию драйвера, но это не помогает. Проблема возникает даже с локальными таблицами красного смещения, а не только с redshift spectrum.