Ingesta de datos de Azure Data ExplorerAzure Data Explorer data ingestion

La ingesta de datos es el proceso que se usa para cargar los registros de datos de uno o más orígenes para crear o actualizar una tabla en Azure Data Explorer.Data ingestion is the process used to load data records from one or more sources to create or update a table in Azure Data Explorer. Una vez ingeridos, los datos están disponibles para su consulta.Once ingested, the data becomes available for query. El diagrama siguiente muestra el flujo de un extremo a otro para trabajar en Azure Data Explorer, incluida la ingesta de datos.The diagram below shows the end-to-end flow for working in Azure Data Explorer, including data ingestion.

flujo de datos

El servicio de administración de datos Azure Data Explorer, que es el responsable de la ingesta de datos, proporciona las siguientes funcionalidades:The Azure Data Explorer data management service, which is responsible for data ingestion, provides the following functionality:

  1. Extracción de datos: extracción de datos de orígenes externos (Event Hubs) o lectura de las solicitudes de ingesta de una cola de Azure.Data pull: Pull data from external sources (Event Hubs) or read ingestion requests from an Azure Queue.

  2. Procesamiento por lotes: procesamiento por lotes de datos que fluyen a la misma base de datos y tabla para optimizar el rendimiento de la ingesta de datos.Batching: Batch data flowing to the same database and table to optimize ingestion throughput.

  3. Validación: validación preliminar y conversión de formato, si es necesario.Validation: Preliminary validation and format conversion if necessary.

  4. Manipulación de datos: esquema coincidente, organización, indexación, codificación y compresión de los datos.Data manipulation: Matching schema, organizing, indexing, encoding and compressing the data.

  5. Punto de persistencia en el flujo de ingesta: administración de la carga de ingesta en el motor y control de los reintentos tras los errores transitorios.Persistence point in the ingestion flow: Manage ingestion load on the engine and handle retries upon transient failures.

  6. Confirmación de los datos de ingesta: hace que los datos estén disponibles para su consulta.Commit the data ingest: Makes the data available for query.

Métodos de ingestaIngestion methods

Azure Data Explorer admite varios métodos de ingesta, cada uno con sus propios escenarios de destino, ventajas y desventajas.Azure Data Explorer supports several ingestion methods, each with its own target scenarios, advantages, and disadvantages. Azure Data Explorer ofrece canalizaciones y conectores para servicios comunes, ingesta mediante programación con los SDK y acceso directo al motor para fines de exploración.Azure Data Explorer offers pipelines and connectors to common services, programmatic ingestion using SDKs, and direct access to the engine for exploration purposes.

Ingesta mediante canalizaciones, conectores y complementosIngestion using pipelines, connectors, and plugins

Actualmente, Azure Data Explorer es compatible con lo siguiente:Azure Data Explorer currently supports:

Ingesta mediante servicios de integraciónIngestion using integration services

Ingesta mediante programaciónProgrammatic ingestion

Azure Data Explorer proporciona SDK que pueden usarse para la consulta e ingesta de datos.Azure Data Explorer provides SDKs that can be used for query and data ingestion. La ingesta mediante programación está optimizada para reducir los costos de ingesta (COG), minimizando las transacciones de almacenamiento durante y después del proceso de ingesta.Programmatic ingestion is optimized for reducing ingestion costs (COGs), by minimizing storage transactions during and following the ingestion process.

SDK y proyectos de código abierto disponibles:Available SDKs and open-source projects:

Kusto ofrece un cliente SDK que puede utilizarse para la ingesta y consulta de datos con:Kusto offers client SDK that can be used to ingest and query data with:

Técnicas de ingesta mediante programación:Programmatic ingestion techniques:

  • Ingesta de datos mediante el servicio de administración de datos Azure Data Explorer (ingesta confiable y de alto rendimiento):Ingesting data through the Azure Data Explorer data management service (high-throughput and reliable ingestion):

    Ingesta de lotes (proporcionada por el SDK): el cliente carga los datos en Azure Blob Storage (designado por el servicio de administración de datos Azure Data Explorer) y envía una notificación a una cola de Azure.Batch ingestion (provided by SDK): the client uploads the data to Azure Blob storage (designated by the Azure Data Explorer data management service) and posts a notification to an Azure Queue. La ingesta de lotes es la técnica recomendada para la ingesta confiable y económica de datos de gran volumen.Batch ingestion is the recommended technique for high-volume, reliable, and cheap data ingestion.

  • Ingesta de datos directamente en el motor de Azure Data Explorer (más adecuado para la exploración y la creación de prototipos):Ingesting data directly into the Azure Data Explorer engine (most appropriate for exploration and prototyping):

    • Ingesta insertada: comando de control (.ingest inline) que contiene los datos en banda, está pensado para fines de pruebas ad hoc.Inline ingestion: control command (.ingest inline) containing in-band data is intended for ad hoc testing purposes.

    • Ingesta de consulta: comando de control (.set, .set-or-append, .set-or-replace) que señala a los resultados de la consulta, se usa para generar informes o pequeñas tablas temporales.Ingest from query: control command (.set, .set-or-append, .set-or-replace) that points to query results is used for generating reports or small temporary tables.

    • Ingesta de almacenamiento: comando de control (.ingest into) con datos almacenados externamente (por ejemplo, Azure Blob Storage) permite la ingesta en masa de datos de forma eficaz.Ingest from storage: control command (.ingest into) with data stored externally (for example, Azure Blob Storage) allows efficient bulk ingestion of data.

