Partilhar via


Como ingerir dados históricos no Azure Data Explorer

Um cenário comum ao integrar ao Azure Data Explorer é ingerir dados históricos, às vezes chamados de backfill. O processo envolve a ingestão de dados de um sistema de armazenamento existente em uma tabela, que é uma coleção de extensões.

Ingerir dados históricos utilizando a propriedade de ingestão 'creationTime' para definir o tempo de criação dos extents como o momento em que os dados foram criados. Usar o tempo de criação como critério de particionamento de ingestão pode envelhecer seus dados de acordo com suas políticas de cache e retenção e tornar os filtros de tempo mais eficientes.

Por padrão, o tempo de criação de extensões é definido como o momento em que você ingere os dados, o que pode não produzir o comportamento esperado. Por exemplo, suponha que você tenha uma tabela que tenha 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 armazenados em cache por 30 dias e, em seguida, movidos para armazenamento refrigerado. Após dois anos, com base no seu tempo de criação, os dados mais antigos são removidos um dia de cada vez. No entanto, se você ingerir dois anos de dados históricos, onde, por padrão, os dados são marcados com tempo de criação como a hora em que os dados são ingeridos. Esse comportamento pode não produzir o resultado desejado porque:

  • Todos os dados ficam em cache e permanecem lá por 30 dias, usando mais cache do que você previa.
  • Os dados mais antigos não são removidos um dia de cada vez; portanto, 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, agora podem ser agrupados em lote na mesma medida, levando a consultas ineficientes.

Diagrama mostrando o resultado esperado versus real da ingestão de dados históricos usando o tempo de criação padrão.

Neste artigo, você aprenderá a particionar dados históricos:

  • Recomendado: utilizar a propriedade creationTime durante a ingestão.

    Sempre que possível, ingira dados históricos usando a creationTime propriedade de ingestão, que permite definir a hora de criação das extensões de dados extraindo-a do ficheiro ou caminho de blob. Se a estrutura de pastas não usar um padrão de data de criação, reestruture o caminho do arquivo ou blob para refletir o tempo de criação. Usando esse 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.

    Observação

    Por padrão, as extensões são particionadas por tempo de criação (ingestão) e, na maioria dos casos, não há necessidade de definir uma política de particionamento de dados.

  • Usando uma política de particionamento após a ingestão

    Se você não puder usar a creationTime propriedade de ingestão, por exemplo, se estiver ingerindo dados usando o conector do Azure Cosmos DB em que não pode controlar o tempo de criação ou se não pode reestruturar sua estrutura de pastas, poderá reparticionar a tabela após ingestão para obter o mesmo efeito usando a política de particionamento. No entanto, esse método pode exigir alguma tentativa e erro para otimizar as propriedades da política e é menos eficiente do que usar a creationTime propriedade de ingestão. Use este método somente quando não for possível usar a creationTime propriedade de ingestão.

Pré-requisitos

Ingerir dados históricos

Particione dados históricos durante a ingestão usando a propriedade creationTime de ingestão. Se você não pode usar esse método, você pode reparticionar a tabela após a ingestão usando uma política de particionamento.

O LightIngest é útil para carregar dados históricos de um sistema de armazenamento existente para o Azure Data Explorer. Embora você possa criar seu próprio comando usando a lista de argumentos de linha de comando, este artigo mostra como gerar automaticamente esse comando por meio de um assistente de ingestão. Além de criar o comando, você pode usar esse processo para criar uma nova tabela e criar mapeamento de esquema. Esta ferramenta deduz o mapeamento de esquema a partir do seu conjunto de dados.

Destino

  1. Na interface do usuário da Web do Azure Data Explorer, no menu à esquerda, selecione Consulta.

  2. Clique com o botão direito do rato na base de dados onde pretende ingerir os dados e, em seguida, selecione LightIngest.

    Captura de ecrã da interface Web do Azure Data Explorer mostrando o menu de opções do banco de dados.

    A janela Ingerir dados é aberta com a guia Destino selecionada. Os campos Cluster e Banco de Dados são preenchidos automaticamente.

  3. Selecione uma tabela de destino. Para ingerir dados numa nova tabela, selecione Nova tabela e, em seguida, introduza um nome de tabela.

    Observação

    Os nomes das tabelas podem ter até 1.024 caracteres, incluindo espaços, caracteres alfanuméricos, hífenes e sublinhados. Não há suporte para caracteres especiais.

    Captura de tela da guia de destino mostrando o banco de dados e a tabela de destino.

  4. Selecione Next: Source.

