2016-09-14 9 views
2

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

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.

ответ

2

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

1

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

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

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

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