Compartilhar via


Como ingerir dados históricos em Azure Data Explorer

Um cenário comum ao integrar a 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 usando a propriedade de ingestão creationTime para definir o tempo de criação de extensões até 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 para 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 com 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 o armazenamento frio. Após dois anos, com base no tempo de criação, os dados mais antigos são removidos um dia de cada vez. No entanto, se você assimilar dois anos de dados históricos em que, por padrão, os dados são marcados com a hora de criação como a hora em que os dados são assimilados. Esse comportamento pode não produzir o resultado desejado porque:

  • Todos os dados chegam ao cache e permanecem lá por 30 dias, usando mais cache do que o previsto.
  • 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, previamente agrupados por data no sistema de origem, agora podem ser agrupados em lote na mesma medida que levam 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:

  • Usar a creationTime propriedade de ingestão durante a ingestão (recomendado)

    Sempre que possível, faça a ingestão de dados históricos usando a creationTime propriedade de ingestão, que você pode usar para definir o tempo de criação das extensões de dados extraindo esse tempo do caminho do arquivo ou do blob. Se sua estrutura de pastas não usar um padrão de data de criação, reestruture seu caminho de arquivo ou blob para refletir a hora de criação. Usando esse método, você ingere os dados 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 hora de criação (ingestão) e, na maioria dos casos, não há necessidade de definir uma política de particionamento de dados.

  • Adotar uma política de particionamento pós-ingestão

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

Pré-requisitos

Ingerir dados históricos

Particione os dados históricos utilizando a propriedade creationTime de ingestão durante o processo de ingestão. Se você não puder usar esse método, poderá 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 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 um mapeamento de esquema. Essa ferramenta infere o mapeamento de esquema do seu conjunto de dados.

Destino

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

  2. Clique com o botão direito do mouse no banco de dados no qual você deseja ingerir os dados e selecione LightIngest.

    Screenshot da interface do usuário da Web do Azure Data Explorer mostrando o menu 'mais' do banco de dados.

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

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

    Observação

    Os nomes de tabela podem ter até 1.024 caracteres, incluindo espaços, caracteres alfanuméricos, hifens 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 Avançar: Fonte.

Fonte

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

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

    • Ao selecionar um contêiner na sua conta de armazenamento, selecione sua assinatura de armazenamento, conta de armazenamento e contêiner nos menus suspensos.

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

    Observação

    A ingestão dá suporte a um tamanho máximo de arquivo 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 processo 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 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 contêiner. Confira também Padrão de tempo de criação.
    Padrão de nome do blob Especifique o padrão usado para identificar os arquivos a serem ingeridos. Faça a ingestão de todos os arquivos que correspondam ao padrão de nome de blob no contêiner determinado. Dá suporte a curingas. Coloque o padrão entre aspas duplas.
    Tag Uma marca atribuída aos dados ingeridos. A tag pode ser qualquer string.
    Limitar a quantidade de arquivos Especifique o número de arquivos a serem ingeridos. Ingere os primeiros n arquivos que correspondem ao padrão de nomenclatura de blobs, até o número especificado.
    Não espere a conclusão da ingestão Se definido, colocará os blobs em fila para ingestão sem monitorar o processo de ingestão. Se não estiver definido, o LightIngest continuará sondando o status de ingestão até que a ingestão seja concluída.
    Exibir apenas os itens selecionados Liste os arquivos no contêiner, mas não os processe.
  4. Selecione Concluído para voltar à aba 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 tela dos dados de filtragem na guia Origem da tela 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 o arquivo, especifique o arquivo a ser usado.

  5. Selecione Avançar: esquema para ver e editar a configuração da coluna da tabela.

Esquema

A aba de esquema fornece uma prévia dos dados.

Para gerar o comando LightIngest, selecione Avançar: Iniciar Ingestão.

Opcionalmente, você pode:

  • 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. Não há suporte para espaços, caracteres especiais nem hifens.
  • Ao usar uma tabela existente, você pode Manter o esquema da tabela atual, se o esquema da tabela corresponder ao formato selecionado.
  • Selecione Visualizador de comando para ver e copiar os comandos automáticos gerados com base nas entradas.
  • Editar colunas. Em Visualização parcial de dados, selecione os menus suspensos das colunas para alterar vários aspectos da tabela.

As alterações que você pode fazer em uma 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, Renomear coluna, Nova coluna, Excluir coluna, Atualizar coluna, Classificar em ordem crescente, Classificar em ordem decrescente
Tabela existente Novo mapeamento Nova coluna (na qual você pode alterar o tipo de dados, renomear e atualizar),
Atualizar coluna, Classificar em ordem crescente, Classificar em ordem decrescente
Mapeamento existente Classificar em ordem crescente, Classificar em ordem decrescente

Observação

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

Ingestão

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

    Captura de tela da guia Resumo com o 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 Baixar LightIngest.

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