Partilhar 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 um de 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. Este processo garante que todos os registos são exportados "exatamente uma vez", com algumas exceções.

Por padrão, a exportação contínua é executada em um modo distribuído, onde todos os nós exportam 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, criar um de tabela externo e, em seguida, criar 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ínuo.

Permissões

Todos os comandos de exportação contínua exigem pelo menos permissões de 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 propriedade intervalBetweenRuns. 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 intervalBetweenRuns=1h com uma agregação horária (T | summarize by bin(Timestamp, 1h)) não funcionará como esperado, uma vez que a exportação contínua não será executada exatamente na hora. Portanto, cada compartimento horário receberá várias entradas nos dados exportados.

  • Número de ficheiros:

    • 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 comando exportar para tabela externa. Cada iteração de exportação contínua sempre grava em novos arquivos e nunca acrescenta aos existentes. Como resultado, o número de arquivos exportados também depende da frequência em que a exportação contínua é executada. O parâmetro de frequência é intervalBetweenRuns.
  • Contas externas de armazenamento de tabelas:

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

Exatamente uma vez a 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 do 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.

da 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 de exportação "exatamente uma vez" é apenas para arquivos relatados no comando show exportado 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 abortada 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 show export artifacts. Consumir os arquivos exportados usando o show exported artifacts command garante que não haja duplicações e corrupções.

Exportar a partir de tabelas de factos e dimensões

Por padrão, todas as tabelas referenciadas na consulta de exportação são consideradas tabelas de fatos. Como tal, 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 parâmetro no de 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ão nas quais todos os registros da tabela de dimensão são incluídos em todas as consultas de exportação. Ao usar junções entre tabelas de fatos e dimensões em 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 respetivas 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 associação interna ou externa. A propriedade forcedLatency na definição de exportação contínua pode ser útil nesses casos, onde as tabelas de fatos e dimensões são ingeridas durante o mesmo tempo para registros correspondentes.

Observação

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

Monitore a 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 - Atraso máximo (em minutos) das exportações contínuas na base 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 contínua de exportação. Essa métrica pode ser dividida pelo nome de exportação contínua.

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

Advertência

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 de consulta de exportação contínua e o esquema de 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 comando .enable continuous export.

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, algumas começam a ficar para trás.
  • O de comando show commands-and-queries pode ser usado para estimar o consumo de recursos.
    • Filtre | where ClientActivityId startswith "RunContinuousExports" para visualizar 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 registos ingeridos antes dessa hora devem ser exportados separadamente utilizando o comando de exportação de não contínuo. 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 duplicações com dados exportados por exportação contínua, use StartCursor retornados pelo comando show continuous export e exporte apenas registros where cursor_before_or_at o valor do cursor. Por exemplo:

.show continuous-export MyExport | project StartCursor
IniciarCursor
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 faça referência a uma tabela com política de Segurança em Nível de Linha, você deve:

Exportação contínua para tabela delta - Pré-visualização

A exportação contínua para uma tabela delta está atualmente em visualização.

Importante

O particionamento de tabela delta não é suportado na exportação contínua de dados.

Kusto não gravará em tabelas delta existentes se a versão do gravador de 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, Kusto tentará inferi-lo automaticamente se já houver uma tabela delta definida no contêiner de armazenamento de destino.
    O particionamento de tabela delta não é suportado.

  2. Defina a exportação contínua para esta tabela usando os comandos descritos em Criar ou alterarde 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 mudar, 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 trabalhar sobre exibições materializadas, uma vez que uma exibição materializada pode ser atualizada, enquanto os dados exportados para o armazenamento são sempre anexados e nunca atualizados.
  • A exportação contínua não pode ser criada em bancos de dados de seguidores uma vez que os bancos de dados de seguidores 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 a partir de comandos de consulta. Se os registros forem movidos para a tabela usando extensões .move ou usando tabela .rename, a exportação contínua pode 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 de Grade de Eventos, consulte a seção problemas conhecidos na documentação da Grade de Eventos.

entre bancos de dados e clusters cruzados :

  • A exportação contínua não suporta chamadas entre clusters.
  • A exportação contínua suporta chamadas entre bancos de dados apenas para tabelas de dimensão. 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 .

entre bancos de dados e entre Eventhouse:

  • A exportação contínua não suporta chamadas entre Eventhouse.
  • A exportação contínua suporta chamadas entre bancos de dados apenas para tabelas de dimensão. 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: