Visão geral da ingestão de dados do Azure Data ExplorerAzure Data Explorer data ingestion overview

Ingestão de dados é o processo usado para carregar registos de dados de uma ou mais fontes para importar dados para uma tabela no Azure Data Explorer.Data ingestion is the process used to load data records from one or more sources to import data into a table in Azure Data Explorer. Uma vez ingeridos, os dados ficam disponíveis para consulta.Once ingested, the data becomes available for query.

O diagrama abaixo mostra o fluxo de ponta a ponta para trabalhar no Azure Data Explorer e mostra diferentes métodos de ingestão.The diagram below shows the end-to-end flow for working in Azure Data Explorer and shows different ingestion methods.

Esquema de visão geral da ingestão e gestão de dados

O serviço de gestão de dados Azure Data Explorer, responsável pela ingestão de dados, implementa o seguinte processo:The Azure Data Explorer data management service, which is responsible for data ingestion, implements the following process:

O Azure Data Explorer retira dados de uma fonte externa e lê pedidos de uma fila Azure pendente.Azure Data Explorer pulls data from an external source and reads requests from a pending Azure queue. Os dados são em lotados ou transmitidos para o Gestor de Dados.Data is batched or streamed to the Data Manager. Os dados do lote que fluem para a mesma base de dados e tabela são otimizados para a ingestão.Batch data flowing to the same database and table is optimized for ingestion throughput. O Azure Data Explorer valida os dados iniciais e converte os formatos de dados sempre que necessário.Azure Data Explorer validates initial data and converts data formats where necessary. Outras manipulações de dados incluem esquemas correspondentes, organização, indexação, codificação e compressão dos dados.Further data manipulation includes matching schema, organizing, indexing, encoding, and compressing the data. Os dados são persistidos no armazenamento de acordo com a política de retenção definida.Data is persisted in storage according to the set retention policy. O Data Manager compromete então os dados ingeridos para o motor, onde está disponível para consulta.The Data Manager then commits the data ingest to the engine, where it's available for query.

Formatos, propriedades e permissões de dados suportadosSupported data formats, properties, and permissions

Ingestão de streaming vs lotaçãoBatching vs streaming ingestion

  • A ingestão de lotes faz o loteamento de dados e é otimizada para uma alta ingestão.Batching ingestion does data batching and is optimized for high ingestion throughput. Este método é o tipo de ingestão preferido e mais performante.This method is the preferred and most performant type of ingestion. Os dados são lotados de acordo com as propriedades de ingestão.Data is batched according to ingestion properties. Pequenos lotes de dados são então fundidos e otimizados para resultados de consulta rápida.Small batches of data are then merged, and optimized for fast query results. A política de loteamento de ingestão pode ser definida em bases de dados ou tabelas.The ingestion batching policy can be set on databases or tables. Por predefinição, o valor máximo do lote é de 5 minutos, 1000 itens ou um tamanho total de 500 MB.By default, the maximum batching value is 5 minutes, 1000 items, or a total size of 500 MB.

  • A ingestão de dados em streaming é a ingestão contínua de dados de uma fonte de streaming.Streaming ingestion is ongoing data ingestion from a streaming source. A ingestão de streaming permite a latência em tempo real para pequenos conjuntos de dados por tabela.Streaming ingestion allows near real-time latency for small sets of data per table. Os dados são inicialmente ingeridos para armazenar em linha, e depois transferidos para a loja de colunas.Data is initially ingested to row store, then moved to column store extents. A ingestão de streaming pode ser feita usando uma biblioteca de clientes Azure Data Explorer ou um dos pipelines de dados suportados.Streaming ingestion can be done using an Azure Data Explorer client library or one of the supported data pipelines.

Métodos e ferramentas de ingestãoIngestion methods and tools

O Azure Data Explorer suporta vários métodos de ingestão, cada um com os seus próprios cenários-alvo.Azure Data Explorer supports several ingestion methods, each with its own target scenarios. Estes métodos incluem ferramentas de ingestão, conectores e plugins para diversos serviços, oleodutos geridos, ingestão programática usando SDKs, e acesso direto à ingestão.These methods include ingestion tools, connectors and plugins to diverse services, managed pipelines, programmatic ingestion using SDKs, and direct access to ingestion.

