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
с именем в учетной записи хранения с именем с помощью ключа учетной записи хранения с именем storageaccount
storageaccountkey
. Данные записываются в путь 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:
- Формат разностного внешнего файла
- Поставщик OPENROWSET CosmosDB с помощью PROVIDER, CONNECTION, OBJECT и CREDENTIAL или SERVER_CREDENTIAL указанных
with ()
предложение в OPENROWSET
Next Steps
- Дополнительные сведения об Extract
- Дополнительные сведения о Publish
- Дополнительные сведения о хранилище BLOB-объектов Azure
- Дополнительные сведения о ключах учетных записей хранения Azure