Redshift - это распределенное решение для хранения столбчатых данных. Ключ здесь «распределен». В отличие от традиционных баз данных, Redshift предназначен для масштабирования путем добавления узлов в кластер. Добавление узлов добавляет дисковое пространство, а также вычислительную мощность. Чтобы ответить на ваши вопросы -
В общем, да. При хранении данных в Redshift вы должны выбрать ключ распространения (столбец или набор столбцов), который будет равномерно распределять ваши данные по различным узлам. Как общий принцип, вы должны использовать один и тот же набор столбцов для вашего ключа распределения во всех ваших таблицах. Обратите внимание, что таблицы, настроенные на использование стиля распространения для всех, будут реплицироваться по всем узлам; ограничивать использование стиля dist только для таблиц размеров.
Нет; см. ответ на вопрос 1 выше. Существуют различные типы узлов, которые вы можете выбрать в зависимости от вашего требования. DC1 - вычислительные оптимизированные узлы; они имеют меньшие, но более быстрые накопители SSD. Узлы DS1 обеспечат вам значительно большее дисковое пространство на узел.
См. Ответ на вопрос Q1 выше - когда вы добавляете узлы в ваш кластер Redshift, Redshift будет перераспределять ваши данные по всем узлам, как указано в стиле распространения для каждой из ваших таблиц.
PS: Я бы очень рекомендовал прочитать документацию Redshift. Начало в Are You a First-Time Amazon Redshift User?
Ссылки: Choosing a Data Distribution Style
Спасибо! Это действительно объясняет многие мои вопросы. Недавно я попытался использовать ключ распространения (например: домен) для большой таблицы. Когда я попытался объяснить запрос «select * from table_name», таблица с ключом распределения имеет большую ширину, чем обычная таблица. У вас есть идея, почему ..? –
То, что Redshift оценивает как средний размер строки. Попробуйте запустить анализ на столе и посмотреть, изменится ли он на что-то более разумное. – DotThoughts