Partilhar via


Partilhar dados com o Azure Data Explorer

Você pode compartilhar dados de muitas maneiras tradicionais, como por meio de compartilhamentos de arquivos, FTP, e-mail e APIs. Esses métodos exigem que ambas as partes criem e mantenham um pipeline de dados que mova dados entre equipes e organizações. Com o Azure Data Explorer, pode partilhar os seus dados de forma fácil e segura com pessoas da sua empresa ou parceiros externos. O compartilhamento ocorre quase em tempo real, sem a necessidade de criar ou manter um pipeline de dados. Todas as alterações de banco de dados, incluindo esquema e dados, no lado do provedor estão instantaneamente disponíveis no lado do consumidor.

Azure Friday Video.

O Azure Data Explorer separa o armazenamento e a computação, o que permite executar várias instâncias de computação (somente leitura) no mesmo armazenamento subjacente. Você pode anexar um banco de dados como um banco de dados seguidor, que funciona como um banco de dados em modo somente leitura num cluster remoto.

Configurar o compartilhamento de dados

Use o Compartilhamento de Dados do Azure para enviar e gerenciar convites e compartilhamentos em toda a empresa ou com parceiros e clientes externos. O Compartilhamento de Dados do Azure usa um banco de dados de seguidores para criar um link simbólico entre o provedor e o cluster do Azure Data Explorer do consumidor. Esta opção fornece um único painel para exibir e gerenciar todos os seus compartilhamentos de dados em clusters do Azure Data Explorer e outros serviços de dados. O Compartilhamento de Dados do Azure também permite que você compartilhe dados entre organizações em diferentes locatários do Microsoft Entra.

Observação

Um administrador em ambos os clusters pode configurar diretamente o banco de dados de seguidores com várias APIs. Essa configuração é útil em cenários em que você precisa de computação adicional para expandir para relatórios.

Você pode configurar o compartilhamento de dados para as seguintes opções:

Observação

Quando a relação de compartilhamento é estabelecida, o Compartilhamento de Dados do Azure cria um link simbólico entre o provedor e o cluster do Azure Data Explorer do consumidor. Se o provedor de dados revogar o acesso, o link simbólico será excluído e os bancos de dados compartilhados não estarão mais disponíveis para o consumidor de dados.

Compartilhamento de dados do Azure Data Explorer.

O provedor de dados pode compartilhar os dados no nível do banco de dados ou no nível do cluster. O cluster que compartilha o banco de dados é o cluster líder e o cluster que recebe o compartilhamento é o cluster de seguidores. Um cluster de seguidores pode seguir um ou mais bancos de dados de cluster de líderes. O cluster de seguidores sincroniza periodicamente para verificar se há alterações. O tempo de atraso entre o líder e o seguidor varia de alguns segundos a alguns minutos, dependendo do tamanho geral dos metadados e dos dados. Os dados são armazenados em cache no cluster de consumidor e só estão disponíveis para operações de leitura ou consulta, com uma exceção para substituir a política de hot caching e as permissões do banco de dados. As consultas em execução no cluster de seguidores usam cache local e não usam os recursos do cluster líder.

Pré-requisitos

Fluxo de compartilhamento de dados

  1. O provedor usa seu recurso de Compartilhamento de Dados do Azure para compartilhar um banco de dados completo ou uma tabela específica e especificar o endereço de email do destinatário.
  2. O Compartilhamento de Dados do Azure envia um convite por email para o destinatário.
  3. O destinatário abre o convite por email e seleciona seu recurso de Compartilhamento de Dados do Azure.
  4. O recetor usa o Compartilhamento de Dados do Azure para mapear o banco de dados compartilhado ou a tabela para o cluster apropriado.

Fornecedor de dados

O provedor de dados pode compartilhar um banco de dados completo ou uma tabela específica com o recetor.

Partilhar uma base de dados completa

Siga as instruções no vídeo para criar uma conta de Partilha de Dados do Azure, adicionar um conjunto de dados e enviar um convite. Provedor de dados - compartilhar dados.

Partilhar tabelas

Você pode usar um modelo do Azure Resource Manager para compartilhar uma ou mais tabelas por meio do Compartilhamento de Dados do Azure.

Use as seguintes etapas para compartilhar tabelas:

  1. Crie um modelo e defina os parâmetros apropriados no conjunto de dados, restrições de tabela e especifique o destinatário do convite. Use as informações na tabela a seguir para ajudá-lo a configurar o modelo.

Parâmetros Gerais

Parâmetro Descrição Exemplo
nomedaconta; O nome da conta de Compartilhamento de Dados do Azure do provedor.
Localização A localização de todos os recursos. O líder e o seguidor devem estar no mesmo local.
nome_do-compartilhamento O nome do compartilhamento que você cria na conta de compartilhamento de dados.
destinatárioE-mail O email do destinatário do Compartilhamento de Dados do Azure.

Parâmetros do banco de dados

Parâmetro Descrição Exemplo
Nome do banco de dados O nome do banco de dados do provedor.
databaseResourceId O identificador do recurso do banco de dados do provedor.

Parâmetros de tabela e visualização

