SqlPackage с данными в файлах Parquet (предварительная версия)

В этой статье рассматривается поддержка SqlPackage для взаимодействия с данными, хранящимися в Хранилище BLOB-объектов Azure в формате Parquet. Для SQL Server 2022 и Управляемый экземпляр SQL Azure предварительная версия поддержки извлечения и публикации с данными в файлах Parquet в Хранилище BLOB-объектов Azure доступна в SqlPackage 162.1.176 и более поздних версиях. База данных SQL Azure и SQL Server 2019 и более ранних версий не поддерживаются. Действия импорта и экспорта по-прежнему доступны для SQL Server, Управляемый экземпляр SQL Azure и База данных SQL Azure. Поддержка файлов Parquet в Хранилище BLOB-объектов Azure по-прежнему общедоступна для Azure Synapse Analytics.

При извлечении схема базы данных (.dacpacфайл) записывается в локальный клиент с sqlPackage, а данные записываются в Хранилище BLOB-объектов Azure в формате Parquet. Данные хранятся в отдельных папках с двумя именами таблиц. CETAS используется для записи файлов в Хранилище BLOB-объектов Azure.

При публикации схема базы данных (.dacpacфайл) считывается из локального клиента, работающего под управлением SqlPackage, и данные считываются из или записываются в Хранилище BLOB-объектов Azure в формате Parquet.

В базах данных SQL, размещенных в Azure, операции извлечения и публикации с файлами Parquet обеспечивают улучшенную производительность операций импорта и экспорта с .bacpac файлами во многих сценариях.

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

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

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

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

Параметр /p:AzureStorageRootPath необязателен, который задает корневой путь хранилища в контейнере. Без этого свойства путь по умолчанию имеет значение servername/databasename/timestamp/. Данные хранятся в отдельных папках с двумя именами таблиц. Количество файлов, созданных для каждой таблицы, зависит от MAXDOP и доступных ядер SQL во время экспорта.

Наконец, свойство /p:TableData указывает, какие таблицы экспортируют данные. Укажите имя таблицы с скобками, окружающими части имен в формате schema_name.table_identifier. Это свойство может быть указано несколько раз, чтобы указать несколько таблиц.

Пример

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

SqlPackage /Action:Extract /SourceServerName:yourserver /SourceDatabaseName:databasename /TargetFile:databaseschema.dacpac /p:AzureStorageBlobEndpoint=https://storageaccount.blob.core.windows.net /p:AzureStorageContainer=containername /p:AzureStorageKey=storageaccountkey

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

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

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

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

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

Пример

В следующем примере база данных databasename с именем сервера с именем yourserver из локального файла, названного databaseschema.dacpac в текущем каталоге. Данные считываются из контейнера containername с именем в учетной записи хранения с именем storageaccount с помощью ключа учетной записи хранения с именем storageaccountkey. Данные считываются из отдельных папок на таблицу под путем yourserver/databasename/10-19-2023_11-09-56/ в контейнере.

SqlPackage /Action:Publish /SourceFile:databaseschema.dacpac /TargetServerName:yourserver /TargetDatabaseName:databasename /p:AzureStorageBlobEndpoint=https://storageaccount.blob.core.windows.net /p:AzureStorageContainer=containername  /p:AzureStorageKey=storageaccountkey /p:AzureStorageRootPath="yourserver/databasename/10-19-2023_11-09-56/"

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

Ограничения

PolyBase

Polybase требуется для операций SqlPackage с файлами Parquet. Следующий запрос можно использовать для проверка, если Polybase включен:

// configuration_id = 16397 is 'allow polybase export'
// configuration_id = 16399 is 'polybase enabled'
SELECT configuration_id, value_in_use FROM sys.configurations
WHERE configuration_id IN (16397, 16399)

Возможно, потребуется включить экспорт Polybase или Polybase. Для включения Polybase в Управляемый экземпляр SQL Azure требуется PowerShell или Azure CLI. Рекомендуется оценить, подходит ли включение Polybase для вашей среды перед внесением изменений в конфигурацию.

Типы таблиц и данных

Типы данных, поддерживаемые CETAS , поддерживаются для операций извлечения и публикации с файлами Parquet.

Таблицы реестра включены для операций извлечения и публикации с файлами Parquet.

Данные, хранящиеся в Always Encrypted, не поддерживаются для операций извлечения и публикации с файлами Parquet.

Next Steps