Partilhar via


SqlPackage para Azure Synapse Analytics

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

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

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

Extrair (exportar dados)

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

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

O acesso ao banco de dados para acessar o contêiner de armazenamento de blob é 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 é opcional, que define o caminho da raiz de armazenamento dentro do contêiner:

  • /p:AzureStorageRootPath

Sem essa propriedade, o caminho assume como padrão servername/databasename/timestamp/. Os dados são armazenados em pastas individuais nomeadas com nomes de tabelas de 2 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

Consulte extração SqlPackage para obter mais exemplos de tipos de autenticação disponíveis.

Publicar (importar dados)

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

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

O acesso para publicação pode ser autorizado por meio de uma chave de conta de armazenamento ou um token de assinatura de acesso compartilhado (SAS). 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 para 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 sob o 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/"

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

Suporte para pools SQL sem servidor

Os pools SQL sem servidor Synapse são suportados para as ações de extração e publicação. A área de superfície T-SQL de pools 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 SQL sem servidor:

Próximos passos