Поделиться через


Разработка проектов хранилища в Visual Studio Code

Применимо к:✅ Хранилище данных в Microsoft Fabric

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

Предпосылки

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

  • Имеете доступ к существующему элементу хранилища в рабочей области Fabric, с разрешениями участника или более высокого уровня.
  • Установите Visual Studio Code на рабочей станции.
  • Установите пакет SDK для .NET для создания и публикации проектов базы данных.
  • Установите два расширения Visual Studio Code: проекты базы данных SQL и 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. Выберите тип проекта базы данных в качестве базы данных SQL Server.

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

  6. Выберите Хранилище данных Synapse в Microsoft Fabric в качестве целевой платформы.

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

    Это важно

    Поддерживаются только проекты в стиле SDK для хранилища данных Fabric.

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

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

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

  1. В Visual Studio Code щелкните значок расширения "Проекты баз данных " на панели действий.

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

    Снимок экрана: Visual Studio Code с областью расширения

  3. Выберите тип проекта базы данных в качестве базы данных SQL Server.

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

  5. Выберите Хранилище данных Synapse в Microsoft Fabric в качестве целевой платформы.

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

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

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

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

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

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

  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 файл. В запросе на перезагрузку проекта базы данных нажмите кнопку "Да".

Это важно

Команда хранилища данных 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

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

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

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

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

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

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

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

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

    Снимок экрана: Visual Studio Code с уведомлением о ходе развертывания dacpac.

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

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

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

  • BlockOnPossibleDataLoss

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

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

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

Подсказка

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

  • Post-Deployment Scripts

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

Это важно

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

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

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