Parâmetro Descrição Exemplo
externalTablesToExclude A lista de tabelas externas a serem excluídas. Para excluir todas as tabelas externas, use ["*"]. ["ExternalTable1ToExclude", "ExternalTable2ToExclude"]
externalTablesToInclude A lista de tabelas externas a serem incluídas. Para incluir todas as tabelas externas começando com 'Logs', use ["Logs*"]. ["ExternalTable1ToInclude", "ExternalTable2ToInclude"]
visõesMaterializadasAExcluir A lista de pontos de vista materializados a excluir. Para excluir todas as visualizações materializadas, use ["*"]. ["Mv11ToExclude", "Mv22ToExclude"]
visõesMaterializadasAIncluir A lista de pontos de vista materializados a incluir. Para incluir todas as visualizações materializadas começando com 'Logs', use ["Logs*"]. ["Mv1ToInclude", "Mv2ToInclude"]
tabelasToExclude A lista de tabelas a excluir. Para excluir todas as tabelas, use ["*"]. ["table1ToExclude", "table2ToExclude"]
tabelasParaIncluir A lista de tabelas a incluir. Para incluir todas as tabelas, use ["*"]. ["table1ToInclude", "table2ToInclude"]
    {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
        "accountName": { "type": "String" },
        "location": { "defaultValue": "[resourceGroup().location]", "type": "String" },
        "shareName": { "type": "String" },
        "recipientEmail": { "type": "String" },
        "databaseName": { "type": "String" },
        "databaseResourceId": { "type": "String" },
        "externalTablesToExclude": { "type": "Array" },
        "externalTablesToInclude": { "type": "Array" },
        "materializedViewsToExclude": { "type": "Array" },
        "materializedViewsToInclude": { "type": "Array" },
        "tablesToExclude": { "type": "Array" },
        "tablesToInclude": { "type": "Array" }
      },
      "variables": {
        "invitationSuffix": "[replace(replace(parameters('recipientEmail'),'@', '_'), '.', '_')]"
      },
      "resources": [
        {
          "type": "Microsoft.DataShare/accounts",
          "apiVersion": "2021-08-01",
          "name": "[parameters('accountName')]",
          "location": "[parameters('location')]",
          "identity": {
            "type": "SystemAssigned"
          },
          "properties": {}
        },
        {
          "type": "Microsoft.DataShare/accounts/shares",
          "apiVersion": "2021-08-01",
          "name": "[concat(parameters('accountName'), '/' , parameters('shareName'))]",
          "dependsOn": [
            "[resourceId('Microsoft.DataShare/accounts', parameters('accountName'))]"
          ],
          "properties": {
            "shareKind": "InPlace"
          }
        },
        {
          "type": "Microsoft.DataShare/accounts/shares/invitations",
          "apiVersion": "2021-08-01",
          "name": "[concat(parameters('accountName'), '/',  parameters('shareName'), '/', concat(parameters('shareName'), variables('invitationSuffix')))]",
          "dependsOn": [
            "[resourceId('Microsoft.DataShare/accounts/shares', parameters('accountName'), parameters('shareName'))]",
            "[resourceId('Microsoft.DataShare/accounts', parameters('accountName'))]"
          ],
          "properties": {
            "targetEmail": "[parameters('recipientEmail')]"
          }
        },
        {
          "type": "Microsoft.DataShare/accounts/shares/dataSets",
          "apiVersion": "2021-08-01",
          "name": "[concat(parameters('accountName'), '/', parameters('shareName'), '/', parameters('databaseName'))]",
          "dependsOn": [
            "[resourceId('Microsoft.DataShare/accounts/shares', parameters('accountName'), parameters('shareName'))]",
            "[resourceId('Microsoft.DataShare/accounts', parameters('accountName'))]"
          ],
          "kind": "KustoTable",
          "properties": {
            "kustoDatabaseResourceId": "[parameters('databaseResourceId')]",
            "tableLevelSharingProperties": {
              "externalTablesToExclude": "[parameters('externalTablesToExclude')]",
              "externalTablesToInclude": "[parameters('externalTablesToInclude')]",
              "materializedViewsToExclude": "[parameters('materializedViewsToExclude')]",
              "materializedViewsToInclude": "[parameters('materializedViewsToInclude')]",
              "tablesToExclude": "[parameters('tablesToExclude')]",
              "tablesToInclude": "[parameters('tablesToInclude')]"
            }
          }
        }
      ]
    }
  1. Implante o modelo do Azure Resource Manager usando o portal do Azure ou o PowerShell.

    implantação de modelo.

Consumidor de dados - receber dados

Siga as instruções no vídeo para aceitar o convite, criar uma conta de compartilhamento de dados e mapear para o cluster de consumidores.

Consumidor de Dados - Recebimento de Dados.

O consumidor de dados agora pode ir para seu cluster do Azure Data Explorer para conceder permissões de usuário aos bancos de dados compartilhados e acessar os dados. Os dados ingeridos usando a ingestão enfileirada no cluster do Azure Data Explorer de origem aparecem no cluster de destino dentro de alguns segundos a alguns minutos.

Limitações