Fonte

  1. Em Selecionar origem, selecione Adicionar URL ou Selecionar contêiner.

    • Ao adicionar uma URL, em Vincular à origem, especifique a chave da conta ou a URL SAS para um contêiner. Você pode criar a URL SAS manualmente ou automaticamente.

    • Ao escolher um contentor da sua conta de armazenamento, selecione a sua assinatura de armazenamento, conta de armazenamento e contentor nos menus suspensos.

      Captura de tela da caixa de diálogo para selecionar o contêiner da assinatura e da conta de armazenamento.

    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.

  2. Selecione Configurações avançadas para definir configurações adicionais para o processo de ingestão usando LightIngest.

    Captura de tela da seleção de configurações avançadas para o processamento de ingestão envolvendo a ferramenta LightIngest.

  3. No painel Configuração avançada , defina as configurações do LightIngest de acordo com a tabela a seguir.

    Captura de tela do painel de configuração avançada mostrando as configurações adicionais para o processamento de ingestão envolvendo a ferramenta LightIngest.

    Propriedade Description
    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. Consulte também Padrão de tempo de criação.
    Padrão de nome de blob Especifique o padrão usado para identificar os arquivos a serem ingeridos. Ingerir todos os ficheiros que correspondem ao padrão de nome de blob no contentor dado. Suporta curingas. Recomendamos colocar entre aspas duplas.
    Etiqueta Uma tag atribuída aos dados ingeridos. A tag pode ser qualquer sequência de caracteres.
    Limitar a quantidade de ficheiros Especifique o número de arquivos a serem ingeridos. Ingere os primeiros n ficheiros que correspondam ao padrão de nome de blob, até ao número especificado.
    Não espere que a ingestão termine Se definido, enfileira as bolhas para ingestão sem monitorar o processo de ingestão. Se não estiver definido, LightIngest continuará a sondar o estado de ingestão até que a ingestão esteja completa.
    Exibir apenas itens selecionados Liste os arquivos no contêiner, mas não os ingere.
  4. Selecione Concluído para retornar à guia Origem .

    1. Opcionalmente, selecione Filtros de arquivo para filtrar os dados para ingerir apenas arquivos em um caminho de pasta específico ou com uma extensão de arquivo específica.

      Captura de ecrã da filtragem de dados no separador origem do ecrã Ingerir novos dados.

      Por padrão, um dos arquivos no contêiner é selecionado aleatoriamente e usado para gerar o esquema para a tabela.

    2. Opcionalmente, em Esquema definindo arquivo, especifique o arquivo a ser usado.

  5. Selecione Next: Schema para visualizar e editar a configuração da coluna da tabela.

Schema

O separador esquema fornece uma pré-visualização dos dados.

Para gerar o comando LightIngest, selecione Next: Start Ingestion.

Opcionalmente:

  • Altere o formato de dados inferido automaticamente selecionando o formato desejado no menu suspenso.
  • Altere o nome do mapeamento inferido automaticamente. Você pode usar caracteres alfanuméricos e sublinhados. Espaços, caracteres especiais e hífenes não são suportados.
  • Ao usar uma tabela existente, você pode Manter o esquema de tabela atual se o esquema de tabela corresponder ao formato selecionado.
  • Selecione Visualizador de comandos para visualizar e copiar os comandos automáticos gerados a partir de suas entradas.
  • Editar colunas. Em Visualização parcial de dados, selecione os menus suspensos de coluna para alterar vários aspetos da tabela.

As alterações que você pode fazer em uma tabela dependem dos seguintes parâmetros:

  • O tipo de tabela é novo ou existente
  • Tipo de mapeamento é novo ou existente
Tipo de tabela Tipo de mapeamento Ajustes disponíveis
Nova tabela Novo mapeamento Alterar tipo de dados, Renomear coluna, Nova coluna, Excluir coluna, Atualizar coluna, Classificar crescente, Classificar decrescente
Tabela existente Novo mapeamento Nova coluna (na qual você pode alterar o tipo de dados, renomear e atualizar),
Coluna Atualizar, Ordenar em ordem crescente, Ordenar em ordem descendente
Mapeamento existente Ordenar ascendente, Ordenar descendente

Observação

Ao adicionar uma nova coluna ou atualizar uma coluna, você pode alterar as transformações de mapeamento. Para obter mais informações, consulte Mapeando transformações

Ingerir

  1. Quando a tabela, o mapeamento e o comando LightIngest mostrarem marcas de seleção verdes, selecione o ícone de cópia no canto superior direito da caixa de comando Gerado para copiar o comando LightIngest gerado.

    Captura de ecrã do separador Resumo com comando gerado. Você pode copiar o comando usando o ícone de cópia acima da caixa de comando gerada.

    Observação

    Se necessário, você pode baixar a ferramenta LightIngest selecionando Download LightIngest.

  2. Para concluir o processo de ingestão, você deve executar LightIngest usando o comando copiado.