Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:✅базе данных SQL в Microsoft Fabric
В этом руководстве описано, как работать с SqlPackage в базе данных SQL в Fabric.
SqlPackage — это интерфейс командной строки, предоставляющий переносимость базы данных и развертывания базы данных.
- Переносимость (импорт/экспорт) базы данных, управляемой в Azure или в Fabric, обеспечивает возможность переноса ваших данных на другие платформы, если вы захотите выполнить миграцию в будущем. — Переносимость включает перемещение в и из SQL Server, базы данных Azure SQL, Управляемого экземпляра Azure SQL и базы данных SQL в Fabric с помощью автономных копий базы данных (
.bacpacили.dacpacфайлов).
SqlPackage также может включать простое развертывание добавочных изменений в объектах базы данных (новые столбцы в таблицах, изменения существующих хранимых процедур и т. д.).
- SqlPackage может извлечь
.dacpacфайл, содержащий определения объектов в базе данных, и опубликовать.dacpacфайл для применения этого состояния объекта к новой или существующей базе данных. - Операция публикации также интегрируется с проектами SQL, что позволяет выполнять автономные и более динамические циклы разработки для баз данных SQL.
Необходимые компоненты
- Вам нужна существующая емкость Fabric. Если вы этого не сделали, запустите пробную версию Fabric.
- Создайте новую рабочую область или используйте существующую рабочую область Fabric.
- Создайте или используйте существующую базу данных SQL в Fabric. Если у вас еще нет одного, создайте новую базу данных SQL в Fabric.
- Установите пакет SDK для .NET 8.
Настройка
SqlPackage доступен для Windows, macOS и Linux в качестве средства dotnet. Ее можно установить с помощью следующей команды:
dotnet tool install --global Microsoft.SqlPackage
Как глобальное средство dotnet, SqlPackage доступен в терминале как sqlpackage из любой папки.
Импорт базы данных с помощью SqlPackage
Это .bacpac переносимая копия базы данных, полезная для некоторых сценариев миграции и тестирования. Его можно импортировать.bacpac в пустую базу данных SQL с помощью импорта SqlPackage.
Примечание.
Это .bacpac не является резервной копией или заменой для возможностей резервного копирования и восстановления. Дополнительные сведения о резервных копиях для базы данных SQL в Fabric см. в статье "Автоматическое резервное копирование в базе данных SQL" в Microsoft Fabric и восстановление из резервной копии в базе данных SQL в Microsoft Fabric.
При использовании
.bacpacиз среды Azure или SQL Server может потребоваться изменить исходную базу данных, чтобы она соответствовала среде базы данных SQL в T-SQL Fabric. Смотрите извлечение и публикация переносимости для альтернативного метода, который позволяет свойствам SqlPackage пропускать некоторые неподдерживаемые объекты.Создайте новую базу данных SQL в Fabric как обычно с помощью интерфейса Fabric.
Скопируйте строка подключения из параметров.
Используйте команду импорта из терминала в папке sqlpackage. Укажите владельца
<servername>и<database_name>.sqlpackage /action:import /sourcefile:"C:\DatabaseName.bacpac" /targetconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive"- Замените строка подключения из диалогового окна параметров базы данных SQL.
- Замените
sourcefileзначение.bacpacименем (DatabaseName) иlocationна локальном компьютере.
Следуйте инструкциям по импорту с заданием копирования в Фабрике данных в Microsoft Fabric. Сведения о начале работы см. в кратком руководстве по созданию задания копирования.
Экспорт базы данных с помощью SqlPackage
.bacpac Экспорт — это обратная операция, где находится targetfile ваш .bacpac объект и sourceconnectionstring вы можете найти в диалоговом окне параметров базы данных SQL, как показано в предыдущем примере. Укажите владельца <servername> и <database_name>. Например:
sqlpackage /action:export /targetfile:"C:\DatabaseName.bacpac" /sourceconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive"
Дополнительные сведения об экспорте см. в разделе "Экспорт SqlPackage".
Извлечение и публикация
Это .dacpac файл модели схемы базы данных, содержащий определения таблиц, хранимых процедур и других объектов в исходной базе данных. Этот файл можно создать из существующей базы данных с помощью SqlPackage или из проекта базы данных SQL.
SqlPackage может развертывать .dacpac новую (пустую) базу данных или постепенно обновлять существующую базу данных в соответствии с требуемым .dacpac состоянием.
-
Извлечение создает
.dacpacфайлы или файлы SQL из существующей базы данных. -
Публикация развертывает базу
.dacpacданных.
SqlPackage синтаксис публикации и синтаксис извлечения аналогичен командам импорта и экспорта.
Предупреждение
Использование SqlPackage для развертывания проекта SQL или .dacpac в базе данных SQL в Fabric рекомендуется. Развертывание .dacpac из Visual Studio может быть неудачным.
Чтобы развернуть .dacpac, созданную из базы данных SQL Azure, SQL Server или проекта SQL, предназначенного для платформы, отличной от базы данных SQL в Fabric, добавьте свойство /p:AllowIncompatiblePlatform=true в команду публикации SqlPackage.
Извлечение и публикация для переносимости
Несмотря на то что команды импорта и экспорта SqlPackage сосредоточены на переносимости данных в формате .bacpac, команды извлечения и публикации могут переносить данные в формате .dacpac. Свойства извлечения и публикации можно использовать для управления поведением операций извлечения и публикации и обеспечения большей гибкости для преобразований между платформами.
Чтобы извлечь.dacpac и включить данные, используйте /p:ExtractAllTableData=true свойство. Операция извлечения создает объект .dacpac , содержащий как схему, так и данные из исходной базы данных. Это свойство /p:ExtractReferencedServerScopedElements=false исключает элементы с областью действия сервера, которые не поддерживаются в базе данных SQL в среде Fabric. Следующая команда извлекает .dacpac, содержащий данные из существующей базы данных SQL в Fabric.
sqlpackage /action:extract /sourceconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive" /targetfile:"C:\extracted.dacpac" /p:ExtractAllTableData=true /p:ExtractReferencedServerScopedElements=false
Для публикации извлеченного .dacpac с данными дополнительных свойств не требуется. Однако для управления поведением операции публикации можно использовать несколько свойств:
-
/p:AllowIncompatiblePlatform=trueпозволяет развернуть объект.dacpac, извлеченный из другой платформы (например, База данных SQL Azure, SQL Server). -
/p:ExcludeObjectTypes=Logins;Usersисключает типы объектов, которые могут столкнуться с проблемами совместимости при публикации в базе данных SQL в Fabric. Полный список типов объектов, которые можно исключить, см. в публикации SqlPackage.
Прежде чем публиковать .dacpac в базе данных SQL в Fabric, аналогично команде импорта SqlPackage, необходимо сначала создать эту базу данных в Fabric. Базу данных можно создать с помощью портала Fabric или другого интерфейса Fabric. Следующая команда публикует извлеченные .dacpac данные в пустую базу данных SQL в Fabric:
sqlpackage /action:publish /sourcefile:"C:\extracted.dacpac" /targetconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive" /p:AllowIncompatiblePlatform=true /p:ExcludeObjectTypes=Logins;Users