Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Neste artigo, aprende-se a importar blobs da sua conta de armazenamento para o Azure Data Explorer usando uma ligação de dados do Event Grid. Você criará uma conexão de dados da Grade de Eventos que define uma assinatura da Grade de Eventos do Azure. A subscrição da Grelha de Eventos encaminha eventos da sua conta de armazenamento para o Azure Data Explorer através de Hubs de Eventos do Azure.
Observação
A ingestão suporta um tamanho máximo de ficheiro de 6 GB. A recomendação é ingerir arquivos entre 100 MB e 1 GB.
Para saber como criar a conexão usando os SDKs do Kusto, consulte Criar uma conexão de dados de grade de eventos com SDKs.
Para obter informações gerais sobre a ingestão de dados no Azure Data Explorer a partir da Grade de Eventos, consulte Conectar-se à Grade de Eventos.
Observação
Para obter o melhor desempenho com a conexão do Event Grid, defina a rawSizeBytes propriedade de ingestão por meio dos metadados do blob. Para obter mais informações, consulte Propriedades de ingestão.
Pré-requisitos
- Uma assinatura do Azure. Crie uma conta do Azure gratuita.
- Um cluster e um banco de dados do Azure Data Explorer. Crie um cluster e um banco de dados.
- Uma tabela de destino. Crie uma tabela ou use uma tabela existente.
- Um mapeamento de ingestão para a tabela.
- Uma conta de armazenamento. Uma assinatura de notificação de Evento Grid pode ser configurada em contas de Armazenamento do Azure para
BlobStorage,StorageV2ou Data Lake Storage Gen2. - Certifique-se que o provedor de recursos da Grade de Evento esteja registrado.
Criar uma conexão de dados da Grade de Eventos
Nesta seção, você estabelece uma conexão entre a Grade de Eventos e sua tabela do Azure Data Explorer.
Navegue até o 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>do Evento Grid (armazenamento de Blob).
Preencha o formulário de conexão de dados da Grade de Eventos com as seguintes informações:
Configuração Valor sugerido Descrição do campo Nome da conexão de dados ensaio-ligação à rede 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ços e pontos e ter até 40 caracteres. Subscrição da conta de armazenamento ID da sua subscrição O ID de subscrição onde se encontra a sua conta de armazenamento. Tipo de evento Blob criado ou Blob renomeado O tipo de evento que desencadeia a ingestão. O Blob renomeado é suportado apenas para armazenamento 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 tipos suportados 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ático Ativar a criação automática de recursos significa que o Azure Data Explorer cria uma assinatura do Event Grid, um namespace do Event Hubs e um Event Hub para si. Caso contrário, você precisa criar esses recursos manualmente para garantir a criação da conexão de dados. Consulte Criar recursos manualmente para ingestão do Event Grid Opcionalmente, você pode acompanhar assuntos específicos da Grade de Eventos. Defina os filtros para as notificações da seguinte forma:
-
Campo de prefixo é o prefixo literal do sujeito. Como o padrão aplicado é começa com, ele pode abranger múltiplos contentores, pastas ou blobs. Não são permitidos curingas.
- Para definir um filtro no contêiner de blob, o campo deve ser definido da seguinte forma:
/blobServices/default/containers/[container prefix]. - Para definir um filtro em um prefixo de blob (ou uma pasta no Azure Data Lake Gen2), o campo deve 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 deve ser definido da seguinte forma:
- Campo de sufixo é o sufixo literal do blob. Não são permitidos curingas.
- 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 como filtrar eventos, consulte Eventos de armazenamento de Blob.
-
Campo de prefixo é o prefixo literal do sujeito. Como o padrão aplicado é começa com, ele pode abranger múltiplos contentores, pastas ou blobs. Não são permitidos curingas.
Opcionalmente, você pode especificar as configurações de roteamento de dados de acordo com as informações a seguir. Não é necessário 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 encaminhamento dos dados para outros bancos de dados (conexão de dados com 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 roteamento de banco de dados, consulte Roteamento de eventos. Nome da tabela TestTable A tabela que criou em TestDatabase. Formato dos 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 criaste em TestDatabase, que atribui dados de entrada aos nomes de coluna 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 formato Ignorar Ative esta opção se quiser ignorar erros de formato para o formato de dados JSON. Observação
Os nomes de tabelas e mapeamentos são sensíveis a maiúsculas e minúsculas.
Opcionalmente, em Configurações avançadas, você pode especificar o tipo de identidade gerenciada usado pela conexão de dados. Por padrão, System-assigned é 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 está atribuído ao cluster, ele será atribuído automaticamente. Para obter mais informações, consulte Configurar identidades gerenciadas para seu cluster do Azure Data Explorer.
Se você selecionar Nenhum, a conta de armazenamento e o Hub de Eventos serão autenticados por meio de cadeias de conexão. Este método não é recomendado.
Selecione Criar
Usar a conexão de dados do Event Grid
Esta seção mostra como desencadear 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 de um blob ou a alteração do seu nome.
Selecione a guia relevante com base no tipo de SDK de armazenamento usado para carregar blobs.
O exemplo de código a seguir usa o SDK de Armazenamento de Blob do Azure para carregar um arquivo no Armazenamento de Blobs do Azure. O carregamento aciona 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. Retenha os blobs por três a cinco dias usando o ciclo de vida do armazenamento de Blob do Azure para gerenciar a exclusão de blobs.
Observação
Não há suporte para acionar a ingestão após uma CopyBlob operação para contas de armazenamento que tenham o recurso de namespace hierárquico habilitado nelas.
Importante
Desencorajamos muito a geração de Eventos de Armazenamento a partir de código personalizado e o envio para Hubs de Eventos. Se você optar por fazer isso, certifique-se de que os eventos produzidos sigam estritamente 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 de Grade de Eventos do portal do Azure, execute as seguintes 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 ligação de dados relevante do Event Grid.
- Na barra de menu superior, selecione Excluir.