Desempeño entre el Conector Snowflake vs Conector Onibex

Desempeño entre el Conector Snowflake vs Conector Onibex

Introducción

Este artículo tiene como objetivo comparar el rendimiento entre dos conectores diferentes que se utilizan para enviar datos a Snowflake: el conector nativo de Snowflake y un conector custom desarrollado por Onibex. Las pruebas se llevaron a cabo tanto en Confluent Cloud como en Confluent Platform.

Se realizaron un total de 48 pruebas considerando dos tamaños de mensajes (500 KB y 1000 KB) con diferentes configuraciones de tareas (1, 2 y 4 tasks) y considerando dos escenarios:

  • La tabla no existe en el destino (Snowflake).

  • La tabla existe en el destino (Snowflake).

Metodología

Las pruebas se ejecutaron en dos entornos diferentes:

  1. Confluent Cloud

  2. Confluent Platform

Para cada entorno, se probaron dos tamaños de mensajes: 500 KB y 1000 KB. Cada prueba se ejecutó con diferentes configuraciones de tasks (1, 2 y 4). En cada configuración, se enviaron batchs de 200 mensajes y 400 mensajes.

Observaciones Generales

  1. Desempeño del Conector de Snowflake:

    • El conector de Snowflake es eficiente al ejecutar queries, pero muestra lentitud significativa al insertar datos. Aunque su rendimiento en la ejecución de SQL es rápido, el proceso de envío de las instrucciones a la nube de Snowflake es considerablemente más lento debido a la latencia de red y al overhead en la conversión de datos a JSON.

    • El conector convierte los mensajes en formato JSON y los inserta en Snowflake, lo cual puede generar un overhead adicional.

    • Cuando se utiliza Confluent Cloud, se requiere que la región de Confluent y la región de Snowflake coincidan para obtener un mejor rendimiento.

    • En tareas con 1 worker, el rendimiento se ve afectado significativamente, con diferencias de hasta un 40% en comparación con el conector Onibex.

  2. Desempeño del Conector Onibex:

    • El conector Onibex ha sido diseñado específicamente para optimizar la inserción de datos en Snowflake, logrando una mejor eficiencia en la transferencia de datos al evitar conversiones innecesarias y manejando conexiones de forma más eficaz.

    • A diferencia del conector de Snowflake, este conector utiliza un protocolo de comunicación más directo que reduce la latencia al enviar los datos a Snowflake.

    • Las pruebas realizadas muestran que el conector Onibex es más eficiente al manejar la carga de trabajo enviada a Snowflake, especialmente al aumentar la cantidad de workers.

    • En tareas con 1 worker, la mejora promedio es de un 25% en comparación con el conector de Snowflake.

    • En tareas con 2 workers, la mejora promedio es del 30%.

    • En tareas con 4 workers, la mejora promedio es del 35%.

    • Este rendimiento superior se mantiene consistente a lo largo de múltiples pruebas, demostrando su robustez y eficiencia.

Análisis de Métricas

En esta sección, se analizarán las diferencias en tiempo entre las pruebas realizadas para cada conector, calculando porcentajes de mejora o empeoramiento, considerando las horas de inicio y finalización de cada prueba proporcionadas en el archivo Excel.

Confluent Cloud
  • Tamaño del mensaje: 500 KB

    • Tarea con 1 worker: Mejora del conector Onibex en un 12% respecto al conector Snowflake cuando la tabla ya existe.

    • Tarea con 2 workers: Mejora del conector Onibex en un 18% en comparación con el conector Snowflake.

    • Tarea con 4 workers: Mejora del conector Onibex de hasta un 30% al escribir en tablas existentes.

  • Tamaño del mensaje: 1000 KB

    • Tarea con 1 worker: Mejora del conector Onibex en un 10%.

    • Tarea con 2 workers: Mejora del conector Onibex en un 20%.

    • Tarea con 4 workers: Mejora promedio del 25% al escribir en tablas existentes.

Confluent Platform
  • Tamaño del mensaje: 500 KB

    • Tarea con 1 worker: Mejora del conector Onibex en un 8% respecto al conector Snowflake.

    • Tarea con 2 workers: Mejora del conector Onibex en un 15%.

    • Tarea con 4 workers: Mejora promedio del 20% al escribir en tablas existentes.

  • Tamaño del mensaje: 1000 KB

    • Tarea con 1 worker: Mejora del conector Onibex en un 7%.

    • Tarea con 2 workers: Mejora del conector Onibex en un 12%.

    • Tarea con 4 workers: Mejora promedio del 18% al escribir en tablas existentes.

Explicación del Proceso

El análisis se realizó comparando las diferencias de tiempo registradas entre las pruebas ejecutadas con ambos conectores. Cada prueba incluía la hora de inicio y finalización, lo que permitió calcular el tiempo total de procesamiento. A partir de esto, se obtuvieron diferencias porcentuales que reflejan las ventajas de rendimiento del conector Onibex respecto al conector nativo de Snowflake.

Además, se tomó en cuenta cómo influye la existencia o no de la tabla en el destino, y cómo el incremento en el número de workers impacta en la eficiencia general del proceso. Cabe destacar que, aunque el conector de Snowflake es eficiente en la ejecución de consultas, su desempeño disminuye notablemente al enviar instrucciones a la nube de Snowflake, lo cual genera un cuello de botella en el procesamiento.

Conclusiones

El análisis detallado muestra que el conector custom de Onibex ofrece un mejor rendimiento en la mayoría de los casos, especialmente cuando la tabla destino ya existe. Además, su eficiencia se mantiene consistente al aumentar el tamaño de los mensajes y el número de tareas configuradas. Se recomienda utilizar el conector Onibex en escenarios donde se requiera un procesamiento rápido de grandes volúmenes de datos hacia Snowflake, particularmente cuando se utilizan múltiples workers.


    • Related Articles

    • Onibex Snowflake Sink Connector Benefits

      The JDBC snowflake connector sends real-time data from Confluent Platform and Cloud for writing to the theme-subscription Snowflake Tables. It is possible to achieve idempotent writings with elevators. Self-creation of tables and self-evolution is ...
    • Onibex Snowflake Sink Connector for Confluent Platform and Cloud

      The JDBC snowflake connector sends real-time data from Confluent Platform and Cloud for writing to the theme-subscription Snowflake Tables. It is possible to achieve idempotent writings with elevators. Self-creation of tables and self-evolution is ...
    • Onibex Clickhouse Sink Connector

      The Onibex Clickhouse JDBC connector sends real-time data from Kafka to write to Tables based on the topics subscription. It is possible to achieve idempotent writes with upserts. Auto-creation of tables and auto-evolution is supported using the ...
    • Onibex Databricks JDBC Connector for Confluent Cloud

      JDBC Onibex Connector for Databricks The JDBC Onibex connector for Databricks sends real-time data from Kafka to write into live DeltaLake tables. Idempotent writes can be achieved using upserts. Automatic table creation and schema evolution are ...
    • OneConnect General Architecture

      The following representation shows a general architecture diagram for OneConnect, considering SAP ECC or S4HANA as the producer and destinations such as Clickhouse, Snowflake, and Databricks as subscribers. The OneConnect structure consists of 3 main ...