SqlPackage для Azure Synapse Analytics

В этой статье рассматривается поддержка SqlPackage для Azure Synapse Analytics. В ней содержатся сведения о следующих разделах:

  • интеграция с Хранилище BLOB-объектов Azure для доступа к данным в файлах Parquet
  • поддержка бессерверных пулов SQL

Выделенные и бессерверные пулы SQL не поддерживают действия импорта и экспорта в SqlPackage или .bacpac файлах. SqlPackage поддерживает Azure Synapse Analytics с .dacpac файлами и может читать и записывать данные в файлах формата parquet в блоге Azure служба хранилища. Чтобы импортировать или экспортировать данные из выделенного пула SQL, необходимо использовать действия публикации или извлечения с данными, как описано ниже.

Извлечение (экспорт данных)

Чтобы экспортировать данные из базы данных Azure Synapse Analytics в Хранилище BLOB-объектов Azure, действие извлечения SqlPackage используется со следующими свойствами:

  • /p:AzureStorageBlobEndpoint
  • /p:AzureStorageContainer
  • /p:AzureStorageKey

Доступ к базе данных для доступа к контейнеру хранилища BLOB-объектов разрешен с помощью ключа учетной записи хранения. Схема базы данных (DACPAC-файл) записывается в локальный клиент, на котором выполняется SqlPackage, и данные записываются в Хранилище BLOB-объектов Azure в формате parquet.

Дополнительный параметр является необязательным и задает корневой путь хранилища в контейнере:

  • /p:AzureStorageRootPath

Без этого свойства путь по умолчанию имеет значение servername/databasename/timestamp/. Данные хранятся в отдельных папках с именами таблиц из 2 частей.

Пример

В следующем примере извлекается база данных с сервера с databasename именем yourserver.sql.azuresynapse.net в локальный файл с именем databaseschema.dacpac в текущем каталоге. Данные записываются в контейнер containername с именем в учетной записи хранения с именем с помощью ключа учетной записи хранения с именем storageaccountstorageaccountkey. Данные записываются в путь servername/databasename/timestamp/ по умолчанию в контейнере.

SqlPackage /Action:Extract /SourceServerName:yourserver.sql.azuresynapse.net /SourceDatabaseName:databasename /SourceUser:sqladmin /SourcePassword:{your_password} /TargetFile:databaseschema.dacpac /p:AzureStorageBlobEndpoint=https://storageaccount.blob.core.windows.net /p:AzureStorageContainer=containername /p:AzureStorageKey=storageaccountkey

Дополнительные примеры доступных типов проверки подлинности см . в извлечении SqlPackage.

Публикация (импорт данных)

Чтобы импортировать данные из файлов parquet в Хранилище BLOB-объектов Azure в базу данных Azure Synapse Analytics, действие публикации SqlPackage используется со следующими свойствами:

  • /p:AzureStorageBlobEndpoint
  • /p:AzureStorageContainer
  • /p:AzureStorageRootPath
  • /p:AzureStorageKey или /p:AzureSharedAccessSignatureToken

Доступ к публикации можно авторизовать с помощью ключа учетной записи хранения или маркера подписанного URL-адреса (SAS). Схема базы данных (DACPAC-файл) считывается из локального клиента, работающего под управлением SqlPackage, и данные считываются из Хранилище BLOB-объектов Azure в формате parquet.

Пример

В следующем примере база данных databasename с именем сервера с именем yourserver.sql.azuresynapse.net из локального файла, названного databaseschema.dacpac в текущем каталоге. Данные считываются из контейнера containername с именем в учетной записи хранения с именем storageaccount с помощью ключа учетной записи хранения с именем storageaccountkey. Данные считываются из отдельных папок на таблицу под путем yourserver.sql.azuresynapse.net/databasename/6-12-2022_8-09-56_AM/ в контейнере.

SqlPackage /Action:Publish /SourceFile:databaseschema.dacpac /TargetServerName:yourserver.sql.azuresynapse.net /TargetDatabaseName:databasename /TargetUser:sqladmin /TargetPassword:{your_password} /p:AzureStorageBlobEndpoint=https://storageaccount.blob.core.windows.net /p:AzureStorageContainer=containername  /p:AzureStorageKey=storageaccountkey /p:AzureStorageRootPath="yourserver.sql.azuresynapse.net/databasename/6-12-2022_8-09-56_AM/"

Дополнительные примеры доступных типов проверки подлинности см. в публикации SqlPackage.

Поддержка бессерверных пулов SQL

Бессерверные пулы SQL Synapse поддерживаются как для действий извлечения, так и для публикации. Область поверхности T-SQL бессерверных пулов SQL ограничена внешними таблицами, внешними представлениями, хранимыми процедурами, функциями, статистикой и учетными данными. Следующие функции включены в поддержку бессерверных пулов SQL:

Next Steps