Итак, обо всем по порядку - вы говорите, что обработка данных «медленная и неэффективная», и спрашиваете, как эффективно запросить большую базу данных. Сначала я посмотрю, как улучшить этот процесс. Вы указываете, что процесс основан на данных за последние 30 дней - выполняется ли сортировка, очистка и анализ больших таблиц по времени? При работе с большими таблицами важно максимально использовать преимущества метаданных. Убедитесь, что ваши предложения where эффективны при устранении блока таблицы фактов - не полагайтесь на предложения таблицы измерений where для выбора диапазона дат.
Затем посмотрите на свои ключи распределения и на то, как они влияют на потребность в ваших критических запрос для перемещения больших объемов данных по сети. Сеть междоузлий имеет самую низкую пропускную способность в кластере Redshift, и ненужная передача большого количества данных через нее сделает работу медленной и неэффективной. Использование ЧЕТНОГО распределения может снизить производительность в зависимости от вашего шаблона запроса.
Теперь позвольте мне перейти к вашему вопросу и перефразировать - «что лучше: использовать сводные таблицы, материализованные представления или внешнее хранилище (источник данных tableau) для хранения сводных данных, обновляемых ежечасно?» Все 3 работают и у каждого есть свои плюсы и минусы.
- Сводные таблицы хороши тем, что вы можете выбрать распределение хранилища данных, и если эти данные необходимо объединить с другими таблицами базы данных, это можно сделать наиболее эффективно. Тем не менее, требуется больше управления данными, чтобы поддерживать эти данные в актуальном состоянии и синхронизировать c.
- Материализованные представления хороши тем, что гораздо меньше действий управления, о которых нужно беспокоиться - при изменении данных , просто обновите sh вид. Данные все еще находятся в базе данных, поэтому их легко объединить с другими таблицами данных, но, поскольку у вас нет контроля над хранением данных, это действие может быть не самым эффективным.
- Внешнее хранилище хорошо данные находятся в вашем инструменте бизнес-аналитики, поэтому, если вам нужно повторно получить результаты в течение часа, данные будут локальными. Однако он не привязан к вашему инструменту бизнес-аналитики и гораздо менее эффективен для объединения с другими таблицами базы данных.
Сводные данные обычно не такие большие, поэтому то, как они хранятся, не вызывает большого беспокойства, и я немного ленив, поэтому я бы go использовал материализованное представление. Как я уже сказал в начале, я сначала посмотрю на «медленные и неэффективные» запросы, которые выполняю каждый час.
Надеюсь, это поможет