Compartilhar via


SqlPackage com dados em arquivos Parquet (preview)

Este artigo aborda o suporte a SqlPackage para interagir com dados armazenados no Armazenamento de Blobs do Azure que está no formato Parquet. Para o SQL Server 2022 e a Instância Gerenciada de SQL do Azure, o suporte do preview para extração e publicação com dados em arquivos Parquet no Armazenamento de Blobs do Azure está disponível no SqlPackage 162.1.176 e posterior. Não há suporte para o Banco de Dados SQL do Azure, o SQL Server 2019 e versões anteriores. As ações de importar e exportar continuam disponíveis para o SQL Server, a Instância Gerenciada de SQL do Azure e o Banco de Dados SQL do Azure. O suporte para arquivos Parquet no Armazenamento de Blobs do Azure continua com disponibilidade geral para o Azure Synapse Analytics.

Com extrair, o esquema de banco de dados (arquivo .dacpac) é gravado no cliente local que executa o SqlPackage, e os dados são gravados no Armazenamento de Blobs do Azure no formato Parquet. Os dados são armazenados em pastas individuais indicadas com nomes de tabela de duas partes. O CETAS é usado para gravar os arquivos no Armazenamento de Blobs do Azure.

Com publicar, o esquema de banco de dados (arquivo .dacpac) é lido do cliente local que executa o SqlPackage, e os dados são lidos ou gravados no Armazenamento de Blobs do Azure no formato Parquet.

Em bancos de dados SQL hospedados no Azure, as operações de extração/publicação com arquivos Parquet oferecem desempenho aprimorado em relação às operações de importação/exportação com arquivos .bacpac em muitos cenários.

Extract (exportar dados)

Para exportar dados de um banco de dados para o Armazenamento de Blobs do Azure, a ação extrair do SqlPackage é usada com as seguintes propriedades:

  • /p:AzureStorageBlobEndpoint
  • /p:AzureStorageContainer
  • /p:AzureStorageKey ou /p:AzureSharedAccessSignatureToken

O acesso para o banco de dados acessar o contêiner de armazenamento de blobs é autorizado por meio de uma chave de conta de armazenamento. O esquema de banco de dados (arquivo .dacpac) é gravado no cliente local que executa o SqlPackage, e os dados são gravados no Armazenamento de Blobs do Azure no formato Parquet.

O parâmetro /p:AzureStorageRootPath é opcional, o que define o caminho raiz de armazenamento dentro do contêiner. Sem essa propriedade, o caminho padrão é servername/databasename/timestamp/. Os dados são armazenados em pastas individuais indicadas com nomes de tabela de duas partes. O número de arquivos criados por tabela depende do MAXDOP e dos núcleos disponíveis do SQL no momento da exportação.

Por fim, a propriedade /p:TableData especifica quais tabelas têm seus dados exportados. Especifique o nome da tabela com ou sem os colchetes ao redor das partes do nome no formato schema_name.table_identifier. Essa propriedade pode ser especificada várias vezes para indicar várias tabelas.

Exemplo

O exemplo a seguir extrai um banco de dados chamado databasename de um servidor chamado yourserver para um arquivo local chamado databaseschema.dacpac no diretório atual. Os dados são gravados em um contêiner chamado containername em uma conta de armazenamento chamada storageaccount usando uma chave de conta de armazenamento chamada storageaccountkey. Os dados são gravados no caminho padrão de servername/databasename/timestamp/ no contêiner.

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

Confira Ação extract do SqlPackage para obter mais exemplos de tipos de autenticação disponíveis.

Publish (importar dados)

Para importar dados de arquivos Parquet no Armazenamento de Blobs do Azure para um banco de dados, a ação publicar do SqlPackage é usada com as seguintes propriedades:

  • /p:AzureStorageBlobEndpoint
  • /p:AzureStorageContainer
  • /p:AzureStorageRootPath
  • /p:AzureStorageKey ou /p:AzureSharedAccessSignatureToken

O acesso à publicação pode ser autorizado por meio de uma chave de conta de armazenamento ou de um token SAS (Assinatura de Acesso Compartilhado). O esquema de banco de dados (arquivo .dacpac) é lido no cliente local que executa o SqlPackage, e os dados são lidos no Armazenamento de Blobs do Azure no formato Parquet.

Exemplo

O exemplo a seguir publica um banco de dados chamado databasename em um servidor chamado yourserver de um arquivo local chamado databaseschema.dacpac no diretório atual. Os dados são lidos de um contêiner chamado containername em uma conta de armazenamento chamada storageaccount usando uma chave de conta de armazenamento chamada storageaccountkey. Os dados são lidos de pastas individuais por tabela no caminho yourserver/databasename/10-19-2023_11-09-56/ no contêiner.

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/"

Confira Ação publish do SqlPackage para obter mais exemplos de tipos de autenticação disponíveis.

Limitações

Polybase

O Polybase é necessário para operações de SqlPackage com arquivos Parquet. A consulta a seguir pode ser usada para verificar se o Polybase está habilitado.

// 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)

Talvez seja necessário habilitar o Polybase ou a exportação do Polybase. Habilitar o Polybase na Instância Gerenciada de SQL do Azure requer o PowerShell ou a CLI do Azure. É recomendável que você avalie se a habilitação do Polybase é adequada para seu ambiente antes de fazer alterações de configuração.

Tipos de dados e tabela

Os tipos de dados com suporte do CETAS são compatíveis com operações de extração e publicação com arquivos Parquet.

As tabelas do razão estão habilitadas para operações de extração e publicação com arquivos Parquet.

Os dados armazenados com o Always Encrypted não têm suporte para operações de extração e publicação com arquivos Parquet.

Próximas etapas