Criar uma conexão de dados da Grade de Eventos para o Azure Data Explorer
Neste artigo, você aprende a incluir blobs de sua conta de armazenamento no Azure Data Explorer usando uma conexão de dados de grade de eventos. Você criará uma conexão de dados de grade de eventos que define uma assinatura da Grade de Eventos do Azure. A assinatura da Grade de Eventos roteia eventos de sua conta de armazenamento para o Azure Data Explorer por meio dos Hubs de Eventos do Azure.
Observação
A ingestão dá suporte para um tamanho do arquivo máximo de 6 GB. A recomendação é ingerir arquivos entre 100 MB e 1 GB.
Para aprender a criar a conexão usando os SDKs do Kusto, veja Criar uma conexão de dados do Grade de Eventos do Azure com SDKs.
Para obter informações gerais sobre a ingestão no Azure Data Explorer da Grade de Eventos, confira Conectar-se à Grade de Eventos.
Observação
Para obter o melhor desempenho com a conexão da Grade de Eventos, defina a propriedade de ingestão rawSizeBytes
por meio dos metadados do blob. Para obter mais informações, consulte propriedades de ingestão.
Pré-requisitos
- Uma assinatura do Azure. Criar uma conta gratuita do Azure.
- Um cluster e um banco de dados do Azure Data Explorer. Criar um cluster e um banco de dados.
- Uma tabela de destino. Criar uma tabela ou usar uma tabela existente.
- Um mapeamento de ingestão para a tabela.
- Uma conta de armazenamento. Uma assinatura de notificação da Grade de Eventos pode ser definida em contas de Armazenamento do Azure para
BlobStorage
,StorageV2
ou Data Lake Storage Gen2. - Tenha o provedor de recursos Grade de Eventos registrado.
Criar uma conexão de dados da Grade de Eventos
Nessa seção, você estabelecerá uma conexão entre o Event Grid e sua tabela do Azure Data Explorer.
Navegue até seu cluster do Azure Data Explorer no portal do Azure.
Em Dados, selecione Bancos de dados>TestDatabase.
Em Configurações, selecione Conexões de dados e, em seguida, selecione Adicionar conexão de dados>Grade de Eventos do Azure (armazenamento de blobs).
Preencha o formulário de conexão de dados do Grade de Eventos do Azure com as seguintes informações:
Configuração Valor sugerido Descrição do campo Nome da conexão de dados test-grid-connection O nome da conexão que você deseja criar no Azure Data Explorer. Os nomes de conexão de dados podem conter apenas caracteres alfanuméricos, traço e ponto, e ter até 40 caracteres de comprimento. Assinatura da conta de armazenamento Sua ID de assinatura A ID da assinatura em que sua conta de armazenamento está. Tipo de evento Blob criado ou blob renomeado O tipo de evento que aciona a ingestão. Há suporte para renomear blobs somente no armazenamento de ADLSv2. Para renomear um blob, navegue até o blob no portal do Azure, clique com o botão direito do mouse no blob e selecione Renomear. Os eventos com suporte são: Microsoft.Storage.BlobCreated ou Microsoft.Storage.BlobRenamed. Conta de armazenamento gridteststorage1 O nome da conta de armazenamento que você criou anteriormente. Criação de recursos Automática Ativar a criação automática de recursos significa que o Azure Data Explorer cria uma Assinatura de Grade de Eventos, um namespace de Hubs de Eventos e um Hubs de Eventos para você. Caso contrário, você precisará criar esses recursos manualmente para garantir a criação da conexão de dados. Veja Criar manualmente recursos para ingestão do Grade de Eventos do Azure Opcionalmente, você pode rastrear assuntos específicos do Grade de Eventos do Azure. Defina os filtros das notificações da seguinte maneira:
- O campo Prefixo é o prefixo literal do assunto. Como o padrão aplicado é começa com, ele pode abranger vários contêineres, pastas ou blobs. Não são permitidos curingas.
- Para definir um filtro no contêiner de blob, o campo precisa ser definido da seguinte maneira:
/blobServices/default/containers/[container prefix]
. - Para especificar um filtro em um prefixo de blob (ou uma pasta no Azure Data Lake Gen2), o campo precisa ser definido da seguinte maneira:
/blobServices/default/containers/[container name]/blobs/[folder/blob prefix]
.
- Para definir um filtro no contêiner de blob, o campo precisa ser definido da seguinte maneira:
- O campo Sufixo é o sufixo literal do blob. Não são permitidos curingas.
- O campo diferenciar maiúsculas de minúsculas indica se os filtros de prefixo e sufixo diferenciam maiúsculas de minúsculas.
Para obter mais informações sobre eventos de filtragem, veja Eventos de armazenamento de blobs.
- O campo Prefixo é o prefixo literal do assunto. Como o padrão aplicado é começa com, ele pode abranger vários contêineres, pastas ou blobs. Não são permitidos curingas.
Opcionalmente, você pode especificar as Configurações de roteamento de dados de acordo com as seguintes informações. Você não precisa especificar todas as Configurações de roteamento de dados. Configurações parciais também são aceitas.
Configuração Valor sugerido Descrição do campo Permitir o roteamento dos dados para outros bancos de dados (conexão de dados de vários bancos de dados) Não permitir Ative essa opção se quiser substituir o banco de dados de destino padrão associado à conexão de dados. Para obter mais informações sobre o roteamento do banco de dados, confira Roteamento de eventos. Nome da tabela TestTable A tabela criada na 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 compactação suportadas são zip e gzip. Nome do mapeamento TestTable_mapping O mapeamento que você criou em TestDatabase, que mapeia os dados de entrada para os nomes das colunas e tipos de dados de TestTable. Se não for especificado, um mapeamento de dados de identidade derivado do esquema da tabela será gerado automaticamente. Ignorar erros de formatação Ignorar Ative esta opção se quiser ignorar erros de formato de dados JSON. Observação
Nomes de tabelas e mapeamentos diferenciam maiúsculas de minúsculas.
Opcionalmente, em Configurações avançadas, você pode especificar o Tipo de identidade gerenciada que é usado pela sua conexão de dados. Por padrão, Atribuído pelo sistema é selecionado.
Se você selecionar Atribuído pelo usuário, precisará atribuir manualmente uma identidade gerenciada. Se você selecionar um usuário que ainda não esteja atribuído ao seu cluster, ele será atribuído automaticamente. Para obter mais informações, veja Configurar identidades gerenciadas para seu cluster do Azure Data Explorer.
Se você selecionar Nenhum, a conta de armazenamento e o Event Hub serão autenticados por meio de strings de conexão. Esse método não é recomendado.
Escolha Criar
Usar a conexão de dados da Grade de Eventos
Esta seção mostra como disparar a ingestão do Armazenamento de Blobs do Azure ou do Azure Data Lake Gen 2 para o seu cluster após a criação ou renomeação de blob.
Selecione a guia relevante com base no tipo de SDK de armazenamento usado para fazer upload de blobs.
O exemplo de código a seguir usa o Armazenamento de Blobs do Azure do SDK para carregar um arquivo no Armazenamento de Blobs do Azure. O upload dispara a conexão de dados da Grade de Eventos, 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);
Observação
O Azure Data Explorer não excluirá os blobs após a ingestão. Mantenha os blobs por três a cinco dias usando o ciclo de vida do Armazenamento de Blobs do Azure para gerenciar a exclusão de blobs.
Observação
O disparo da ingestão após uma operação CopyBlob
não é compatível com contas de armazenamento que tenham o recurso de namespace hierárquico habilitado.
Importante
Não recomendamos fortemente gerar eventos de armazenamento a partir de código personalizado e enviá-los aos Hubs de Eventos do Azure. Se você optar por fazer isso, certifique-se de que os eventos produzidos sigam rigorosamente o esquema de eventos de armazenamento apropriado e as especificações de formato JSON.
Remover uma conexão de dados da Grade de Eventos
Para remover a conexão do Event Grid do portal do Azure, siga essas etapas:
- Vá para o seu cluster. No menu à esquerda, selecione Bancos de dados. Em seguida, selecione o banco de dados que contém a tabela de destino.
- No menu à esquerda, selecione Conexões de dados. Em seguida, marque a caixa de seleção ao lado da conexão de dados relevante do Grade de Eventos do Azure.
- Na barra de menu superior, selecione Excluir.