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 .ingest
ou .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:
- Crie o fluxo de dados de mapeamento.
- Exporte os dados para o Blob do Azure.
- 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 |
|
Limites do servidor |
Os limites de consulta podem ser expandidos/desativados. Por predefinição, as consultas do ADF contêm:
|
Por predefinição, expande ou desativa os limites de consulta:
|
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. |
|
|
Limites do Servidor |
|
|
|
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. |
|
|
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. |
|
|
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:
|
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 |
|
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
Em Azure Data Factory, selecione a ferramenta de lápis Autor.
Em Pipeline, selecione o pipeline onde pretende adicionar propriedades de ingestão adicionais.
Na tela Atividades , selecione a atividade Copiar dados .
Nos detalhes da atividade, selecione Sink e, em seguida, expanda Propriedades adicionais.
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.
Uma vez concluído, guarde e publique o pipeline.