Разработка проектов склада в Visual Studio Code

Применимо к:✅ Warehouse в Microsoft Fabric

Узнайте, как настроить проект базы данных для Data Warehouse Fabric в Visual Studio Code. Вы создадите новый проект, определите объекты схемы, создадите и проверьте проект и опубликуете его в хранилище.

Предпосылки

Прежде чем начать, убедитесь, что вы:

  • Имеете доступ к существующему элементу хранилища в рабочей области Fabric, с разрешениями участника или более высокого уровня.
  • Установите Visual Studio Code на рабочей станции.
  • Установите пакет SDK .NET для создания и публикации проектов базы данных.
  • Установите два расширения Visual Studio Code: SQL Database Projects и SQL Server (mssql).
    • Необходимые расширения можно установить непосредственно из Visual Studio Code Marketplace, выполнив поиск по запросу "Проекты базы данных SQL" или "SQL Server (mssql)".

Создание проекта базы данных

Проект базы данных можно создать с нуля или существующего хранилища.

Вариант 1. Создание проекта базы данных из палитры команд в Visual Studio Code

  1. Откройте Visual Studio Code.

  2. Откройте палитру команд (Ctrl+Shift+P или Cmd+Shift+P на Компьютере Mac).

  3. Поиск проектов базы данных: новые.

  4. Выберите тип проекта Database как SQL Server Database.

  5. Выберите имя проекта и выберите расположение локальной папки.

  6. Выберите Synapse Data Warehouse в Microsoft Fabric в качестве целевой платформы.

  7. При появлении запроса выберите Да (рекомендуется) для проекта в стиле SDK.

    Это важно

    Поддерживаются только проекты в стиле SDK, совместимые с Fabric Data Warehouse.

  8. Выберите Да в ответ на вопрос Хотите настроить сборку проекта SQL как конфигурацию сборки по умолчанию для этой папки?

  9. Выберите "Да", чтобы доверять авторам файлов в этой папке.

Вариант 2. Создание проекта базы данных из расширения "Проекты баз данных"

  1. В Visual Studio Code выберите значок расширения Database Projects в Activity Bar.

  2. В области "Проекты баз данных" выберите "Создать".

    Скриншот из Visual Studio Code, показывающий панель расширения

  3. Выберите тип проекта Database как SQL Server Database.

  4. Выберите имя проекта и выберите расположение локальной папки.

  5. Выберите Synapse Data Warehouse в Microsoft Fabric в качестве целевой платформы.

  6. При появлении запроса выберите Да (рекомендуется) для проекта в стиле SDK. Поддерживаются только проекты в стиле SDK, совместимые с Fabric Data Warehouse.

  7. Выберите Да в ответ на вопрос Хотите настроить сборку проекта SQL как конфигурацию сборки по умолчанию для этой папки?

  8. Выберите "Да", чтобы доверять авторам файлов в этой папке.

Вариант 3. Создание проекта базы данных из существующего хранилища

  1. Сначала создайте новый профиль подключения для хранилища в Visual Studio Code.

    1. Выберите расширение SQL Server в Visual Studio Code на панели активности.
    2. Укажите имя профиля. Выберите параметры.
    3. Укажите имя сервера. На портале Fabric в параметрах хранилища выберите конечную точку SQL и скопируйте указанную строку. Это имя сервера хранилища и отличается от конечной точки аналитики SQL. Оно выглядит следующим образом: <server unique ID>.datawarehouse.fabric.microsoft.com.
    4. Для типа Authentication используйте Microsoft Entra ID — универсальную с поддержкой MFA. Проверка подлинности с помощью Microsoft Entra ID.
    5. Укажите другие сведения по умолчанию или выберите "Подключить".
  2. В Visual Studio Code выберите значок расширения Database Projects на панели действий.

  3. Нажмите кнопку ... "Параметры" в области "Проекты базы данных " и выберите пункт "Создать проект из базы данных ".

    Скриншот из Visual Studio Code, показывающий опцию «Создать проект из базы данных».

  4. Выберите хранилище из существующих профилей подключений.

  5. Укажите имя проекта и выберите папку проекта на рабочей станции.

  6. Для структуры папок выберите тип схемы или объекта (рекомендуется).

  7. Чтобы включить разрешения в проект, выберите "Нет " (по умолчанию).

  8. Для проекта в стиле ПАКЕТА SDK выберите "Да" (рекомендуется).

  9. Выберите Да в ответ на вопрос Хотите настроить сборку проекта SQL как конфигурацию сборки по умолчанию для этой папки?

  10. Visual Studio Code извлекает файлы проекта из хранилища.

    Скриншот из Visual Studio Code с уведомлением о продвижении извлечения файлов проекта.

  11. После успешного извлечения вы увидите следующее уведомление: "Извлечение файлов проекта: выполнено успешно. Завершено".

  12. Выберите "Да", чтобы доверять авторам файлов в этой папке.

