Criar uma ligação de dados do Event Grid para o Azure Data Explorer

Neste artigo, vai aprender a ingerir blobs da sua conta de armazenamento no Azure Data Explorer através de uma ligação de dados do Event Grid. Irá criar uma ligação de dados do Event Grid que define uma subscrição Azure Event Grid. A subscrição do Event Grid encaminha eventos da sua conta de armazenamento para o Azure Data Explorer através de um Hubs de Eventos do Azure.

Nota

A ingestão suporta um tamanho máximo de ficheiros de 6 GB. A recomendação é ingerir ficheiros entre 100 MB e 1 GB.

Para saber como criar a ligação com os SDKs do Kusto, veja Criar uma ligação de dados do Event Grid com SDKs.

Para obter informações gerais sobre como ingerir no Azure Data Explorer do Event Grid, veja Ligar ao Event Grid.

Nota

Para obter o melhor desempenho com a ligação do Event Grid, defina a rawSizeBytes propriedade ingestão através dos metadados do blob. Para obter mais informações, veja Propriedades de ingestão.

Pré-requisitos

Criar uma ligação de dados do Event Grid

Nesta secção, vai estabelecer uma ligação entre o Event Grid e a sua tabela de Data Explorer do Azure.

  1. Navegue para o cluster do Azure Data Explorer no portal do Azure.

  2. Em Dados, selecione Bases de Dados>TestDatabase.

    Captura de ecrã da secção da base de dados do cluster a mostrar uma lista de bases de dados que contém.

  3. Em Definições, selecione Ligações de dados e, em seguida, selecione Adicionar ligação> de dadosEvent Grid (Armazenamento de blobs).

    Captura de ecrã da página de ligações de dados. A opção para adicionar uma ligação de dados está realçada.

  4. Preencha o formulário de ligação de dados do Event Grid com as seguintes informações:

    Captura de ecrã do painel Event Grid a mostrar os detalhes da ligação de dados.

    Definição Valor sugerido Descrição do campo
    Nome da ligação de dados test-grid-connection O nome da ligação que pretende criar no Azure Data Explorer. Os nomes de ligação de dados só podem conter carateres alfanuméricos, traços e pontos e ter até 40 carateres de comprimento.
    Subscrição da conta de armazenamento O ID da subscrição O ID da subscrição onde se encontra a sua conta de armazenamento.
    Tipo de evento Blob criado ou Blob mudado O tipo de evento que aciona a ingestão. O nome do blob mudado é suportado apenas para o armazenamento do ADLSv2. Para mudar o nome de um blob, navegue para o blob em portal do Azure, clique com o botão direito do rato no blob e selecione Mudar o nome. Os tipos suportados são: Microsoft.Storage.BlobCreated ou Microsoft.Storage.BlobRenamed.
    Conta de armazenamento gridteststorage1 O nome da conta de armazenamento que criou anteriormente.
    Criação de recursos Automático Ativar a criação automática de recursos significa que o Azure Data Explorer cria uma Subscrição do Event Grid, um espaço de nomes dos Hubs de Eventos e um Hubs de Eventos para si. Caso contrário, tem de criar estes recursos manualmente para garantir a criação da ligação de dados. Veja Criar manualmente recursos para a ingestão do Event Grid
    1. Opcionalmente, pode controlar assuntos específicos do Event Grid. Defina os filtros para as notificações da seguinte forma:

      • O campo prefixo é o prefixo literal do assunto. À medida que o padrão aplicado é iniciado, pode abranger vários contentores, pastas ou blobs. Não são permitidos carateres universais.
        • Para definir um filtro no contentor de blobs, o campo tem de ser definido da seguinte forma: /blobServices/default/containers/[container prefix].
        • Para definir um filtro num prefixo de blobs (ou numa pasta no Azure Data Lake Gen2), o campo tem de ser definido da seguinte forma: /blobServices/default/containers/[container name]/blobs/[folder/blob prefix].
      • O campo Sufixo é o sufixo literal do blob. Não são permitidos carateres universais.
      • O campo Sensível a Maiúsculas e Minúsculas indica se os filtros de prefixo e sufixo são sensíveis a maiúsculas e minúsculas

      Para obter mais informações sobre a filtragem de eventos, veja Eventos de armazenamento de blobs.

    2. Opcionalmente, pode especificar as definições de encaminhamento de dados de acordo com as seguintes informações. Não tem de especificar todas as definições de encaminhamento de dados. As definições parciais também são aceites.

      Definição Valor sugerido Descrição do campo
      Permitir o encaminhamento dos dados para outras bases de dados (ligação de dados de várias bases de dados) Não permitir Alterne esta opção se quiser substituir a base de dados de destino predefinida associada à ligação de dados. Para obter mais informações sobre o encaminhamento de bases de dados, veja Encaminhamento de eventos.
      Nome da tabela TestTable A tabela que criou em TestDatabase.
      Formato de dados JSON Os formatos suportados são APACHEAVRO, Avro, CSV, JSON, ORC, PARQUET, PSV, RAW, SCSV, SOHSV, TSV, TSVE, TXT e W3CLOG. As opções de compressão suportadas são Zip e Gzip.
      Nome do mapeamento TestTable_mapping O mapeamento que criou no TestDatabase, que mapeia os dados recebidos para os nomes de colunas e tipos de dados da TestTable. Se não for especificado, é gerado automaticamente um mapeamento de dados de identidade derivado do esquema da tabela.
      Ignorar erros de formato Ignorar Alterne esta opção se quiser ignorar erros de formato para o formato de dados JSON.

      Nota

      Os nomes de tabelas e mapeamentos são sensíveis às maiúsculas e minúsculas.

    3. Opcionalmente, em Definições avançadas, pode especificar o tipo de identidade gerida que é utilizado pela sua ligação de dados. Por predefinição, a opção Atribuída pelo sistema está selecionada.

      Se selecionar Atribuído pelo utilizador, terá de atribuir manualmente uma identidade gerida. Se selecionar um utilizador que ainda não esteja atribuído ao cluster, este será atribuído automaticamente. Para obter mais informações, veja Configurar identidades geridas para o cluster do Azure Data Explorer.

      Se selecionar Nenhum, a conta de armazenamento e o Hub de Eventos são autenticados através de cadeias de ligação. Este método não é recomendado.

      Captura de ecrã da secção de definições avançadas a mostrar os tipos de identidade gerida que podem ser utilizados para a ligação de dados.

  5. Selecione Criar

