Como ingerir dados históricos no Azure Data Explorer
Um cenário comum ao integrar no Azure Data Explorer é ingerir dados históricos, por vezes denominado backfill. O processo envolve a ingestão de dados de um sistema de armazenamento existente numa tabela, que é uma coleção de extensões.
Recomendamos a ingestão de dados históricos com a propriedade creationTime ingestion para definir o tempo de criação de extensões para a hora em que os dados foram criados. Utilizar o tempo de criação, uma vez que o critério de criação de partições de ingestão pode envelhecer os seus dados de acordo com as políticas de cache e retenção e tornar os filtros de tempo mais eficientes.
Por predefinição, a hora de criação de extensões está definida para a hora em que os dados são ingeridos, o que pode não produzir o comportamento esperado. Por exemplo, suponha que tem uma tabela que tem um período de cache de 30 dias e um período de retenção de dois anos. No fluxo normal, os dados ingeridos à medida que são produzidos são colocados em cache durante 30 dias e, em seguida, movidos para o armazenamento a frio. Após dois anos, com base na hora de criação, os dados mais antigos são removidos um dia de cada vez. No entanto, se ingerir dois anos de dados históricos em que, por predefinição, os dados são marcados com o tempo de criação como a hora em que os dados são ingeridos. Isto pode não produzir o resultado pretendido porque:
- Todos os dados são colocados em cache e permanecem lá durante 30 dias, com mais cache do que o previsto.
- Os dados mais antigos não são removidos um dia de cada vez; por isso, os dados são retidos no cluster por mais tempo do que o necessário e, após dois anos, são todos removidos de uma só vez.
- Os dados, anteriormente agrupados por data no sistema de origem, podem agora ser agrupados na mesma medida, o que leva a consultas ineficientes.
Neste artigo, vai aprender a particionar dados históricos:
Utilizar a
creationTime
propriedade ingestão durante a ingestão (recomendado)Sempre que possível, ingira dados históricos com a
creationTime
propriedade ingestão, o que lhe permite definir a hora de criação das extensões ao extraí-la do caminho do ficheiro ou do blob. Se a sua estrutura de pastas não utilizar um padrão de data de criação, recomendamos que reestruture o caminho do ficheiro ou blob para refletir a hora de criação. Ao utilizar este método, os dados são ingeridos na tabela com o tempo de criação correto e os períodos de cache e retenção são aplicados corretamente.Nota
Por predefinição, as extensões são particionadas por hora de criação (ingestão) e, na maioria dos casos, não é necessário definir uma política de criação de partições de dados.
Utilizar uma política de criação de partições após a ingestão
Se não conseguir utilizar a
creationTime
propriedade de ingestão, por exemplo, se estiver a ingerir dados com o conector do Azure Cosmos DB onde não consegue controlar a hora de criação ou se não conseguir reestruturar a estrutura de pastas, pode criar novas partições da tabela após a ingestão para obter o mesmo efeito com a política de criação de partições. No entanto, este método pode exigir algumas tentativas e erros para otimizar as propriedades da política e é menos eficiente do que a utilização dacreationTime
propriedade de ingestão. Apenas recomendamos este método quando a utilização dacreationTime
propriedade de ingestão não é possível.
Pré-requisitos
- Uma conta Microsoft ou uma identidade de utilizador Microsoft Entra. Não é necessária uma subscrição do Azure.
- Um cluster e uma base de dados do Azure Data Explorer. Criar um cluster e uma base de dados.
- Uma conta de armazenamento.
- Para o método recomendado de utilização da propriedade ingestão durante a
creationTime
ingestão, instale LightIngest.
Ingerir dados históricos
Recomendamos vivamente a criação de partições de dados históricos com a creationTime
propriedade ingestão durante a ingestão. No entanto, se não conseguir utilizar este método, pode dividir novamente a tabela após a ingestão com uma política de criação de partições.
O LightIngest pode ser útil para carregar dados históricos de um sistema de armazenamento existente para o Azure Data Explorer. Embora possa criar o seu próprio comando com a lista de argumentos da Linha de comandos, este artigo mostra-lhe como gerar automaticamente este comando através de um assistente de ingestão. Além de criar o comando, pode utilizar este processo para criar uma nova tabela e criar o mapeamento de esquema. Esta ferramenta infere o mapeamento de esquemas do conjunto de dados.
Destino
No Azure Data Explorer IU da Web, no menu esquerdo, selecione Consulta.
Clique com o botão direito do rato na base de dados na qual pretende ingerir os dados e, em seguida, selecione LightIngest.
A janela Ingerir dados é aberta com o separador Destino selecionado. Os campos Cluster e Base de Dados são preenchidos automaticamente.
Selecione uma tabela de destino. Se quiser ingerir dados numa nova tabela, selecione Nova tabela e, em seguida, introduza um nome de tabela.
Nota
Os nomes das tabelas podem ter até 1024 carateres, incluindo espaços, alfanuméricos, hífenes e carateres de sublinhado. Os carateres especiais não são suportados.
Selecione Seguinte: Origem.
Origem
Em Selecionar origem, selecione Adicionar URL ou Selecionar contentor.
Ao adicionar um URL, em Ligar à origem, especifique a chave da conta ou o URL de SAS para um contentor. Pode criar o URL de SAS manual ouautomaticamente.
Ao selecionar um contentor a partir da sua conta de armazenamento, selecione a subscrição de Armazenamento, a Conta de armazenamento e o Contentor nos menus pendentes.
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.
Selecione Definições avançadas para definir definições adicionais para o processo de ingestão com LightIngest.
No painel Configuração avançada , defina as definições LightIngest de acordo com a tabela seguinte.
Propriedade Descrição Padrão de tempo de criação Especifique para substituir a propriedade de tempo de ingestão da extensão criada por um padrão, por exemplo, para aplicar uma data com base na estrutura de pastas do contentor. Veja também Padrão de tempo de criação. Padrão de nome de blob Especifique o padrão utilizado para identificar os ficheiros a ingerir. Ingerir todos os ficheiros que correspondem ao padrão de nome do blob no contentor especificado. Suporta carateres universais. Recomendamos incluir aspas duplas. Tag Uma etiqueta atribuída aos dados ingeridos. A etiqueta pode ser qualquer cadeia. Limitar a quantidade de ficheiros Especifique o número de ficheiros que podem ser ingeridos. Ingere os primeiros n
ficheiros que correspondem ao padrão de nome do blob, até ao número especificado.Não espere que a ingestão seja concluída Se estiver definido, coloca em fila os blobs para ingestão sem monitorizar o processo de ingestão. Se não estiver definido, LightIngest continua a consultar o estado da ingestão até que a ingestão esteja concluída. Apresentar apenas itens selecionados Liste os ficheiros no contentor, mas não os ingere. Selecione Concluído para regressar ao separador Origem .
Opcionalmente, selecione Filtros de Ficheiros para filtrar os dados para ingerir apenas ficheiros num caminho de pasta específico ou com uma extensão de ficheiro específica.
Por predefinição, um dos ficheiros no contentor é selecionado aleatoriamente e utilizado para gerar o esquema da tabela.
Opcionalmente, em Ficheiro de definição de esquema, pode especificar o ficheiro a utilizar.
Selecione Seguinte: Esquema para ver e editar a configuração da coluna da tabela.
Esquema
O separador esquema fornece uma pré-visualização dos dados.
Para gerar o comando LightIngest, selecione Seguinte: Iniciar Ingestão.
Opcionalmente:
- Altere o formato de Dados inferido automaticamente ao selecionar o formato pretendido no menu pendente.
- Altere o nome do Mapeamento inferido automaticamente. Pode utilizar carateres alfanuméricos e carateres de sublinhado. Não são suportados espaços, carateres especiais e hífenes.
- Ao utilizar uma tabela existente, pode Manter o esquema de tabela atual se o esquema da tabela corresponder ao formato selecionado.
- Selecione Visualizador de comandos para ver e copiar os comandos automáticos gerados a partir das suas entradas.
- Editar colunas. Em Pré-visualização de dados parciais, selecione os menus pendentes da coluna para alterar vários aspetos da tabela.
As alterações que pode fazer numa tabela dependem dos seguintes parâmetros:
- O tipo de tabela é novo ou existente
- O tipo de mapeamento é novo ou existente
Tipo de tabela | Tipo de mapeamento | Ajustes disponíveis |
---|---|---|
Nova tabela | Novo mapeamento | Alterar tipo de dados, Mudar o nome da coluna, Nova coluna, Eliminar coluna, Atualizar coluna, Ordenação ascendente, Ordenação descendente |
Tabela existente | Novo mapeamento | Nova coluna (na qual pode alterar o tipo de dados, mudar o nome e atualizar), Coluna de atualização, Ordenação ascendente, Ordenação descendente |
Mapeamento existente | Ordenação ascendente, Ordenação descendente |
Nota
Ao adicionar uma nova coluna ou atualizar uma coluna, pode alterar as transformações de mapeamento. Para obter mais informações, veja Mapping transformations (Mapear transformações)
Ingerir
Assim que a tabela, o mapeamento e o comando LightIngest estiverem marcados com marcas de verificação verdes, selecione o ícone de cópia no canto superior direito da caixa de comando Gerado para copiar o comando LightIngest gerado.
Nota
Se necessário, pode transferir a ferramenta LightIngest ao selecionar Transferir LightIngest.
Para concluir o processo de ingestão, tem de executar LightIngest com o comando copiado.