Новый проект базы данных для хранилища

Новый проект базы данных для хранилища отображается в меню "Проекты баз данных SQL".

Скриншот из Visual Studio Code с новым проектом базы данных для AdventureWorksDW2022.

Структура проекта выглядит следующим образом:

 | Project Name
 ├── Database References
 ├── SQLCMD Variables
 ├── .vscode/
 └── schema/
     ├── Functions
     ├── Tables
     └── Views

Настройка проекта базы данных

  1. Щелкните проект правой кнопкой мыши и выберите Изменить SQLPROJ-файл.

    Скриншот из Visual Studio Code и контекстного меню проекта базы данных. Опция

  2. Убедитесь, что в файле находится последняя версия пакета SDK Microsoft.Build.Sql . Например, в файле .sqlproj измените версию для Microsoft.Build.Sql на 2.0.0.

       <Sdk Name="Microsoft.Build.Sql" Version="2.0.0" />
    
  3. Проверьте последнюю версию Microsoft.SqlServer.Dacpacs.FabricDw и добавьте ссылку на Project/ItemGroup узел XML. Рассмотрим пример.

       <PackageReference Include="Microsoft.SqlServer.Dacpacs.FabricDw" Version="170.0.2" />
    

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

     <?xml version="1.0" encoding="utf-8"?>
     <Project DefaultTargets="Build">
       <Sdk Name="Microsoft.Build.Sql" Version="2.0.0" />
       <PropertyGroup>
         <Name>DatabaseProject715wh</Name>
         <ProjectGuid>{2E278BCC-F118-4DDB-9255-94697F2930B4}</ProjectGuid>
         <DSP>Microsoft.Data.Tools.Schema.Sql.SqlDwUnifiedDatabaseSchemaProvider</DSP>
         <ModelCollation>1033, CI</ModelCollation>
       </PropertyGroup>
       <ItemGroup>
         <None Include=".vscode\tasks.json" />
         <PackageReference Include="Microsoft.SqlServer.Dacpacs.FabricDw" Version="170.0.2" />
       </ItemGroup>
       <Target Name="BeforeBuild">
         <Delete Files="$(BaseIntermediateOutputPath)\project.assets.json" />
       </Target>
     </Project>
    
  4. Сохраните .sqlproj файл. В запросе на перезагрузку проекта базы данных нажмите кнопку "Да".

Это важно

Команда Data Warehouse Fabric часто выпускает новые версии пакетов NuGet. Так как значения версий по умолчанию в .sqlproj файле могут меняться с течением времени, обязательно обновите их в локальном проекте, чтобы оставаться в соответствии с последними версиями, доступными в NuGet для Microsoft.SqlServer.Dacpacs.FabricDw.

Добавление или обновление объектов базы данных

Можно определить или изменить объекты базы данных, такие как таблицы, представления, хранимые процедуры и функции в проекте хранилища.

В папке схемы, например dbo, добавьте или удалите или внесите изменения в определения объектов T-SQL в хранилище. Чтобы изменить существующий объект, откройте соответствующий .sql файл и обновите определение по мере необходимости.

При сборке проекта все новые и обновленные объекты проверяются и включаются в сгенерированный файл формата DACPAC в файле {project folder location}/bin/debug/{project name}.dacpac.

Изменения, внесенные здесь, относятся только к проекту базы данных и не отражаются в Microsoft Fabric, пока не выполните Сборку и Публикацию вашего проекта.

Создание и проверка проекта

  1. Откройте проект базы данных, если он еще не открыт.

  2. Щелкните по проекту правой кнопкой мыши и выберите Сборка, чтобы создать проект базы данных.

    Скриншот из Visual Studio Code, показывающий опцию сборки проекта базы данных.

  3. Сборка должна быть успешной. Исправьте все ошибки на основе сообщений, предоставленных в выходных данных события сборки.

Замечание

