Integrar o Azure Data Explorer no Azure Data Factory

Azure Data Factory (ADF) é um serviço de integração de dados baseado na cloud que lhe permite integrar diferentes arquivos de dados e realizar atividades nos dados. O ADF permite-lhe criar fluxos de trabalho orientados por dados para orquestrar e automatizar o movimento de dados e a transformação de dados. O Azure Data Explorer é um dos arquivos de dados suportados no Azure Data Factory.

Azure Data Factory atividades do Azure Data Explorer

Estão disponíveis várias integrações com Azure Data Factory para utilizadores do Azure Data Explorer:

Atividade Copiar

Azure Data Factory atividade Copy é utilizado para transferir dados entre arquivos de dados. O Azure Data Explorer é suportado como uma origem, onde os dados são copiados do Azure Data Explorer para qualquer arquivo de dados suportado e um sink, onde os dados são copiados de qualquer arquivo de dados suportado para o Azure Data Explorer. Para obter mais informações, veja Copiar dados de ou para o Azure Data Explorer com Azure Data Factory. Para obter instruções detalhadas, veja load data from Azure Data Factory into Azure Data Explorer (Carregar dados de Azure Data Factory para o Azure Data Explorer). O Azure Data Explorer é suportado pelo Azure IR (Integration Runtime), utilizado quando os dados são copiados no Azure e no IR autoalojado, utilizado ao copiar dados de/para arquivos de dados localizados no local ou numa rede com controlo de acesso, como um Rede Virtual do Azure. Para obter mais informações, veja qual o IR a utilizar.

Dica

Ao utilizar a atividade de cópia e criar um Serviço Ligado ou um Conjunto de Dados, selecione o arquivo de dados do Azure Data Explorer (Kusto) e não o kusto do arquivo de dados antigo.

Atividade de Procura

A atividade Lookup é utilizada para executar consultas no Azure Data Explorer. O resultado da consulta será devolvido como o resultado da atividade Lookup e poderá ser utilizado na próxima atividade no pipeline, conforme descrito na documentação de Pesquisa do ADF.

Além do limite de tamanho da resposta de 5000 linhas e 2 MB, a atividade também tem um limite de tempo limite de consulta de 1 hora.

Atividade de comandos

A atividade Comando permite a execução de comandos de gestão de Data Explorer do Azure. Ao contrário das consultas, os comandos de gestão podem potencialmente modificar dados ou metadados. Alguns dos comandos de gestão são direcionados para ingerir dados no Azure Data Explorer, com comandos como .ingestou .set-or-append) ou copiar dados do Azure Data Explorer para arquivos de dados externos com comandos como .export. Para obter instruções detalhadas sobre a atividade de comandos, veja Utilizar Azure Data Factory atividade de comandos para executar comandos de gestão de Data Explorer do Azure. Utilizar um comando de gestão para copiar dados pode, por vezes, ser uma opção mais rápida e barata do que a atividade Copy. Para determinar quando deve utilizar a atividade Comando versus a atividade Copy, veja selecionar entre as atividades Copiar e Comando ao copiar dados.

Copiar em massa a partir de um modelo de base de dados

A opção Copiar em massa de uma base de dados para o Azure Data Explorer com o modelo de Azure Data Factory é um pipeline de Azure Data Factory predefinido. O modelo é utilizado para criar muitos pipelines por base de dados ou por tabela para uma cópia de dados mais rápida.

Fluxos de dados de mapeamento

Azure Data Factory fluxos de dados de mapeamento são transformações de dados concebidas visualmente que permitem aos engenheiros de dados desenvolver lógica de transformação de dados gráficos sem escrever código. Para criar um fluxo de dados e ingerir dados no Azure Data Explorer, utilize o seguinte método:

  1. Crie o fluxo de dados de mapeamento.
  2. Exporte os dados para o Blob do Azure.
  3. Defina a atividade de cópia do Event Grid ou do ADF para ingerir os dados no Azure Data Explorer.

Selecionar entre Copiar e atividades do Comando do Azure Data Explorer ao copiar dados

Esta secção ajuda-o a selecionar a atividade correta para as suas necessidades de cópia de dados.

Ao copiar dados de ou para o Azure Data Explorer, existem duas opções disponíveis no Azure Data Factory:

  • atividade Copy.
  • Atividade do Comando do Azure Data Explorer, que executa um dos comandos de gestão que transferem dados no Azure Data Explorer.

Copiar dados do Azure Data Explorer

