Compartilhar via


Visão geral da exportação contínua de dados

Aplica-se a: ✅Microsoft FabricAzure Data Explorer

Este artigo descreve a exportação contínua de dados do Kusto para uma tabela externa com uma consulta executada periodicamente. Os resultados são armazenados na tabela externa, que define o destino, como o Armazenamento de Blobs do Azure, e o esquema dos dados exportados. Esse processo garante que todos os registros sejam exportados "exatamente uma vez", com algumas exceções.

Por padrão, a exportação contínua é executada em um modo distribuído, em que todos os nós são exportados simultaneamente, portanto, o número de artefatos depende do número de nós. A exportação contínua não foi projetada para dados de streaming de baixa latência.

Para habilitar a exportação contínua de dados, crie uma tabela externa e, em seguida, crie uma definição de exportação contínua apontando para a tabela externa.

Em alguns casos, você deve usar uma identidade gerenciada para configurar com êxito um trabalho de exportação contínua. Para obter mais informações, consulte Usar uma identidade gerenciada para executar um trabalho de exportação contínua.

Permissões

Todos os comandos de exportação contínua exigem pelo menos permissões de administrador de banco de dados.

Diretrizes de exportação contínua

  • Esquema de saída:

    • O esquema de saída da consulta de exportação deve corresponder ao esquema da tabela externa para a qual você exporta.
  • Frequência:

    • A exportação contínua é executada de acordo com o período de tempo configurado para ela na intervalBetweenRuns propriedade. O valor recomendado para esse intervalo é de pelo menos vários minutos, dependendo das latências que você está disposto a aceitar. O intervalo de tempo pode ser tão baixo quanto um minuto, se a taxa de ingestão for alta.

      Observação

      O intervalBetweenRuns serve apenas como uma recomendação e não é garantido que seja preciso. A exportação contínua não é adequada para exportar agregações periódicas. Por exemplo, uma configuração de com uma agregação por hora (intervalBetweenRuns) não funcionará conforme o esperado, pois a exportação contínua não será executada =1hT | summarize by bin(Timestamp, 1h) exatamente na hora. Portanto, cada posição por hora receberá várias entradas nos dados exportados.

  • Número de arquivos:

    • O número de arquivos exportados em cada iteração de exportação contínua depende de como a tabela externa é particionada. Para obter mais informações, consulte o comando exportar para tabela externa. Cada iteração de exportação contínua sempre grava em novos arquivos e nunca é anexada aos existentes. Como resultado, o número de arquivos exportados também depende da frequência com que a exportação contínua é executada. O parâmetro de frequência é intervalBetweenRuns.
  • Contas de armazenamento de tabelas externas:

    • Para obter o melhor desempenho, o banco de dados e as contas de armazenamento devem ser colocados na mesma região do Azure.
    • A exportação contínua funciona de maneira distribuída, de modo que todos os nós estejam exportando simultaneamente. Em bancos de dados grandes, e se o volume de dados exportados for grande, isso poderá levar à limitação de armazenamento. A recomendação é configurar várias contas de armazenamento para a tabela externa. Para obter mais informações, consulte falhas de armazenamento durante os comandos de exportação.

Exatamente uma exportação

Para garantir a exportação "exatamente uma vez", a exportação contínua usa cursores de banco de dados. A consulta de exportação contínua não deve incluir um filtro de carimbo de data/hora – o mecanismo de cursores de banco de dados garante que os registros não sejam processados mais de uma vez. Adicionar um filtro de carimbo de data/hora na consulta pode levar à falta de dados nos dados exportados.

A política IngestionTime deve ser habilitada em todas as tabelas referenciadas na consulta que devem ser processadas "exatamente uma vez" na exportação. A política é habilitada por padrão em todas as tabelas recém-criadas.

A garantia para exportação "exatamente uma vez" é apenas para arquivos relatados no comando show exported artifacts. A exportação contínua não garante que cada registro seja gravado apenas uma vez na tabela externa. Se ocorrer uma falha após o início da exportação e alguns dos artefatos já tiverem sido gravados na tabela externa, a tabela externa poderá conter duplicatas. Se uma operação de gravação foi anulada antes da conclusão, a tabela externa pode conter arquivos corrompidos. Nesses casos, os artefatos não são excluídos da tabela externa, mas não são relatados no comando mostrar artefatos exportados. Consumir os arquivos exportados usando o show exported artifacts command garante que não haja duplicações e corrupções.

Exportar de tabelas de fatos e dimensões

Por padrão, todas as tabelas referenciadas na consulta de exportação são consideradas tabelas de fatos. Dessa forma, eles têm como escopo o cursor do banco de dados. A sintaxe declara explicitamente quais tabelas têm escopo (fato) e quais não têm escopo (dimensão). Consulte o over parâmetro no comando create para obter detalhes.

A consulta de exportação inclui apenas os registros que ingressaram desde a execução de exportação anterior. A consulta de exportação pode conter tabelas de dimensões nas quais todos os registros da tabela de dimensões são incluídos em todas as consultas de exportação. Ao usar junções entre tabelas de fatos e dimensões na exportação contínua, lembre-se de que os registros na tabela de fatos são processados apenas uma vez. Se a exportação for executada enquanto os registros nas tabelas de dimensão estiverem ausentes para algumas chaves, os registros das respectivas chaves serão perdidos ou incluirão valores nulos para as colunas de dimensão nos arquivos exportados. O retorno de registros perdidos ou nulos depende se a consulta usa junção interna ou externa. A forcedLatency propriedade na definição de exportação contínua pode ser útil nesses casos, em que as tabelas de fatos e dimensões são ingeridas durante o mesmo tempo para registros correspondentes.

Observação

