Создание табличных разделов SSAS в SSMS не отражено в решении SSDT

Я использую SSDT для создания своей табличной модели, я создаю таблицу, которую я разбиваю (данные за две недели - 24 раздела в год). См. Ниже.

Разделы

Обычно я готовлю 2 года данных с разделами (имеется в виду 48 разделов). Когда я развертываю модель в службах Analysis Services, я могу получить к ней доступ из SSMS, подключившись к моему экземпляру служб Analysis Services.

Partitions2

У меня вопрос,

Мне удалось создать автоматизированный скрипт, который генерирует XMLA-запрос для создания разделов в SSMS, я выполняю его и вижу создаваемые разделы, однако при возвращении в SSDT и открытии решения эти разделы там не отражаются. . Есть ли способ заставить SSDT читать метаданные из экземпляра служб анализа при повторном открытии решения?

Кроме того, если я продолжу разработку модели в SSDT, как только я разверну ее снова, все изменения, внесенные через SSMS, будут отменены, есть ли способ избежать этого?

Создание разделов вручную в SSDT может быть очень болезненным ... Мне удалось создать скрипт, который его автоматизирует, но не в SSDT

Какие-либо предложения?


person hkravitz    schedule 30.07.2018    source источник


Ответы (2)


Как уже указывал userfl89, любые разделы, которые вы создаете в SSMS, должны быть «перенесены» в ваш проект SSDT, например, с помощью параметра «Импорт с сервера (табличный)» при создании нового проекта. В противном случае вы рискуете потерять разделы (и содержащиеся в них данные) при развертывании из SSDT.

Кроме того, вы можете использовать BISM Normalizer - плагин для Visual Studio - для объединения изменений (например, разделов) обратно и далее между SSDT и развернутой базой данных.

Также есть Мастер развертывания служб Analysis Services, который берет содержимое ваших проектов \ bin \ folder и позволяет выполнять развертывание в базе данных, указывая, что вы не хотите перезаписывать существующие разделы.

Наконец, если вы еще этого не сделали, я бы порекомендовал взглянуть на Табличный редактор. Это альтернатива SSDT для разработки модели, поэтому, конечно, потребуется некоторое обучение, но хорошая новость заключается в том, что вы можете сделать частичное развертывание, чтобы не повлиять на разделы в уже развернутой базе данных.

введите описание изображения здесь

person Dan    schedule 13.08.2018

База данных, к которой вы обращаетесь в SSDT, - это база данных вашей рабочей области. База данных рабочей области по сути является локальной копией табличной модели. Разделы, которые вы добавили в модель в SSMS, были созданы, база данных рабочей области просто не синхронизирована. Вы можете перезаписать базу данных рабочей области текущей версией модели, удалив / переместив файлы, используемые в локальном проекте SSAS, затем создав новый проект служб Analysis Services в SSDT и используя параметр «Импорт с сервера (табличный)», а затем выбрав текущая версия табличной модели. Это создаст новую базу данных рабочей области, используя текущую версию модели. При этом убедитесь, что при удалении или перемещении файлов из локального проекта SSAS перемещаемые файлы относятся к локальному проекту, а не к реальной модели. Если вам нужно проверить расположение файлов, используемых моделью, свойство DataDir экземпляра SSAS в SSMS покажет этот путь к файлу.

person userfl89    schedule 30.07.2018
comment
Нет ли способа переопределить локальную рабочую область без удаления / удаления файлов? по файлам, которые вы имеете в виду в папках bin / obj в пути разработки, я сохранил решение? Datadir показывает путь по умолчанию: C: \ Program Files \ Microsoft SQL Server \ MSAS13.MSSQLSERVER \ OLAP \ Data - person hkravitz; 30.07.2018
comment
Вам не нужно удалять локальные файлы, вы можете просто поместить их в другое место, подобное архивированию, при условии, что новый путь к файлу не совпадает с предыдущим. И да, под локальными файлами я имел в виду файлы в пути разработки, где сохранено ваше решение. Это будет включать папки bin и obj, но вы захотите переместить всю папку решения (которая должна быть родительской папкой для них). Указанный вами путь DataDir показывает, где находится табличная модель, я просто включил это, чтобы избежать путаницы. - person userfl89; 30.07.2018