Ingestão utilizando gasodutos geridosIngestion using managed pipelines

Para as organizações que desejam ter gestão (estrangulamento, retréis, monitores, alertas e muito mais) feita por um serviço externo, usar um conector é provavelmente a solução mais adequada.For organizations who wish to have management (throttling, retries, monitors, alerts, and more) done by an external service, using a connector is likely the most appropriate solution. A ingestão em fila é adequada para grandes volumes de dados.Queued ingestion is appropriate for large data volumes. O Azure Data Explorer suporta os seguintes Pipelines Azure:Azure Data Explorer supports the following Azure Pipelines:

Ingestão utilizando conectores e pluginsIngestion using connectors and plugins

Ingestão programática usando SDKsProgrammatic ingestion using SDKs

O Azure Data Explorer fornece SDKs que podem ser usados para consulta e ingestão de dados.Azure Data Explorer provides SDKs that can be used for query and data ingestion. A ingestão programática é otimizada para reduzir os custos de ingestão (COGs), minimizando as transações de armazenamento durante e após o processo de ingestão.Programmatic ingestion is optimized for reducing ingestion costs (COGs), by minimizing storage transactions during and following the ingestion process.

SDKs disponíveis e projetos de código abertoAvailable SDKs and open-source projects

FerramentasTools

  • Um clique de ingestão: Permite-lhe ingerir rapidamente dados criando e ajustando tabelas a partir de uma ampla gama de tipos de origem.One click ingestion: Enables you to quickly ingest data by creating and adjusting tables from a wide range of source types. Um clique de ingestão sugere automaticamente tabelas e estruturas de mapeamento com base na fonte de dados no Azure Data Explorer.One click ingestion automatically suggests tables and mapping structures based on the data source in Azure Data Explorer. Uma ingestão de cliques pode ser usada para ingestão única, ou para definir a ingestão contínua através da Grade de Eventos no recipiente ao qual os dados foram ingeridos.One click ingestion can be used for one-time ingestion, or to define continuous ingestion via Event Grid on the container to which the data was ingested.

  • LightIngest: Um utilitário de linha de comando para ingestão de dados ad-hoc no Azure Data Explorer.LightIngest: A command-line utility for ad-hoc data ingestion into Azure Data Explorer. O utilitário pode extrair dados de origem de uma pasta local ou de um recipiente de armazenamento de bolhas Azure.The utility can pull source data from a local folder or from an Azure blob storage container.

Kusto Query Language ingeste comandos de controloKusto Query Language ingest control commands

Existem uma série de métodos através dos quais os dados podem ser ingeridos diretamente no motor pelos comandos da Língua De Consulta kusto (KQL).There are a number of methods by which data can be ingested directly to the engine by Kusto Query Language (KQL) commands. Como este método contorna os serviços de Gestão de Dados, só é apropriado para exploração e prototipagem.Because this method bypasses the Data Management services, it's only appropriate for exploration and prototyping. Não utilize este método em cenários de produção ou de grande volume.Don't use this method in production or high-volume scenarios.

  • Ingestão em linha: Um comando de controlo .ingeste é enviado para o motor, com os dados a ingerir fazendo parte do próprio texto de comando.Inline ingestion: A control command .ingest inline is sent to the engine, with the data to be ingested being a part of the command text itself. Este método destina-se a fins de ensaio improvisados.This method is intended for improvised testing purposes.

  • Ingeste de consulta: Um comando de controlo .set, .append, .set-or-append, ou .set-or-replace é enviado para o motor, com os dados especificados indiretamente como resultados de uma consulta ou de um comando.Ingest from query: A control command .set, .append, .set-or-append, or .set-or-replace is sent to the engine, with the data specified indirectly as the results of a query or a command.

  • Ingestão de armazenamento (puxar): Um comando de controlo .ingestão é enviado para o motor, com os dados armazenados em algum armazenamento externo (por exemplo, Azure Blob Storage) acessíveis pelo motor e apontados pelo comando.Ingest from storage (pull): A control command .ingest into is sent to the engine, with the data stored in some external storage (for example, Azure Blob Storage) accessible by the engine and pointed-to by the command.

Comparar métodos e ferramentas de ingestãoComparing ingestion methods and tools

Nome de ingestãoIngestion name Tipo de dadosData type Tamanho máximo do ficheiroMaximum file size Streaming, loteamento, diretoStreaming, batching, direct Cenários mais comunsMost common scenarios ConsideraçõesConsiderations
Um clique de ingestãoOne click ingestion *sv, JSON*sv, JSON 1 GB descomprimido (ver nota)1 GB uncompressed (see note) Loteamento para contentor, arquivo local e bolha na ingestão diretaBatching to container, local file and blob in direct ingestion Pontual, criar esquema de mesa, definição de ingestão contínua com grelha de evento, ingestão a granel com recipiente (até 10.000 bolhas)One-off, create table schema, definition of continuous ingestion with event grid, bulk ingestion with container (up to 10,000 blobs) 10.000 bolhas são selecionadas aleatoriamente a partir de recipiente10,000 blobs are randomly selected from container
LightIngestLightIngest Todos os formatos suportadosAll formats supported 1 GB descomprimido (ver nota)1 GB uncompressed (see note) Loteamento via DM ou ingestão direta ao motorBatching via DM or direct ingestion to engine Migração de dados, dados históricos com timetamps de ingestão ajustado, ingestão a granel (sem restrição de tamanho)Data migration, historical data with adjusted ingestion timestamps, bulk ingestion (no size restriction) Sensível a casos, sensíveis ao espaçoCase-sensitive, space-sensitive
ADX KafkaADX Kafka
ADX para Apache SparkADX to Apache Spark
LogStashLogStash
Azure Data FactoryAzure Data Factory Formatos de dados suportadosSupported data formats ilimitado *(por restrições ADF)unlimited *(per ADF restrictions) Loteamento ou por gatilho ADFBatching or per ADF trigger Suporta formatos que normalmente não são suportados, grandes ficheiros, pode copiar de mais de 90 fontes, de perm para cloudSupports formats that are usually unsupported, large files, can copy from over 90 sources, from on perm to cloud Tempo de ingestãoTime of ingestion
Fluxo de dados Azure Azure Data Flow Comandos de ingestão como parte do fluxoIngestion commands as part of flow Deve ter um tempo de resposta de alto desempenhoMust have high-performing response time
IoT HubIoT Hub Formatos de dados suportadosSupported data formats N/DN/A Loteamento, streamingBatching, streaming Mensagens IoT, eventos IoT, propriedades IoTIoT messages, IoT events, IoT properties
Hub de EventosEvent Hub Formatos de dados suportadosSupported data formats N/DN/A Loteamento, streamingBatching, streaming Mensagens, eventosMessages, events
Event GridEvent Grid Formatos de dados suportadosSupported data formats 1 GB descomprimido1 GB uncompressed LotesBatching Ingestão contínua a partir do armazenamento da Azure, dados externos no armazenamento do AzureContinuous ingestion from Azure storage, external data in Azure storage 100 KB é o tamanho ideal do ficheiro, usado para renomear blob e criação de bolhas100 KB is optimal file size, Used for blob renaming and blob creation
D'SmNet Std Todos os formatos suportadosAll formats supported 1 GB descomprimido (ver nota)1 GB uncompressed (see note) Loteamento, streaming, diretoBatching, streaming, direct Escreva o seu próprio código de acordo com as necessidades organizacionaisWrite your own code according to organizational needs
PythonPython Todos os formatos suportadosAll formats supported 1 GB descomprimido (ver nota)1 GB uncompressed (see note) Loteamento, streaming, diretoBatching, streaming, direct Escreva o seu próprio código de acordo com as necessidades organizacionaisWrite your own code according to organizational needs
Node.jsNode.js Todos os formatos suportadosAll formats supported 1 GB descomprimido (ver nota1 GB uncompressed (see note Loteamento, streaming, diretoBatching, streaming, direct Escreva o seu próprio código de acordo com as necessidades organizacionaisWrite your own code according to organizational needs
JavaJava Todos os formatos suportadosAll formats supported 1 GB descomprimido (ver nota)1 GB uncompressed (see note) Loteamento, streaming, diretoBatching, streaming, direct Escreva o seu próprio código de acordo com as necessidades organizacionaisWrite your own code according to organizational needs
RESTREST Todos os formatos suportadosAll formats supported 1 GB descomprimido (ver nota)1 GB uncompressed (see note) Loteamento, streaming, diretoBatching, streaming, direct Escreva o seu próprio código de acordo com as necessidades organizacionaisWrite your own code according to organizational needs
IrGo Todos os formatos suportadosAll formats supported 1 GB descomprimido (ver nota)1 GB uncompressed (see note) Loteamento, streaming, diretoBatching, streaming, direct Escreva o seu próprio código de acordo com as necessidades organizacionaisWrite your own code according to organizational needs

Nota

Quando referenciado na tabela acima, a ingestão suporta um tamanho máximo de ficheiro de 5 GB.When referenced in the above table, ingestion supports a maximum file size of 5 GB. A recomendação é ingerir ficheiros entre 100 MB e 1 GB.The recommendation is to ingest files between 100 MB and 1 GB.

Processo de ingestãoIngestion process

Depois de ter escolhido o método de ingestão mais adequado para as suas necessidades, faça os seguintes passos:Once you have chosen the most suitable ingestion method for your needs, do the following steps:

  1. Definir política de retençãoSet retention policy

    Os dados ingeridos numa tabela no Azure Data Explorer estão sujeitos à política eficaz de retenção da tabela.Data ingested into a table in Azure Data Explorer is subject to the table's effective retention policy. A menos que seja explicitamente definida numa tabela, a política de retenção eficaz deriva da política de retenção da base de dados.Unless set on a table explicitly, the effective retention policy is derived from the database's retention policy. A retenção quente é uma função do tamanho do cluster e da sua política de retenção.Hot retention is a function of cluster size and your retention policy. Ingerir mais dados do que o espaço disponível forçará o primeiro em dados à retenção fria.Ingesting more data than you have available space will force the first in data to cold retention.

    Certifique-se de que a política de retenção da base de dados é adequada às suas necessidades.Make sure that the database's retention policy is appropriate for your needs. Caso contrário, substitua-a explicitamente ao nível da tabela.If not, explicitly override it at the table level. Para mais informações, consulte a política de retenção.For more information, see retention policy.

  2. Criar tabelasCreate a table

    Para ingerir dados, uma tabela precisa de ser criada previamente.In order to ingest data, a table needs to be created beforehand. Utilize uma das seguintes opções:Use one of the following options:

    Nota

    Se um registo estiver incompleto ou um campo não puder ser analisado como o tipo de dados necessário, as colunas de tabela correspondentes serão povoadas com valores nulos.If a record is incomplete or a field cannot be parsed as the required data type, the corresponding table columns will be populated with null values.

  3. Criar mapeamento de esquemaCreate schema mapping

    O mapeamento de schema ajuda a ligar campos de dados de origem a colunas de tabelas de destino.Schema mapping helps bind source data fields to destination table columns. O mapeamento permite-lhe levar dados de diferentes fontes para a mesma tabela, com base nos atributos definidos.Mapping allows you to take data from different sources into the same table, based on the defined attributes. São suportados diferentes tipos de mapeamentos, orientados para a linha (CSV, JSON e AVRO) e orientados para colunas (Parquet).Different types of mappings are supported, both row-oriented (CSV, JSON and AVRO), and column-oriented (Parquet). Na maioria dos métodos, os mapeamentos também podem ser pré-criados na tabela e referenciados a partir do parâmetro de comando de ingestão.In most methods, mappings can also be pre-created on the table and referenced from the ingest command parameter.

  4. Definir política de atualização (opcional)Set update policy (optional)

    Alguns dos mapeamentos de formato de dados (Parquet, JSON e Avro) suportam transformações simples e úteis no tempo de ingestão.Some of the data format mappings (Parquet, JSON, and Avro) support simple and useful ingest-time transformations. Quando o cenário requer um processamento mais complexo no momento de ingestão, use a política de atualização, que permite o processamento leve usando comandos de Linguagem de Consulta kusto.Where the scenario requires more complex processing at ingest time, use update policy, which allows for lightweight processing using Kusto Query Language commands. A política de atualização executa automaticamente extrações e transformações em dados ingeridos na tabela original, e ingere os dados resultantes em uma ou mais tabelas de destino.The update policy automatically runs extractions and transformations on ingested data on the original table, and ingests the resulting data into one or more destination tables. Desave a sua política de atualização.Set your update policy.

Próximos passosNext steps