Compartilhar e receber dados do Banco de Dados SQL do Azure e do Azure Synapse Analytics

APLICA-SE A: Banco de Dados SQL do Azure Azure Synapse Analytics (antigo Azure SQL DW) pool de SQL do Azure Synapse Analytics (workspace)

O Azure Data Share permite que você compartilhe com segurança instantâneos de dados de seus recursos do Banco de Dados SQL do Azure e do Azure Synapse Analytics para outras assinaturas do Azure. Incluindo assinaturas do Azure fora de seu locatário.

Este artigo descreve o compartilhamento de dados do Banco de Dados SQL do Azure e do Azure Synapse Analytics.

Este artigo orientará você por:

Você pode usar o sumário para ir diretamente para a seção de que precisa ou continuar no artigo para seguir o processo do início ao fim.

Image showing the data flow between data owners and data consumers.

Para que há suporte?

Compartilhar dados

O Azure Data Share dá suporte ao compartilhamento de instantâneos de dados completos de vários recursos de SQL no Azure. Atualmente, não há suporte para instantâneos incrementais para esses recursos.

Tipo de recurso Compartilhar tabelas Compartilhar exibições
Banco de Dados SQL do Azure Sim Yes
Azure Synapse Analytics (antigo Azure SQL DW) Sim Yes
Pool de SQL dedicado do Synapse Analytics (espaço de trabalho) Sim Não

Observação

Atualmente, o Azure Data Share não dá suporte ao compartilhamento desses recursos:

  • Pool de SQL sem servidor do Azure Synapse Analytics (workspace)
  • Bancos de dados SQL do Azure com Always Encrypted configurado

Receber dados

Os consumidores de dados podem optar por aceitar dados compartilhados em vários recursos do Azure:

  • Azure Data Lake Storage Gen2
  • Armazenamento do Blobs do Azure
  • Banco de Dados SQL do Azure
  • Azure Synapse Analytics

Os dados compartilhados no Azure Data Lake Storage Gen 2 ou no Armazenamento de Blobs do Azure podem ser armazenados ocmo m arquivo csv ou parquet. Instantâneos de dados completos substituirão o conteúdo do arquivo de destino se ele já existir.

Os dados compartilhados no Banco de Dados SQL do Azure e no Azure Synapse Analytics são armazenados em tabelas. Se a tabela de destino ainda não existir, o Azure Data Share criará a tabela de SQL com o esquema de origem. Caso já exista uma tabela de destino com o mesmo nome, ela será removida e substituída pelo instantâneo completo mais recente.

Observação

Para tabelas SQL de origem com máscara de dados dinâmicos, os dados aparecerão mascarados no lado do destinatário.

Tipos de dados com suporte

Quando você compartilha dados de uma origem de SQL, os mapeamentos a seguir são usados dos tipos de dados do SQL Server para os tipos de dados provisórios do Azure Data Share durante o processo de instantâneo.

Observação

  1. Para tipos de dados que mapeiam para o tipo provisório Decimal, no momento, o instantâneo dá suporte à precisão de até 28. Se você tiver dados que exijam precisão maior que 28, considere converter para uma cadeia de caracteres.
  2. Se você estiver compartilhando dados de um banco de dados SQL do Azure para o Azure Synapse Analytics, nem todos os tipos de dados têm suporte. Confira Tipos de dados de tabela no pool de SQL dedicado para obter detalhes.
Tipo de dados do SQL Server Tipo de dados provisório do Azure Data Factory
BIGINT Int64
binary Byte[]
bit Boolean
char String, Char[]
date Datetime
Datetime Datetime
datetime2 Datetime
Datetimeoffset DateTimeOffset
Decimal Decimal
FILESTREAM attribute (varbinary(max)) Byte[]
Float Double
image Byte[]
INT Int32
money Decimal
NCHAR String, Char[]
ntext String, Char[]
numeric Decimal
NVARCHAR String, Char[]
real Single
rowversion Byte[]
smalldatetime Datetime
SMALLINT Int16
SMALLMONEY Decimal
sql_variant Objeto
text String, Char[]
time TimeSpan
timestamp Byte[]
TINYINT Int16
UNIQUEIDENTIFIER Guid
varbinary Byte[]
varchar String, Char[]
Xml String

