Introducción a la ingesta de datos en Azure Data Explorer

La ingesta de datos implica cargar datos en una tabla del clúster. Azure Data Explorer garantiza la validez de los datos, convierte los formatos según sea necesario y realiza manipulaciones como la coincidencia de esquemas, la organización, la indexación, la codificación y la compresión. Una vez ingeridos, los datos están disponibles para la consulta.

Azure Data Explorer ofrece ingesta única o el establecimiento de una canalización de ingesta continua, mediante streaming o ingesta en cola. Para determinar cuál es el adecuado para usted, consulte Ingesta de datos única y Ingesta continua de datos.

Nota

Los datos se conservan en el almacenamiento según la directiva de retención establecida.

Ingesta de datos única

La ingesta única es útil para la transferencia de datos históricos, rellenar los datos que faltan y las fases iniciales de creación de prototipos y análisis de datos. Este enfoque facilita la integración rápida de datos sin necesidad de un compromiso de canalización continua.

Hay varias maneras de realizar la ingesta de datos de un solo uso. Use el árbol de decisión siguiente para determinar la opción más adecuada para su caso de uso:

Diagrama de flujo para la toma de decisiones de ingesta única.

Para obtener más información, consulte la documentación pertinente:

Llamada Documentación pertinente
Consulte los formatos de datos admitidos por Azure Data Explorer para la ingesta.
Consulte los formatos de archivo admitidos para Azure Data Factory canalizaciones.
Para importar datos de un sistema de almacenamiento existente, consulte Ingesta de datos históricos en Azure Data Explorer.
En la interfaz de usuario web de Azure Data Explorer, puede obtener datos de un archivo local, Amazon S3 o Azure Storage.
Para integrarse con Azure Data Factory, consulte Copia de datos en Azure Data Explorer mediante Azure Data Factory.
Las bibliotecas cliente de Kusto están disponibles para C#, Python, Java, JavaScript, TypeScript y Go. Puede escribir código para manipular los datos y, a continuación, usar la biblioteca de ingesta de Kusto para ingerir datos en la tabla de Azure Data Explorer. Los datos deben estar en uno de los formatos admitidos antes de la ingesta.

Ingesta de datos continua

La ingesta continua destaca en situaciones que exigen información inmediata de los datos activos. Por ejemplo, la ingesta continua es útil para supervisar sistemas, registros y datos de eventos y análisis en tiempo real.

La ingesta continua de datos implica configurar una canalización de ingesta con ingesta de streaming o en cola:

  • Ingesta de streaming: este método garantiza una latencia casi en tiempo real para pequeños conjuntos de datos por tabla. Los datos se ingieren en micro lotes desde un origen de streaming, se colocan inicialmente en el almacén de filas y, a continuación, se transfieren a extensiones de almacén de columnas. Para más información, consulte Configuración de la ingesta de streaming.

  • Ingesta en cola: este método está optimizado para un alto rendimiento de ingesta. Los datos se procesan por lotes en función de las propiedades de ingesta, con lotes pequeños y luego combinados y optimizados para obtener resultados rápidos de la consulta. De forma predeterminada, los valores máximos en cola son de 5 minutos, 1000 elementos o un tamaño total de 1 GB. El límite de tamaño de datos para un comando de ingesta en cola es de 6 GB. Este método usa mecanismos de reintento para mitigar los errores transitorios y sigue la semántica de mensajería "al menos una vez" para asegurarse de que no se pierden mensajes en el proceso. Para obtener más información sobre la ingesta en cola, consulte Directiva de procesamiento por lotes de ingesta.

Nota

En la mayoría de los escenarios, se recomienda usar la ingesta en cola, ya que es la opción más eficaz.

Hay varias maneras de configurar la ingesta continua de datos. Use el árbol de decisión siguiente para determinar la opción más adecuada para su caso de uso:

Diagrama del árbol de decisión para la ingesta continua.

Para obtener más información, consulte la documentación pertinente:

