У меня медленно меняющееся измерение, представляющее все изменения основных данных нашей статьи, и оно довольно обширное: 15 миллиардов строк и растет.
В настоящее время таблица распределена по естественным ансамблям, таким как (страна, поставщик).
Из-за природы таблицы большинство запросов, использующих ее, являются диапазонными соединениями, такими как тривиальный подсчет заказов по изменяющемуся атрибуту статьи:
SELECT x.article_id, x.changing_article_season, COUNT(*) counting_orders
FROM article_slow_changing_dimension x
LEFT JOIN orders y ON x.article_id=y.article_id
AND y.order_timestamp BETWEEN x.from_timestamp AND y.to_timestamp
Что может быть интересной стратегией выбораключа сортировки здесь?Я думал о выполнении SORTKEY (from_timestamp, to_timestamp), но я не уверен.
Я попробовал несколько вещей, но любой тест требует много времени для настройки и на самом деле трудно оценить эмпирически.Любая идея?
РЕДАКТИРОВАТЬ: добавление нескольких деталей на основе комментариев 1 / таблицы пылесосятся 2 / кластер довольно маленький (4 узла) и запрос выполняется довольно быстро, но он не работает, поэтому онв основном только я разработчики запускают несколько запросов.Я хотел бы оптимизировать, прежде чем приступить к производству 3 /, сейчас в нем примерно 15 миллиардов строк, а агрегация для конкретной временной отметки занимает 1 минуту;Но я бы хотел довести это до 20 секунд