Pode copiar dados do Azure Data Explorer com a atividade copy ou o .export comando . O .export comando executa uma consulta e, em seguida, exporta os resultados da consulta.

Veja a tabela seguinte para obter uma comparação entre o atividade Copy e .export o comando para copiar dados do Azure Data Explorer.

Atividade Copiar Comando .export
Descrição do fluxo O ADF executa uma consulta no Kusto, processa o resultado e envia-a para o arquivo de dados de destino.
(Arquivo de dados sink do Azure Data Explorer > ADF>)
O ADF envia um comando de gestão .export para o Azure Data Explorer, que executa o comando e envia os dados diretamente para o arquivo de dados de destino.
(** Arquivo de dados sink do Azure Data Explorer>**)
Arquivos de dados de destino suportados Uma grande variedade de arquivos de dados suportados ADLSv2, Blob do Azure Base de Dados SQL
Desempenho Centralizado
  • Distribuído (predefinição), exportação de dados de vários nós em simultâneo
  • Mais rápido e COGS (custo de bens vendidos) eficiente.
Limites do servidor Os limites de consulta podem ser expandidos/desativados. Por predefinição, as consultas do ADF contêm:
  • Limite de tamanho de 500 000 registos ou 64 MB.
  • Limite de tempo de 10 minutos.
  • noTruncation definido como falso.
Por predefinição, expande ou desativa os limites de consulta:
  • Os limites de tamanho estão desativados.
  • O tempo limite do servidor é prolongado para 1 hora.
  • MaxMemoryConsumptionPerIterator e MaxMemoryConsumptionPerQueryPerNode são expandidos para o máximo (5 GB, TotalPhysicalMemory/2).

Dica

Se o destino da cópia for um dos arquivos de dados suportados pelo .export comando e se nenhuma das funcionalidades atividade Copy for crucial para as suas necessidades, selecione o .export comando .

Copiar dados para o Azure Data Explorer

Pode copiar dados para o Azure Data Explorer com os comandos de atividade de cópia ou ingestão, como a ingestão a partir da consulta (.set-or-append, .set-or-replace, .set, .replace)e ingestão do armazenamento (.ingest).

Veja a tabela seguinte para obter uma comparação dos comandos de atividade Copy e ingestão para copiar dados para o Azure Data Explorer.