Utilizar a ligação de dados do Event Grid

Esta secção mostra como acionar a ingestão do Armazenamento de Blobs do Azure ou do Azure Data Lake Gen2 para o cluster após a criação de blobs ou o nome do blob.

Selecione o separador relevante com base no tipo de SDK de armazenamento utilizado para carregar blobs.

O seguinte exemplo de código utiliza o SDK Armazenamento de Blobs do Azure para carregar um ficheiro para Armazenamento de Blobs do Azure. O carregamento aciona a ligação de dados do Event Grid, que ingere os dados no Azure Data Explorer.

var azureStorageAccountConnectionString = <storage_account_connection_string>;
var containerName = <container_name>;
var blobName = <blob_name>;
var localFileName = <file_to_upload>;
var uncompressedSizeInBytes = <uncompressed_size_in_bytes>;
var mapping = <mapping_reference>;
// Create a new container if it not already exists.
var azureStorageAccount = new BlobServiceClient(azureStorageAccountConnectionString);
var container = azureStorageAccount.GetBlobContainerClient(containerName);
container.CreateIfNotExists();
// Define blob metadata and uploading options.
IDictionary<String, String> metadata = new Dictionary<string, string>();
metadata.Add("rawSizeBytes", uncompressedSizeInBytes);
metadata.Add("kustoIngestionMappingReference", mapping);
var uploadOptions = new BlobUploadOptions
{
    Metadata = metadata,
};
// Upload the file.
var blob = container.GetBlobClient(blobName);
blob.Upload(localFileName, uploadOptions);

Nota

O Azure Data Explorer não elimina os blobs após a ingestão. Mantenha os blobs durante três a cinco dias com o ciclo de vida do armazenamento de Blobs do Azure para gerir a eliminação de blobs.

Nota

Acionar a ingestão após uma CopyBlob operação não é suportada para contas de armazenamento que tenham a funcionalidade de espaço de nomes hierárquico ativada.

Remover uma ligação de dados do Event Grid

Para remover a ligação do Event Grid da portal do Azure, siga os seguintes passos:

  1. Aceda ao cluster. No menu esquerdo, selecione Bases de Dados. Em seguida, selecione a base de dados que contém a tabela de destino.
  2. No menu esquerdo, selecione Ligações de dados. Em seguida, selecione a caixa de verificação junto à ligação de dados relevante do Event Grid.
  3. Na barra de menus superior, selecione Eliminar.