Latencia de los distintos métodos:Latency of different methods:

MétodoMethod LatenciaLatency
Ingesta insertadaInline ingestion InmediataImmediate
Ingesta de consultaIngest from query Tiempo de consulta + tiempo de procesamientoQuery time + processing time
Ingesta de almacenamientoIngest from storage Tiempo de descarga + tiempo de procesamientoDownload time + processing time
Ingesta en colaQueued ingestion Tiempo del procesamiento por lotes + tiempo de procesamientoBatching time + processing time

El tiempo de procesamiento depende del tamaño de los datos, de menos de unos segundos.Processing time depends on the data size, less than a few seconds. El tiempo del procesamiento por lotes tiene un valor predeterminado de 5 minutos.Batching time defaults to 5 minutes.

Selección del método más adecuado de ingestaChoosing the most appropriate ingestion method

Antes de empezar con la ingesta de datos, debe plantearse las siguientes preguntas.Before you start to ingest data, you should ask yourself the following questions.

  • ¿Dónde residen mis datos?Where does my data reside?
  • ¿Cuál es el formato de los datos y es posible cambiarlo?What is the data format, and can it be changed?
  • ¿Cuáles son los campos obligatorios que se van a consultar?What are the required fields to be queried?
  • ¿Cuál es el volumen de datos y la velocidad que se esperan?What is the expected data volume and velocity?
  • ¿Cuántos tipos de eventos se esperan (reflejados como número de tablas)?How many event types are expected (reflected as the number of tables)?
  • ¿Con qué frecuencia se espera que cambie el esquema de eventos?How often is the event schema expected to change?
  • ¿Cuántos nodos generarán los datos?How many nodes will generate the data?
  • ¿Cuál es el SO del origen?What is the source OS?
  • ¿Cuáles son los requisitos de latencia?What are the latency requirements?
  • ¿Puede utilizarse una de las canalizaciones de ingesta administrada existentes?Can one of the existing managed ingestion pipelines be used?

En el caso de las organizaciones con una infraestructura existente que usen un servicio de mensajería como Event Hub y IoT Hub, el uso de un conector es probablemente la solución más adecuada.For organizations with an existing infrastructure that are based on a messaging service like Event Hub and IoT Hub, using a connector is likely the most appropriate solution. La ingesta en cola es apropiada para grandes volúmenes de datos.Queued ingestion is appropriate for large data volumes.

Formatos de datos compatiblesSupported data formats

Para todos los métodos de ingesta, salvo la ingesta de consulta, cambie el formato de los datos para que Azure Data Explorer pueda analizarlos.For all ingestion methods other than ingest from query, format the data so that Azure Data Explorer can parse it. Los formatos de datos compatibles son:The supported data formats are:

  • TXT, CSV, TSV, TSVE, PSV, SCSV, SOHTXT, CSV, TSV, TSVE, PSV, SCSV, SOH
  • JSON (separados por línea, multilínea), AvroJSON (line-separated, multi-line), Avro
  • ZIP y GZIPZIP and GZIP

Nota

Cuando se produce la ingesta de datos, los tipos de datos se infieren basándose en las columnas de tabla de destino.When data is being ingested, data types are inferred based on the target table columns. Si un registro está incompleto o un campo no se puede analizar como tipo el de datos necesarios, las columnas de tabla correspondientes se rellenará con 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.

Limitaciones y recomendaciones de ingestaIngestion recommendations and limitations

  • La directiva de retención efectiva de los datos ingeridos se deriva de la directiva de retención de la base de datos.The effective retention policy of ingested data is derived from the database's retention policy. Para información más detallada consulte Directiva de retención.See retention policy for details. La ingesta de datos requiere permisos de Agente de ingesta de tablas o de Agente de ingesta de base de datos.Ingesting data requires Table ingestor or Database ingestor permissions.
  • La ingesta admite un tamaño de archivo máximo de 5 GB.Ingestion supports a maximum file size of 5 GB. Se recomienda ingerir archivos de entre 100 MB y 1 GB.The recommendation is to ingest files between 100 MB and 1 GB.

Asignación de esquemasSchema mapping

La asignación de esquemas, ayuda a enlazar campos de datos de origen a columnas de tabla de destino.Schema mapping helps bind source data fields to destination table columns.

Pasos siguientesNext steps