В настоящее время терминал Visual Studio Code по умолчанию должен быть PowerShell для успешного выполнения процесса сборки в расширении "Проекты баз данных". В палитре команд выберите терминал: выберите профиль по умолчанию, а затем выберите PowerShell.

Публикация в Fabric Data Warehouse

После создания проекта опубликуйте его в целевом хранилище. Публикация создает скрипт для устранения разницы между проектом базы данных и фактическим хранилищем и выполняет скрипт, чтобы хранилище соответствовало проекту. Скомпилированную модель схемы хранилища в DACPAC-файле можно развернуть в целевом хранилище.

  1. Щелкните проект правой кнопкой мыши и выберите "Опубликовать".

  2. Выберите "Опубликовать" на существующем сервере SQL Server.

  3. Чтобы выбрать профиль публикации, который будет загружен, при первой публикации выберите «Не использовать профиль».

    • Параметры публикации хранилища можно сохранить в профиле публикации. После завершения в уведомлении Visual Studio Code вам будет предложена возможность сохранить использованные вами параметры публикации в файл профиля публикации.
    • Вы можете повторно использовать профиль публикации в будущем при публикации проекта в хранилище. У вас могут быть различные параметры профиля для разных хранилищ или для разных сред разработки, тестирования и принятия или рабочей среды разработки.
  4. Выберите профиль подключения Data Warehouse Fabric из списка.

  5. Выберите имя целевого хранилища.

  6. В окне "Выбор действия " можно либо создать скрипт , чтобы просмотреть скрипт перед публикацией, либо опубликовать проект в хранилище.

    • При первом развертывании изменений необходимо тщательно создать скрипт и просмотреть результирующий T-SQL для применения к целевому хранилищу. Изменения в целевом хранилище не вносятся.
    • При выборе "Опубликовать" изменения будут записаны в целевое хранилище.

    Скриншот из Visual Studio Code, показывающий уведомление о процессе развертывания dacpac.

  7. В уведомлении вы хотите сохранить параметры в профиле (.publish.xml)?, нажмите кнопку "Да " и сохраните варианты профиля публикации при следующей публикации.

Важные параметры развертывания для проектов хранилища

При развертывании проектов базы данных в Data Warehouse Fabric несколько параметров управляют изменениями схемы и могут повлиять на безопасность данных. Используйте с осторожностью.

  • BlockOnPossibleDataLoss

    • Что это делает: Предотвращает развертывание, если существует риск потери данных (например, удаление столбца или таблицы, содержащей данные).
    • Рекомендация: Всегда устанавливайте True значение в рабочей среде для защиты критически важных данных.
    • Осторожность: Установка False позволяет развертывание даже при потере данных. Используйте только в управляемых средах (например, dev/test).
  • DropObjectsNotInSource

    • Что это делает: Удаляет объекты в целевой базе данных, отсутствующей в источнике проекта.
    • Рекомендация: Используйте в средах разработки и тестирования для очистки оставшихся объектов.
    • Осторожность: Использование DropObjectsNotInSource в рабочей среде может удалять важные объекты и данные. Перед включением дважды проверьте.
  • Pre-Deployment Scripts

    • Что это делает: Выполняет пользовательские скрипты SQL перед развертыванием схемы.
    • Распространенные варианты использования:
      • Архивация или резервное копирование данных перед удалением таблиц
      • Временно отключить ограничения или триггеры
      • Очистка устаревших объектов
    • Предупреждение: Убедитесь, что скрипты идемпотентны и не вводят изменения схемы, конфликтующие с развертыванием.

Подсказка

Если процесс развертывания идемпотентен, его можно запускать многократно без возникновения проблем, а также развертывать в нескольких базах данных без необходимости предварительного определения их состояния.

  • Post-Deployment Scripts

    • Что это делает: Выполняет пользовательские скрипты SQL после развертывания схемы.
    • Распространенные варианты использования:
      • Исходные данные поиска или справочные данные
      • Повторное включение ограничений или триггеров
      • История развертывания журнала
    • Осторожность: Избегайте тяжелых операций в больших таблицах в рабочей среде; Убедитесь, что скрипты могут безопасно выполняться несколько раз при необходимости.

Это важно

Перед публикацией всегда просматривайте сценарии развертывания и параметры. Сначала протестируйте в средах разработки и тестирования, чтобы предотвратить непреднамеренные потери данных.

Подтверждение публикации

Подключитесь к вашему хранилищу и к скриптовым объектам, которые были изменены, или проверьте изменения, выполнив соответствующие команды объектов системного каталога.