Pré-requisitos para compartilhar dados

Para compartilhar instantâneos de dados de seus recursos do SQL do Azure, primeiro você precisa preparar o ambiente. Você precisará de:

Pré-requisitos específicos de origem

Também há pré-requisitos para compartilhamento que dependem de onde seus dados são provenientes. Selecione sua origem de compartilhamento de dados e siga as etapas:

Pré-requisitos para o compartilhamento por meio do Banco de Dados SQL do Azure ou do Azure Synapse Analytics (antigo SQL DW do Azure)

Você pode usar um destes métodos para autenticar no Banco de Dados SQL do Azure ou no Azure Synapse Analytics (antigo Azure SQL DW):

autenticação do Microsoft Entra

Esses pré-requisitos abrangem a autenticação de que você precisará para que o Azure Data Share possa se conectar ao seu Banco de Dados SQL do Azure:

  • Você precisará de permissão para gravar nos bancos de dados no SQL Server: Microsoft.Sql/servers/databases/write. Essa permissão existe na função Colaborador.
  • Permissões de administrador do SQL Server Microsoft Entra.
  • Acesso ao Firewall do SQL Server:
    1. No portal do Azure, navegue até o servidor SQL. Selecione Firewalls e redes virtuais no painel de navegação à esquerda.
    2. Escolha Sim na opção Permitir que serviços e recursos do Azure acessem este servidor.
    3. Selecione +Adicionar IP de cliente. O endereço IP do cliente pode ser alterado, portanto, talvez seja necessário adicionar o IP do cliente novamente na próxima vez que compartilhar dados do portal.
    4. Selecione Salvar.

Autenticação do SQL

Você pode seguir o vídeo de demonstração passo a passo para configurar a autenticação ou concluir cada um desses pré-requisitos:

  • Permissão para gravar nos bancos de dados no SQL Server: Microsoft.Sql/servers/databases/write. Essa permissão existe na função Colaborador.

  • Permissão para que a identidade gerenciada do recurso do Azure Data Share acesse o banco de dados:

    1. No portal do Azure, navegue até o SQL Server e defina-se como o Microsoft Entra Admin.

    2. Conecte-se ao Banco de Dados SQL/Data Warehouse do Azure usando o Editor de Consultas ou o SQL Server Management Studio com autenticação do Microsoft Entra.

    3. Execute o script a seguir para adicionar a identidade gerenciada do recurso do Data Share como um db_datareader. Conecte-se usando o Active Directory e não a autenticação do SQL Server.

      create user "<share_acct_name>" from external provider;     
      exec sp_addrolemember db_datareader, "<share_acct_name>"; 
      

      Observação

      O <share_acc_name> é o nome do seu recurso do Data Share.

  • Um Usuário do Banco de Dados SQL do Azure com o acesso 'db_datareader' para procurar e selecionar as tabelas ou as exibições que você deseja compartilhar.

  • Acesso ao firewall do SQL Server:

    1. No portal do Azure, navegue até o SQL Server. Selecione Firewalls e redes virtuais no painel de navegação à esquerda.
    2. Escolha Sim na opção Permitir que serviços e recursos do Azure acessem este servidor.
    3. Selecione +Adicionar IP de cliente. O endereço IP do cliente pode ser alterado, portanto, talvez seja necessário adicionar o IP do cliente novamente na próxima vez que compartilhar dados do portal.
    4. Selecione Salvar.

