Репликация таблицы поиска во все DWU в хранилище данных Azure

Я использую хранилище данных Azure, я новичок в этом. У меня в кластере 60 DWU. Я хочу создать таблицу поиска, содержащую всего 10 строк, и хочу, чтобы она была реплицирована или доступна во всех 60 единицах хранилища данных, а не только в одной. Как мне этого добиться?

CREATE TABLE [src].[lkpTbl](
    [ID] [int] NOT NULL,
    [Description] [varchar](100) NOT NULL
) 
WITH (DISTRIBUTION = REPLICATE);
GO

Приведенный выше код не работает, он не работает с ошибкой: Option 'REPLICATE' is not supported in this version of SQL Server.


person HadoopAddict    schedule 14.09.2016    source источник


Ответы (2)


Хранилище данных SQL Azure в настоящее время не поддерживает реплицируемую таблицу. Доступны только варианты HASH (имя столбца) или ROUND_ROBIN. В этом случае, поскольку это небольшая таблица, используйте ROUND_ROBIN.

person Murshed_MSFT    schedule 26.09.2016

К сожалению, ADW из-за того, как центры обработки данных Azure выделяют ресурсы, архитектурно затрудняет предложение таблиц REPLICATE. Это то, что оценивается на предмет возможного включения в следующие выпуски.

Все текущие методы распределения таблиц (ROUND_ROBIN и HASH) распределяют данные по всем 60 контейнерам хранения, проблема в том, что когда вы используете распределенную таблицу в качестве поиска, будет выполняться задание перемещения данных, которое будет выполняться для использования данных в запрос.

В приведенном выше примере, если вы присоединяетесь к столбцу [ID], вы должны использовать следующее: WITH (DISTRIBUTION = HASH ([ID]));

Однако, если таблица, к которой вы присоединяетесь, не распределена по той же самой таблице присоединения, вы получите задание перемещения данных при выполнении запроса. В качестве альтернативы, если поиск имеет только 1 столбец [Описание], для производительности я бы сказал, что лучше просто денормализовать таблицу фактов и перенести описание в таблицу FACT и оставить соединение с идентификатором.

person Alain Dormehl MSFT    schedule 29.09.2016