Não há suporte para a exportação contínua apenas de tabelas de dimensões. A consulta de exportação deve incluir pelo menos uma única tabela de fatos.

Monitorar exportação contínua

Monitore a integridade de seus trabalhos de exportação contínua usando as seguintes métricas de exportação:

  • Continuous export max lateness - Latência máxima (em minutos) de exportações contínuas no banco de dados. Este é o tempo entre agora e o tempo mínimo ExportedTo de todos os trabalhos de exportação contínua no banco de dados. Para obter mais informações, consulte .show continuous export comando.
  • Continuous export result - Resultado de sucesso/falha de cada execução de exportação contínua. Essa métrica pode ser dividida pelo nome da exportação contínua.

Use o .show continuous export failures comando para ver as falhas específicas de um trabalho de exportação contínua.

Aviso

Se uma exportação contínua falhar por mais de 7 dias devido a uma falha permanente, a exportação será automaticamente desativada pelo sistema. Os erros permanentes incluem: tabela externa não encontrada, incompatibilidade entre o esquema da consulta de exportação contínua e o esquema da tabela externa, a conta de armazenamento não está acessível. Depois que o erro for corrigido, você poderá reativar a exportação contínua usando o .enable continuous export comando.

Consumo de recursos

  • O impacto da exportação contínua no banco de dados depende da consulta que a exportação contínua está executando. A maioria dos recursos, como CPU e memória, é consumida pela execução da consulta.
  • O número de operações de exportação que podem ser executadas simultaneamente é limitado pela capacidade de exportação de dados do banco de dados. Para obter mais informações, consulte Limitação de comandos de gerenciamento. Se o banco de dados não tiver capacidade suficiente para lidar com todas as exportações contínuas, alguns começarão a ficar para trás.
  • O comando show commands-and-queries pode ser usado para estimar o consumo de recursos.
    • Filtre para | where ClientActivityId startswith "RunContinuousExports" exibir os comandos e consultas associados à exportação contínua.

Exportar dados históricos

A exportação contínua começa a exportar dados somente a partir do ponto de sua criação. Os registros ingeridos antes desse tempo devem ser exportados separadamente usando o comando de exportação não contínua. Os dados históricos podem ser muito grandes para serem exportados em um único comando de exportação. Se necessário, particione a consulta em vários lotes menores.

Para evitar duplicatas com dados exportados por exportação contínua, use StartCursor retornado pelo comandowhere cursor_before_or_atdo cursor. Por exemplo:

.show continuous-export MyExport | project StartCursor
Cursor inicial
636751928823156645

Seguido por:

.export async to table ExternalBlob
<| T | where cursor_before_or_at("636751928823156645")

Exportação contínua de uma tabela com Segurança em Nível de Linha

Para criar um trabalho de exportação contínua com uma consulta que faz referência a uma tabela com a política de Segurança em Nível de Linha, você deve:

Exportação contínua para a tabela delta - Versão prévia

A exportação contínua para uma tabela delta está atualmente em versão prévia.

Importante

Não há suporte para o particionamento de tabela delta na exportação contínua de dados.

O Kusto não gravará em tabelas delta existentes se a versão do gravador do protocolo delta for maior que 1.

Para definir a exportação contínua para uma tabela delta, execute as seguintes etapas:

  1. Crie uma tabela delta externa, conforme descrito em Criar e alterar tabelas externas delta no Armazenamento do Azure.

    Observação

    Se o esquema não for fornecido, o Kusto tentará inferi-lo automaticamente se já houver uma tabela delta definida no contêiner de armazenamento de destino.
    Não há suporte para o particionamento de tabela delta.

  2. Defina a exportação contínua para esta tabela usando os comandos descritos em Criar ou alterar a exportação contínua.

    Importante

    O esquema da tabela delta deve estar em sincronia com a consulta de exportação contínua. Se a tabela delta subjacente for alterada, a exportação poderá começar a falhar com um comportamento inesperado.

Limitações

Geral:

  • Os seguintes formatos são permitidos nas tabelas de destino: CSV, TSV, JSONe Parquet.
  • A exportação contínua não foi projetada para funcionar exibições materializadas, uma vez que uma exibição materializada pode ser atualizada, enquanto os dados exportados para o armazenamento são sempre acrescentados e nunca atualizados.
  • A exportação contínua não pode ser criada em bancos de dados seguidor uma vez que os bancos de dados de seguidor são somente leitura e a exportação contínua requer operações de gravação.
  • Os registros na tabela de origem devem ser ingeridos diretamente na tabela, usando uma política de atualização ou ingeridos de comandos de consulta. Se os registros forem movidos para a tabela usando extensões .move ou usando .rename table, a exportação contínua poderá não processar esses registros. Consulte as limitações descritas na página Cursores de Banco de Dados.
  • Se os artefatos usados pela exportação contínua se destinarem a disparar notificações da Grade de Eventos, consulte a seção de problemas conhecidos na documentação da Grade de Eventos.

Entre bancos de dados e entre clusters:

  • A exportação contínua não dá suporte a chamadas entre clusters.
  • A exportação contínua oferece suporte a chamadas entre bancos de dados somente para tabelas de dimensões. Todas as tabelas de fatos devem residir no banco de dados local. Veja mais detalhes em Exportar de tabelas de fatos e dimensões.
  • Se a exportação contínua incluir chamadas entre bancos de dados, ela deverá ser configurada com uma identidade gerenciada.

Banco de dados cruzado e casa de eventos cruzada:

  • A exportação contínua não oferece suporte a chamadas entre eventos.
  • A exportação contínua oferece suporte a chamadas entre bancos de dados somente para tabelas de dimensões. Todas as tabelas de fatos devem residir no banco de dados local. Veja mais detalhes em Exportar de tabelas de fatos e dimensões.

Políticas: