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
с именем в учетной записи хранения с именем с помощью ключа учетной записи хранения с именем storageaccount
storageaccountkey
. Данные записываются в путь 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
- Дополнительные сведения об Extract
- Дополнительные сведения о Publish
- Дополнительные сведения о хранилище BLOB-объектов Azure
- Дополнительные сведения о подписанных URL-адресах (SAS) служба хранилища Azure
- Дополнительные сведения о ключах учетных записей хранения Azure