Llamada Documentación pertinente
Para obtener una lista de conectores, consulte Introducción a los conectores.
Cree una conexión de datos de Event Hubs. La integración con Event Hubs proporciona servicios como la limitación, los reintentos, la supervisión y las alertas.
Ingiera datos de Apache Kafka, una plataforma de streaming distribuida para crear canalizaciones de datos de streaming en tiempo real.
Cree una conexión de datos IoT Hub. La integración con IoT Hubs proporciona servicios como la limitación, los reintentos, la supervisión y las alertas.
Cree una conexión de datos de Event Grid. La integración con Event Grid proporciona servicios como la limitación, los reintentos, la supervisión y las alertas.
Consulte las instrucciones del conector pertinente, como Apache Spark, Apache Kafka, Azure Cosmos DB, Fluent Bit, Logstash, Open Telemetry, Power Automate, Splunk, etc. Para más información, consulte Introducción a los conectores.
Las bibliotecas cliente de Kusto están disponibles para C#, Python, Java, JavaScript, TypeScript y Go. Puede escribir código para manipular los datos y, a continuación, usar la biblioteca de ingesta de Kusto para ingerir datos en la tabla de Azure Data Explorer. Los datos deben estar en uno de los formatos admitidos antes de la ingesta.

Nota

La ingesta de streaming no se admite para todos los métodos de ingesta. Para obtener detalles de soporte técnico, consulte la documentación del método de ingesta específico.

Ingesta directa con comandos de administración

Azure Data Explorer ofrece los siguientes comandos de administración de ingesta, que ingieren datos directamente en el clúster en lugar de usar el servicio de administración de datos. Solo se deben usar para la exploración y creación de prototipos y no en escenarios de producción o de gran volumen.

  • Ingesta insertada: el comando .ingest inline contiene los datos que se van a ingerir como parte del propio texto del comando. Este método está pensado para la realización de pruebas improvisadas.
  • Ingesta de consultas: los comandos .set, .append, .set-or-append o .set-or-replace especifican indirectamente los datos que se van a ingerir como resultados de una consulta o un comando.
  • Ingesta desde el almacenamiento: el comando .ingest into obtiene los datos que se van a ingerir desde el almacenamiento externo, como Azure Blob Storage, accesibles por el clúster y apuntados por el comando.

Comparación de métodos de ingesta

En la tabla siguiente se comparan los métodos de ingesta principales:

Nombre de ingesta Tipo de datos Tamaño de archivo máximo Streaming, en cola, directo La mayoría de los escenarios comunes Consideraciones
Conector de Apache Spark Todos los formatos admitidos por el entorno de Spark Sin límite En cola Canalización existente, preprocesamiento en Spark antes de la ingesta, forma rápida de crear una canalización de streaming segura (Spark) a partir de los distintos orígenes que admite el entorno de Spark. Considere el costo del clúster de Spark. Para la escritura por lotes, compare con la conexión de datos de Azure Data Explorer para Event Grid. En el caso del streaming de Spark, compare con la conexión de datos de Event Hubs.
Azure Data Factory (ADF) Formatos de datos compatibles Sin límite. Hereda las restricciones de ADF. Desencadenador en cola o por ADF Admite formatos que no son compatibles, como Excel y XML, y puede copiar archivos grandes de más de 90 orígenes, desde el entorno local a la nube. Este método tarda bastante más tiempo hasta que se ingieren los datos. ADF carga todos los datos en la memoria y, a continuación, comienza la ingesta.
Event Grid Formatos de datos compatibles 1  GB sin comprimir En cola Ingesta continua desde Azure Storage, datos externos en Azure Storage La ingesta se puede desencadenar mediante las acciones de cambio de nombre o creación de blob.
Centro de eventos Formatos de datos compatibles N/D En cola, streaming Mensajes, eventos
Obtener experiencia de datos *SV, JSON 1  GB sin comprimir Ingesta en cola o directa Un esquema de creación de tablas de un solo uso, definición de ingesta continua con Event Grid, ingesta en bloque con contenedor (hasta 5000 blobs; sin límite al usar la ingesta histórica)
IoT Hub Formatos de datos compatibles N/D En cola, streaming Mensajes de IoT, eventos de IoT, propiedades de IoT
Conector de Kafka Avro, ApacheAvro, JSON, CSV, Parquet y ORC Sin límite. Hereda las restricciones de Java. En cola, streaming Canalización existente, consumo de gran volumen desde el origen. La preferencia se puede determinar mediante el uso existente de varios productores o servicios de consumidor o el nivel deseado de administración de servicios.
Bibliotecas cliente de Kusto Formatos de datos compatibles 1  GB sin comprimir En cola, streaming, directo Escriba su propio código en función de las necesidades de la organización. La ingesta mediante programación está optimizada para reducir los costos de ingesta (COG) al minimizar las transacciones de almacenamiento durante y seguir el proceso de ingesta.
LightIngest Formatos de datos compatibles 1  GB sin comprimir Ingesta en cola o directa Migración de datos, datos históricos con marcas de tiempo de ingesta ajustadas, ingesta masiva Distingue mayúsculas de minúsculas y distingue espacios
Logic Apps Formatos de datos compatibles 1  GB sin comprimir En cola Se usa para automatizar canalizaciones.
LogStash JSON Sin límite. Hereda las restricciones de Java. En cola Canalización existente, use la naturaleza madura código abierto de Logstash para un consumo elevado de volúmenes de las entradas. La preferencia se puede determinar mediante el uso existente de varios productores o servicios de consumidor o el nivel deseado de administración de servicios.
Power Automate Formatos de datos compatibles 1  GB sin comprimir En cola Comandos de ingesta como parte del flujo. Se usa para automatizar canalizaciones.

Para obtener información sobre otros conectores, consulte Introducción a los conectores.

Permisos

En la lista siguiente se describen los permisos necesarios para varios escenarios de ingesta:

  • Para crear una tabla, se necesitan al menos permisos de usuario de base de datos.
  • Para ingerir datos en una tabla existente, sin cambiar su esquema, se requieren al menos permisos del ingeror de base de datos.
  • Para cambiar el esquema de una tabla existente, se necesitan al menos permisos de Administración de tabla o base de datos Administración.

Para obtener más información, consulte Control de acceso basado en rol de Kusto.

El proceso de ingesta

En los pasos siguientes se describe el proceso de ingesta general:

  1. Establecer directiva de procesamiento por lotes (opcional): los datos se procesan por lotes en función de la directiva de procesamiento por lotes de ingesta. Para obtener instrucciones, consulte Optimización del rendimiento.

  2. Establecer directiva de retención (opcional): si la directiva de retención de base de datos no es adecuada para sus necesidades, anulela en el nivel de tabla. Para más información, consulte Directiva de retención.

  3. Crear una tabla: si usa la experiencia Obtener datos, puede crear una tabla como parte del flujo de ingesta. De lo contrario, cree una tabla antes de la ingesta en la interfaz de usuario web de Azure Data Explorer o con el comando .create table.

  4. Crear una asignación de esquema: las asignaciones de esquema ayudan a enlazar campos de datos de origen a columnas de tabla de destino. Se admiten diferentes tipos de asignaciones, incluidos formatos orientados a filas, como CSV, JSON y AVRO, y formatos orientados a columnas como Parquet. En la mayoría de los métodos, las asignaciones también se pueden crear previamente en la tabla.

  5. Establecer directiva de actualización (opcional): ciertos formatos de datos como Parquet, JSON y Avro permiten transformaciones sencillas en tiempo de ingesta. Para un procesamiento más complejo durante la ingesta, use la directiva de actualización. Esta directiva ejecuta automáticamente extracciones y transformaciones en datos ingeridos dentro de la tabla original y, a continuación, ingiere los datos modificados en una o varias tablas de destino.

  6. Ingesta de datos: use la herramienta de ingesta, el conector o el método preferidos para incorporar los datos.