Pré-requisitos para o compartilhamento do pool de SQL do Azure Synapse Analytics (workspace)

  • Permissão para gravar no pool de SQL no workspace do Synapse: Microsoft.Synapse/workspaces/sqlPools/write. Essa permissão existe na função Colaborador.

  • Permissão para que a identidade gerenciada do recurso do Data Share acesse o pool de SQL do workspace do Azure Synapse:

    1. No portal do Azure, navegue até o workspace do Synapse. Selecione SQL Active Directory admin na navegação à esquerda e defina-se como o administrador do Microsoft Entra.

    2. Abra o Synapse Studio e selecione Gerenciar no painel de navegação à esquerda. Escolha Controle de acesso em Segurança. Atribua a si mesmo a função Administrador do SQL ou Administrador do workspace.

    3. Selecione Desenvolver no painel de navegação à esquerda no Synapse Studio. Execute o script a seguir no pool de SQL para adicionar a identidade gerenciada pelo recurso do Data Share como um db_datareader.

      create user "<share_acct_name>" from external provider;     
      exec sp_addrolemember db_datareader, "<share_acct_name>"; 
      

      Observação

      O <share_acc_name> é o nome do seu recurso do Data Share.

  • Acesso ao Firewall do workspace do Synapse:

    1. No portal do Azure, navegue até o workspace do Synapse. Selecione Firewalls no painel de navegação à esquerda.
    2. Selecione ATIVADO na opção Permitir que serviços e recursos do Azure acessem este workspace.
    3. Selecione +Adicionar IP de cliente. O endereço IP do cliente pode ser alterado, portanto, talvez seja necessário adicionar o IP do cliente novamente na próxima vez que compartilhar dados do portal.
    4. Selecione Salvar.

Criar um compartilhamento

  1. Navegue até sua página de Visão Geral do Data Share.

    Screenshot showing the data share overview.

  2. Selecione Começar a compartilhar seus dados.

  3. Selecione Criar.

  4. Preencha os detalhes do seu compartilhamento. Especifique um nome, um tipo de compartilhamento, uma descrição do conteúdo de compartilhamento e os termos de uso (opcional).

    Screenshot of the share creation page in Azure Data Share, showing the share name, type, description, and terms of used filled out.

  5. Selecione Continuar.

  6. Para adicionar conjuntos de dados ao compartilhamento, selecione Adicionar Conjuntos de Dados.

    Screenshot of the datasets page in share creation, the add datasets button is highlighted.

  7. Selecione o tipo de conjunto de dados que você deseja adicionar. Haverá uma lista diferente de tipos de conjuntos de dados dependendo do tipo de compartilhamento (instantâneo ou in-loco) que você selecionou na etapa anterior.

    Screenshot showing the available dataset types.

  8. Selecione seu workspace do SQL Server ou do Synapse. Se você estiver usando a autenticação do Microsoft Entra e a caixa de seleção Permitir compartilhamento de dados para executar o script SQL 'criar usuário' acima em meu nome for exibida, marque a caixa de seleção. Se você estiver usando a autenticação de SQL, forneça as credenciais e certifique-se de ter seguido os pré-requisitos para que tenha as permissões.

    Selecione Avançar para navegar até o objeto que você gostaria de compartilhar e selecione "Adicionar Conjuntos de Dados". Você pode selecionar tabelas e exibições do banco de dados SQL do Azure e do Azure Synapse Analytics (anteriormente conhecido como Azure SQL DW) ou tabelas do pool SQL dedicado do Azure Synapse Analytics (workspace).

    Screenshot showing the Azure SQL Database dataset window with a SQL server selected.

  9. Na guia Destinatários, insira os endereços de email de seu Consumidor de Dados selecionando "+ Adicionar Destinatário". O endereço de email precisa ser o email de logon do Azure do destinatário.

    Screenshot of the recipients page, showing a recipient added.

  10. Selecione Continuar.

  11. Se você tiver selecionado o tipo de compartilhamento de instantâneo, poderá configurar a agenda de instantâneo para fornecer atualizações de seus dados para o consumidor de dados.

    Screenshot of the settings page, showing the snapshot toggle enabled.

  12. Selecione uma hora de início e um intervalo de recorrência.

  13. Selecione Continuar.

  14. Na guia Examinar + Criar, examine o Conteúdo do Pacote, Configurações, Destinatários e Configurações de Sincronização. Selecione Criar.

O Azure Data Share foi criado e o destinatário de seu Data Share está pronto para aceitar seu convite.

Pré-requisitos para receber dados

Para aceitar um convite de compartilhamento de dados, você precisa preparar o ambiente.

Confirme se todos os pré-requisitos estão completos antes de aceitar um convite de compartilhamento de dados:

Também há pré-requisitos para o recurso em que os dados recebidos serão armazenados. Selecione o tipo de recurso e siga as etapas:

Pré-requisitos para uma conta de armazenamento de destino

