Amazon Redshift Foreign Keys - сортировка или чередование ключей - PullRequest
0 голосов
/ 26 мая 2018

Мы планируем импортировать OLTP-реляционные таблицы в AWS Redshift.Таблица CustomerTransaction объединяется с несколькими таблицами поиска.Я включил только 3, но у нас есть больше.

Каким должен быть ключ сортировки в таблице транзакций клиента?На обычном сервере SQL у нас есть некластеризованные индексы по внешним ключам в таблице CustomerTransaction.Для AWS Redshift, должен ли я использовать составные ключи сортировки или чередующуюся сортировку по столбцам внешнего ключа в CustomerTransaction?Какова лучшая стратегия индексации для этой таблицы?Спасибо,

create table.dbo CustomerTransaction
{
    CustomerTransactionId bigint primary key identity(1,1),
    ProductTypeId bigint,   -- foreign keys to Product Type Table
    StatusTypeID bigint         -- Foreign keys to StatusTypeTable
    DateOfPurchase date,
    PurchaseAmount float,
    ....
}

create table dbo.ProductType
{
    CustomerTransactionId bigint primary key identity(1,1),
    ProductName varchar(255),
    ProductDescription varchar(255)
    .....
}

create table dbo.StatusType
{
    StatusTypeId bigint primary key identity(1,1),
    StatusTypeName varchar(255),
    StatusDescription varchar(255)
    .....

}

1 Ответ

0 голосов
/ 26 мая 2018

Общие правила:

  • Установите DISTKEY на основе того, что вы обычно GROUP BY
  • Установите SORTKEY на основе того, что вы обычно используете вWHERE операторов
  • Избегайте чередующихся сортировочных ключей (они оптимальны только в редких случаях и требуют частых VACUUM)

Из Выберите лучший стиль распространения - Amazon Redshift:

  • Распределить таблицу фактов и одну таблицу измерений по их общим столбцам
  • Выберите наибольшее измерение на основе размера отфильтрованного набора данных
  • Выберите столбец с большим количеством элементов в отфильтрованном наборе результатов
  • Измените некоторые таблицы измерений, чтобы использовать ВСЕ распределение

Таким образом, нелегко рекомендовать конкретные DISTKEY и SORTKEY потому что это зависит от того, как вы используете сказки .Простого просмотра DDL недостаточно для того, чтобы порекомендовать лучший способ оптимизации таблиц.

Другие ссылки:

...