Atividade Copiar Ingerir a partir da consulta
.set-or-append / .set-or-replace / .set / .replace
Ingerir a partir do armazenamento
.ingest
Descrição do fluxo O ADF obtém os dados do arquivo de dados de origem, converte-os num formato tabular e faz as alterações de mapeamento de esquema necessárias. Em seguida, o ADF carrega os dados para os blobs do Azure, divide-os em segmentos e, em seguida, transfere os blobs para os ingerir na tabela Data Explorer do Azure.
(Arquivo de dados > de origem dos blobs > do Azure do Azure > Data Explorer)
Estes comandos podem executar uma consulta ou um .show comando e ingerir os resultados da consulta numa tabela (Azure Data Explorer > Azure Data Explorer). Este comando ingere dados numa tabela ao "solicitar" os dados de um ou mais artefactos de armazenamento na cloud.
Arquivos de dados de origem suportados variedade de opções ADLS Gen2, Blob do Azure, SQL (com o plug-in sql_request(), Azure Cosmos DB (com o plug-in cosmosdb_sql_request) e qualquer outro arquivo de dados que forneça APIs HTTP ou Python. Sistema de Ficheiros, Armazenamento de Blobs do Azure, ADLS Gen1, ADLS Gen2
Desempenho As ingestões são em fila e são geridas, o que garante ingestões de tamanho pequeno e garante elevada disponibilidade ao fornecer balanceamento de carga, repetições e processamento de erros.
  • Esses comandos não foram concebidos para importação de dados de grande volume.
  • Funciona conforme esperado e mais barato. Contudo, para cenários de produção e quando as taxas de tráfego e os tamanhos de dados são grandes, utilize o atividade Copy.
Limites do Servidor
  • Sem limite de tamanho.
  • Limite máximo de tempo limite: uma hora por blob ingerido.
  • Existe apenas um limite de tamanho na parte da consulta, que pode ser ignorado ao especificar noTruncation=true.
  • Limite máximo de tempo limite: uma hora.
  • Sem limite de tamanho.
  • Limite máximo de tempo limite: uma hora.

Dica

  • Ao copiar dados do ADF para o Azure Data Explorer utilizar os ingest from query comandos.
  • Para conjuntos de dados grandes (>1 GB), utilize o atividade Copy.

Permissões obrigatórias

A tabela seguinte lista as permissões necessárias para vários passos na integração com Azure Data Factory.

Passo Operação Nível mínimo de permissões Notas
Criar um Serviço Ligado Navegação na base de dados visualizador de bases de dados
O utilizador com sessão iniciada com o ADF deve estar autorizado a ler metadados de base de dados.
O utilizador pode fornecer manualmente o nome da base de dados.
Testar Ligação monitor de base de dados ou ingestor de tabelas
O principal de serviço deve estar autorizado a executar comandos ao nível .show da base de dados ou ingestão ao nível da tabela.
  • TestConnection verifica a ligação ao cluster e não à base de dados. Pode ser bem-sucedida mesmo que a base de dados não exista.
  • As permissões de administrador de tabelas não são suficientes.
Criar um Conjunto de Dados Navegação de tabelas monitor de base de dados
O utilizador com sessão iniciada com o ADF tem de estar autorizado a executar comandos ao nível .show da base de dados.
O utilizador pode fornecer o nome da tabela manualmente.
Criar um Conjunto de Dados ou Copiar Atividade Pré-visualizar dados visualizador de bases de dados
O principal de serviço tem de estar autorizado a ler metadados de base de dados.
Importar esquema visualizador de bases de dados
O principal de serviço tem de estar autorizado a ler metadados de base de dados.
Quando o Azure Data Explorer é a origem de uma cópia tabular a tabular, o ADF importa automaticamente o esquema, mesmo que o utilizador não tenha importado explicitamente o esquema.
Azure Data Explorer como Sink Criar um mapeamento de colunas por nome monitor de base de dados
O principal de serviço tem de estar autorizado a executar comandos ao nível .show da base de dados.
  • Todas as operações obrigatórias funcionam com o ingestor de tabelas.
  • Algumas operações opcionais podem falhar.
  • Criar um mapeamento CSV na tabela
  • Remover o mapeamento
ingestor de tabelas ou administrador de base de dados
O principal de serviço tem de estar autorizado a fazer alterações a uma tabela.
Ingerir dados ingestor de tabelas ou administrador de base de dados
O principal de serviço tem de estar autorizado a fazer alterações a uma tabela.
Azure Data Explorer como origem Executar consulta visualizador de bases de dados
O principal de serviço tem de estar autorizado a ler metadados de base de dados.
Comando Kusto De acordo com o nível de permissões de cada comando.

Desempenho

Se o Azure Data Explorer for a origem e utilizar a atividade pesquisa, cópia ou comando que contém uma consulta onde, consulte as melhores práticas de consulta para obter informações de desempenho e documentação do ADF para atividade de cópia.

Esta secção aborda a utilização da atividade de cópia em que o Azure Data Explorer é o sink. O débito estimado para o sink Data Explorer do Azure é de 11 a 13 MBps. A tabela seguinte detalha os parâmetros que influenciam o desempenho do sink do Azure Data Explorer.

Parâmetro Notas
Proximidade geográfica dos componentes Coloque todos os componentes na mesma região:
  • arquivos de dados de origem e sink.
  • Runtime de integração do ADF.
  • O cluster do Azure Data Explorer.
Certifique-se de que, pelo menos, o runtime de integração está na mesma região que o cluster do Azure Data Explorer.
Número de DIUs Uma VM para cada quatro DIUs utilizadas pelo ADF.
Aumentar as DIUs só ajuda se a sua origem for um arquivo baseado em ficheiros com vários ficheiros. Em seguida, cada VM irá processar um ficheiro diferente em paralelo. Por conseguinte, copiar um único ficheiro grande tem uma latência maior do que copiar vários ficheiros menores.
Quantidade e SKU do cluster do Azure Data Explorer Um número elevado de nós de Data Explorer do Azure aumenta o tempo de processamento da ingestão. A utilização de SKUs dev limitará severamente o desempenho
Paralelismo Para copiar uma grande quantidade de dados de uma base de dados, particione os seus dados e, em seguida, utilize um ciclo ForEach que copia cada partição em paralelo ou utilize a Cópia em Massa da Base de Dados para o Modelo de Data Explorer do Azure. Nota: oGrau de Paralelismo deDefinições> no atividade Copy não é relevante para o Azure Data Explorer.
Complexidade do processamento de dados A latência varia de acordo com o formato de ficheiro de origem, o mapeamento de colunas e a compressão.
A VM a executar o runtime de integração
  • Para a cópia do Azure, as VMs do ADF e os SKUs de máquina não podem ser alterados.
  • Para a cópia no local para o Azure, determine se a VM que aloja o IR autoalojado é suficientemente forte.

Sugestões e armadilhas comuns

Monitorizar o progresso da atividade

  • Ao monitorizar o progresso da atividade, a propriedade Dados escritos pode ser maior do que a propriedade Leitura de dados porque a leitura de dados é calculada de acordo com o tamanho do ficheiro binário, enquanto Os dados escritos são calculados de acordo com o tamanho dentro da memória, depois de os dados serem desseriais e decomprimidos.

  • Ao monitorizar o progresso da atividade, pode ver que os dados são escritos no sink Data Explorer do Azure. Ao consultar a tabela Data Explorer do Azure, verá que os dados ainda não chegaram. Isto deve-se ao facto de existirem duas fases ao copiar para o Azure Data Explorer.

    • A primeira fase lê os dados de origem, divide-os em segmentos de 900 MB e carrega cada segmento para um Blob do Azure. A primeira fase é vista pela vista de progresso da atividade do ADF.
    • A segunda fase começa assim que todos os dados são carregados para os Blobs do Azure. Os nós do cluster transferem os blobs e ingerem os dados na tabela sink. Em seguida, os dados são vistos na sua tabela de Data Explorer do Azure.

Falha ao ingerir ficheiros CSV devido a uma fuga incorreta

O Azure Data Explorer espera que os ficheiros CSV se alinhem com o RFC 4180. Espera:

  • Os campos que contêm carateres que requerem a fuga (como " e novas linhas) devem começar e terminar com um caráter " sem espaço em branco. Todos os " carateres dentro do campo são escapados com um caráter duplo " (""). Por exemplo, "Hello, ""World"" é um ficheiro CSV válido com um único registo com uma única coluna ou campo com o conteúdo Hello, "World".
  • Todos os registos no ficheiro têm de ter o mesmo número de colunas e campos.

Azure Data Factory permite o caráter de barra invertida (escape). Se gerar um ficheiro CSV com um caráter de barra invertida com Azure Data Factory, a ingestão do ficheiro no Azure Data Explorer falhará.

Exemplo

Os seguintes valores de texto: Hello, "World"
ABC DEF
"ABC\D"EF
"ABC DEF

Deve aparecer num ficheiro CSV adequado da seguinte forma: "Olá, ""Mundo"""
"ABC DEF"
""ABC\D"""EF"
""ABC DEF"

Ao utilizar o caráter de escape predefinido (barra invertida), o seguinte CSV não funcionará com o Azure Data Explorer: "Olá, "Mundo""
"ABC DEF"
""ABC\D"EF"
""ABC DEF"

Objetos JSON aninhados

Ao copiar um ficheiro JSON para o Azure Data Explorer, tenha em atenção que:

  • As matrizes não são suportadas.
  • Se a sua estrutura JSON contiver tipos de dados de objetos, Azure Data Factory aplanará os itens subordinados do objeto e tentará mapear cada item subordinado para uma coluna diferente na tabela Data Explorer do Azure. Se quiser que todo o item de objeto seja mapeado para uma única coluna no Azure Data Explorer:
    • Ingerir toda a linha JSON numa única coluna dinâmica no Azure Data Explorer.
    • Edite manualmente a definição do pipeline com o editor JSON do Azure Data Factory. Em Mapeamentos
      • Remova os múltiplos mapeamentos que foram criados para cada item subordinado e adicione um único mapeamento que mapeia o tipo de objeto à coluna da tabela.
      • Depois do parêntese reto de fecho, adicione uma vírgula seguida de:
        "mapComplexValuesToString": true.

Especificar Propriedades Adicionais ao copiar para o Azure Data Explorer

Pode adicionar propriedades de ingestão adicionais ao especificá-las na atividade de cópia no pipeline.

Para adicionar propriedades

  1. Em Azure Data Factory, selecione a ferramenta de lápis Autor.

  2. Em Pipeline, selecione o pipeline onde pretende adicionar propriedades de ingestão adicionais.

  3. Na tela Atividades , selecione a atividade Copiar dados .

  4. Nos detalhes da atividade, selecione Sink e, em seguida, expanda Propriedades adicionais.

  5. Selecione Novo, selecione Adicionar nó ou Adicionar matriz conforme necessário e, em seguida, especifique o nome e o valor da propriedade de ingestão. Repita este passo para adicionar mais propriedades.

  6. Uma vez concluído, guarde e publique o pipeline.

Passo seguinte