Se você optar por receber dados no Armazenamento do Azure, conclua estes pré-requisitos antes de aceitar um compartilhamento de dados:

  • Uma conta do Armazenamento do Azure.
  • Permissão para gravar na conta de armazenamento: Microsoft.Storage/storageAccounts/write. Essa permissão existe na função Colaborador.
  • Permissão para adicionar uma atribuição de função da identidade gerenciada do recurso do Data Share à conta de armazenamento, que está presente em: Microsoft.Authorization/role assignments/write. Essa permissão existe na função Proprietário.

Pré-requisitos para o recebimento de dados no Banco de Dados SQL do Azure ou no Azure Synapse Analytics (antigo SQL DW do Azure)

Para um servidor SQL em que você é o administrador do Microsoft Entra do SQL Server, preencha estes pré-requisitos antes de aceitar um compartilhamento de dados:

  • Um Banco de Dados SQL do Azure ou o Azure Synapse Analytics (antigo Azure SQL DW).
  • Permissão para gravar nos bancos de dados no SQL Server: Microsoft.Sql/servers/databases/write. Essa permissão existe na função Colaborador.
  • Acesso ao Firewall do SQL Server:
    1. No portal do Azure, navegue até o servidor SQL. Selecione Firewalls e redes virtuais no painel de navegação à esquerda.
    2. Escolha Sim na opção Permitir que serviços e recursos do Azure acessem este servidor.
    3. Selecione +Adicionar IP de cliente. O endereço IP do cliente pode ser alterado, portanto, talvez seja necessário adicionar o IP do cliente novamente na próxima vez que compartilhar dados do portal.
    4. Selecione Salvar.

Para um servidor SQL em que você não é o administrador do Microsoft Entra, preencha estes pré-requisitos antes de aceitar um compartilhamento de dados:

Siga o vídeo de demonstração passo a passo ou as etapas abaixo para configurar os pré-requisitos.

  • Um Banco de Dados SQL do Azure ou o Azure Synapse Analytics (antigo Azure SQL DW).

  • Permissão para gravar nos bancos de dados no servidor SQL: Microsoft.Sql/servers/databases/write. Essa permissão existe na função Colaborador.

  • Permissão para que a identidade gerenciada do recurso do Data Share acesse o Banco de Dados SQL do Azure ou o Azure Synapse Analytics:

    1. No portal do Azure, navegue até o SQL Server e defina-se como o Microsoft Entra Admin.

    2. Conecte-se ao Banco de Dados SQL/Data Warehouse do Azure usando o Editor de Consultas ou o SQL Server Management Studio com autenticação do Microsoft Entra.

    3. Execute o script a seguir para adicionar a identidade gerenciada do Data Share como um 'db_datareader, db_datawriter, db_ddladmin'.

      create user "<share_acc_name>" from external provider; 
      exec sp_addrolemember db_datareader, "<share_acc_name>"; 
      exec sp_addrolemember db_datawriter, "<share_acc_name>"; 
      exec sp_addrolemember db_ddladmin, "<share_acc_name>";
      

      Observação

      O <share_acc_name> é o nome do seu recurso do Data Share.

  • Acesso ao firewall do SQL Server:

    1. No portal do Azure, navegue até o servidor SQL e selecione Firewalls e redes virtuais.
    2. Escolha Sim na opção Permitir que serviços e recursos do Azure acessem este servidor.
    3. Selecione +Adicionar IP de cliente. O endereço IP do cliente pode ser alterado, portanto, talvez seja necessário adicionar o IP do cliente novamente na próxima vez que compartilhar dados do portal.
    4. Selecione Salvar.

Pré-requisitos para o recebimento de dados no pool de SQL do Azure Synapse Analytics (workspace)

  • Um pool de SQL dedicado do Azure Synapse Analytics (workspace). No momento, não há suporte para o recebimento de dados no pool de SQL sem servidor.

  • Permissão para gravar no pool de SQL no workspace do Synapse: Microsoft.Synapse/workspaces/sqlPools/write. Essa permissão existe na função Colaborador.

  • Permissão para que a identidade gerenciada do recurso do Data Share acesse o pool de SQL do workspace do Synapse:

    1. No portal do Azure, navegue até o workspace do Synapse.

    2. Selecione o administrador do Active Directory do SQL na navegação à esquerda e defina-se como o administrador do Microsoft Entra.

    3. Abra o Synapse Studio e selecione Gerenciar no painel de navegação à esquerda. Escolha Controle de acesso em Segurança. Atribua a si mesmo a função Administrador do SQL ou Administrador do workspace.

    4. No Synapse Studio, selecione Desenvolver no painel de navegação à esquerda. Execute o script a seguir no pool de SQL para adicionar a identidade gerenciada pelo recurso do Data Share como um 'db_datareader, db_datawriter, db_ddladmin'.

      create user "<share_acc_name>" from external provider; 
      exec sp_addrolemember db_datareader, "<share_acc_name>"; 
      exec sp_addrolemember db_datawriter, "<share_acc_name>"; 
      exec sp_addrolemember db_ddladmin, "<share_acc_name>";
      

      Observação

      O <share_acc_name> é o nome do seu recurso do Data Share.

  • Acesso ao Firewall do workspace do Synapse:

    1. No portal do Azure, navegue até o workspace do Synapse. Selecione Firewalls no painel de navegação à esquerda.
    2. Selecione ATIVADO na opção Permitir que serviços e recursos do Azure acessem este workspace.
    3. Selecione +Adicionar IP de cliente. O endereço IP do cliente está sujeito a alterações. Esse processo talvez precise ser repetido na próxima vez em que você estiver compartilhando dados SQL do portal do Azure.
    4. Selecione Salvar.

Receber dados compartilhados

Convite aberto

Você pode abrir o convite do email ou diretamente do portal do Azure.

Para abrir um convite do email, confira sua caixa de entrada para um convite de seu provedor de dados. O convite é do Microsoft Azure, intitulado Convite do Azure Data Share de yourdataprovider@domain.com . Selecione Exibir convite para ver seu convite no Azure.

Para abrir um convite do portal do Azure diretamente, pesquise por Convites do Data Share no portal do Azure, que leva você à lista de convites do Data Share.

Se você for um usuário convidado em um locatário, precisará confirmar seu endereço de email para o locatário antes de exibir o convite do Data Share pela primeira vez. Depois de verificado, seu email é válido por 12 meses.

Screenshot of the invitations page, showing a pending invitation.

Depois, selecione o compartilhamento que deseja exibir.

Aceitar o convite

  1. Examine todos os campos, incluindo os Termos de uso. Se você concordar com os termos de uso, será solicitado a marcar a caixa para indicar sua concordância.

    Screenshot of the invitation acceptance page, showing the terms of use highlighted and the agreement selected.

  2. Em Conta do Data Share de Destino, selecione a assinatura e o Grupo de Recursos em que você vai implantar seu Data Share.

  3. Para o campo Conta do Data Share, selecione Criar nova se você não tiver uma conta do Data Share. Caso contrário, selecione uma conta do Data Share em que você gostaria de aceitar o compartilhamento de dados.

  4. Para o campo Nome do Compartilhamento Recebido, você pode deixar o padrão especificado pelo fornecimento de dados ou especificar um novo nome para o compartilhamento recebido.

  5. Depois de concordar com os termos de uso e especificar uma conta do Data Share para gerenciar seu compartilhamento recebido, selecione Aceitar e configurar. Uma assinatura de compartilhamento será criada.

    Screenshot of the acceptance page, showing the target data share account information filled out.

Se você não quiser aceitar o convite, selecione Rejeitar.

Configurar o compartilhamento recebido

