SqlPackage para Azure Synapse Analytics

Este artigo aborda o suporte do SqlPackage para Azure Synapse Analytics. Ele inclui informações sob os seguintes tópicos:

  • integração do Armazenamento de Blobs do Azure para acessar os dados em arquivos parquet
  • suporte para pools de SQL sem servidor

Os pools de SQL dedicados e sem servidor não dão suporte às ações de importação/exportação no SqlPackage ou arquivos .bacpac. O SqlPackage dá suporte ao Azure Synapse Analytics com arquivos .dacpac e pode ler e gravar dados em arquivos de formato parquet no Armazenamento de Blogs do Azure. Para importar ou exportar dados de um pool de SQL dedicado, você precisa usar as ações de publicação ou extração com os dados, conforme detalhado abaixo.

Extract (exportar dados)

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

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

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.

Um parâmetro adicional, que define o caminho raiz de armazenamento dentro do contêiner, é opcional:

  • /p:AzureStorageRootPath

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.

Exemplo

O exemplo a seguir extrai um banco de dados chamado databasename de um servidor chamado yourserver.sql.azuresynapse.net 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.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

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 do Azure Synapse Analytics, a ação publish 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 do cliente local que executa o SqlPackage, e os dados são lidos do 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.sql.azuresynapse.net 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.sql.azuresynapse.net/databasename/6-12-2022_8-09-56_AM/ no contêiner.

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

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

Suporte para pools de SQL sem servidor

Os pools de SQL sem servidor do Azure Synapse têm suporte para as ações de extração e publicação. A área da superfície T-SQL de pools de SQL sem servidor é limitada por design a tabelas externas, exibições externas, procedimentos armazenados, funções, estatísticas e credenciais. Os seguintes recursos estão incluídos no suporte para pools de SQL sem servidor:

  • Formato de arquivo externo Delta
  • Provedor OPENROWSET do CosmosDB com PROVIDER, CONNECTION, OBJECT e CREDENTIAL ou SERVER_CREDENTIAL especificado
  • with () Cláusula no OPENROWSET

Próximas etapas