Como ingerir dados históricos no Azure Data Explorer

Um cenário comum durante a integração 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.

É recomendável 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 para extensões é definido como a hora em que os dados são ingeridos, 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 conforme são produzidos são armazenados em cache por 30 dias e 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ê ingerir dois anos de dados históricos em que, por padrão, os dados são marcados com o tempo de criação como a hora em que os dados são ingeridos. Isso 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 você esperava.
  • 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 extensão, 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:

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

    Sempre que possível, ingera dados históricos usando a creationTime propriedade de ingestão, que permite definir o tempo de criação das extensões extraindo-os do caminho de arquivo ou blob. Se sua estrutura de pastas não usar um padrão de data de criação, recomendamos que você reestruture seu caminho de arquivo ou blob para refletir a hora 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 hora 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 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 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. Só recomendamos esse método ao usar a creationTime propriedade de ingestão.

Pré-requisitos

Ingerir dados históricos

É altamente recomendável particionar dados históricos usando a propriedade de ingestão durante a creationTime ingestão. No entanto, 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 pode ser ú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 o mapeamento de esquema. Essa ferramenta infere o mapeamento de esquema do 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 mouse no banco de dados no qual você deseja ingerir os dados e selecione LightIngest.

    Captura de tela da interface do usuário da Web do Azure Data Explorer mostrando mais menu do banco de dados.

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

  3. Selecione uma tabela de destino. Se você quiser 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é 1024 caracteres, incluindo espaços, 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: origem.

Fonte

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

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

    • Ao selecionar um contêiner de 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 para um tamanho do arquivo máximo 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. Recomendamos colocar aspas duplas entre aspas.
    Tag Uma marca atribuída aos dados ingeridos. A marca pode ser qualquer cadeia de caracteres.
    Limitar a quantidade de arquivos Especifique o número de arquivos que podem ser ingeridos. Ingere os primeiros n arquivos que correspondem ao padrão de nome de blob, até o número especificado.
    Não aguardar 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 somente itens selecionados Liste os arquivos no contêiner, mas não os ingira.
  4. Selecione Concluído para retornar à guia Origem .

    1. Opcionalmente, selecione Filtros de Arquivo para filtrar os dados para ingerir somente 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 Arquivo de definição de esquema, você pode especificar o arquivo a ser usado.

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

Esquema

A guia esquema fornece uma visualização dos dados.

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

Como opção:

  • 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 comandos para exibir e copiar os comandos automáticos gerados de suas entradas.
  • Editar colunas. Em Visualização parcial de dados, selecione os menus suspensos da coluna 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

Ingerir

  1. Depois que a tabela, o mapeamento e o comando LightIngest forem marcados com marcas de marcar verdes, selecione o ícone de cópia no canto superior direito da caixa 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 ingestão, você deve executar o LightIngest usando o comando copiado.