Siga as etapas abaixo para configurar o local em que deseja receber os dados.

  1. Selecione a guia Conjuntos de Dados. Marque a caixa ao lado do conjunto de dados ao qual deseja atribuir um destino. Selecione + Mapear para o destino para escolher um armazenamento de dados de destino.

    Screenshot of the received shares page with the map to target button highlighted.

  2. Selecione o recurso de destino para armazenar os dados compartilhados. Todos os arquivos de dados ou tabelas no armazenamento de dados de destino com o mesmo caminho e nome serão substituídos. Se você estiver recebendo dados em um armazenamento SQL e a caixa de seleção Permitir que o Data Share seja executado acima do script do SQL "criar usuário" em meu nome for exibida, marque-a. Caso contrário, siga as instruções em pré-requisitos para executar o script que está aparecendo na tela. Isso fornecerá permissão de gravação de recurso de Data Share para seu banco de dado SQL de destino.

    Screenshot of the map datasets to target window, showing available targets in the dropdown.

  3. Para o compartilhamento baseado em instantâneo, se o provedor de dados tiver criado um agendamento de instantâneo para fornecer atualização regular aos dados, você também poderá habilitar o agendamento de instantâneo selecionando a guia Agendamento de Instantâneos. Marque a caixa ao lado do Agendamento de instantâneo e selecione + Habilitar.

    Observação

    O primeiro instantâneo agendado começará dentro de um minuto após a hora agendada e os instantâneos posteriores começarão em segundos da hora agendada.

    Screenshot showing the snapshot schedule tab with the enable button selected.

Disparar um instantâneo

Essas etapas se aplicam somente ao compartilhamento baseado em instantâneo.

  1. Você pode disparar um instantâneo selecionando a guia Detalhes seguido de Disparar instantâneo. Aqui, você pode disparar um instantâneo completo de seus dados. Se esta for a primeira vez que você está recebendo dados de seu provedor de dados, selecione a cópia completa. Quando um instantâneo estiver em execução, os próximos instantâneos não serão iniciados até que o anterior seja concluído.

    Screenshot of the received shares page, showing the trigger snapshot dropdown selected and the full copy option highlighted.

  2. Quando o status da última execução for bem-sucedido, acesse o armazenamento de dados de destino para exibir os dados recebidos. Selecione Conjuntos de dados e clique no link no Caminho de Destino.

    Screenshot of the datasets tab showing a successful dataset selected.

Exibir histórico

Esta etapa só se aplica ao compartilhamento baseado em instantâneo. Para ver o histórico dos seus instantâneos, selecione a guia Histórico. Aqui, você encontrará o histórico de todos os instantâneos gerados nos últimos 30 dias.

Desempenho do instantâneo

O desempenho do instantâneo do SQL é afetado por muitos fatores. É sempre recomendável realizar seus próprios testes de desempenho. Veja abaixo alguns fatores de exemplo que afetam o desempenho.

  • Operações de IOPS (entrada/saída por segundo) de armazenamento de dados de origem ou destino e largura de banda.
  • Configuração de hardware (por exemplo, vCores, memória, DWU) dos armazenamentos de dados SQL de origem e de destino.
  • Acesso simultâneo aos armazenamentos de dados de origem e de destino. Se você estiver compartilhando várias tabelas e exibições do mesmo armazenamento de dados do SQL ou receber várias tabelas e exibições no mesmo armazenamento de dados do SQL, o desempenho será afetado.
  • Largura de banda de rede entre os armazenamentos de dados de origem e de destino e o local dos armazenamentos de dados de origem e destino.
  • Tamanho das tabelas e exibições que estão sendo compartilhadas. O compartilhamento de instantâneo SQL faz uma cópia completa da tabela inteira. Se o tamanho da tabela aumentar ao longo do tempo, o instantâneo levará mais tempo.

Para tabelas grandes em que as atualizações incrementais são desejadas, você pode exportar atualizações para a conta de armazenamento e aproveitar a funcionalidade de compartilhamento incremental da conta de armazenamento para um desempenho mais rápido.

Solucionar falhas de instantâneo do SQL

A causa mais comum de falha de instantâneo é que o Data Share não tem permissão para o armazenamento de dados de origem ou de destino. Para conceder permissão de Compartilhamento de Dados ao Banco de Dados SQL do Azure de origem ou de destino ou ao Azure Synapse Analytics (anteriormente Azure SQL DW), você deve executar o script SQL fornecido ao se conectar ao banco de dados SQL usando a autenticação do Microsoft Entra. Para solucionar outras falhas de instantâneo de SQL, confira Solucionar problemas de falha do instantâneo.

Próximas etapas

Você aprendeu a compartilhar e receber dados de fontes SQL usando o serviço do Azure Data Share. Para saber mais sobre o compartilhamento de outras fontes de dados, continue para fontes de dados com suporte.