Gestión de datos

SQLite equivale a ETL pesado

Corporación Actian

18 de mayo de 2020

sqlite actian corporation foto

Hace dos semanas, comparé el rendimiento de SQLite con el de una babosa bananera. Puede que algunos lo consideren una hipérbole (y puede que algunos antiguos alumnos de la UC Santa Cruz piensen que he impugnado el buen nombre de su mascota, lo cual no era mi intención), pero los números no mienten. La diferencia medible en el rendimiento del procesamiento local entre SQLite y un sistema moderno gestion des données como Actian Zen es de dos a tres órdenes de magnitud. Así pues, la comparación entre el guepardo y la babosa de plátano es cuantitativamente exacta.

De hecho, agárrense bien -porque estoy redoblando la analogía con la babosa bananera-, pero voy a cambiar el guepardo (con su velocidad máxima de 70 mph) por un halcón peregrino, con una velocidad máxima de 240 mph. ¿Por qué? Al considerar la gestion des données moderna gestion des données en el borde para IoT, o cualquier entorno de borde a la nube, hay que tener en cuenta el rendimiento en términos de lecturas y escrituras de datos distribuidos a través de dispositivos, puertas de enlace, estaciones de trabajo sur site y servidores y, por supuesto, la nube. Tal distribución plantea complicaciones que SQLite simplemente no puede superar con nada remotamente parecido a la velocidad.

Le daré un ejemplo: SQLite sólo funciona como una base de datos sin servidor, lo que obliga a la integración con, y por lo tanto la transformación de sus datos en, una base de datos cliente-servidor. A menudo verás SQLite emparejado con Microsoft SQL Server, MySQL, Oracle o Postgres. Además, hay otras combinaciones en las que SQLite está presente pero parece invisible. No se ve SQLite emparejado con MongoDB o Couchbase, por ejemplo, pero la versión cliente móvil de estas dos bases de datos es en realidad SQLite. Los "servidores de sincronización" entre el cliente móvil y los servidores de bases de datos realizan las funciones de extracción, transformación y carga (ETL) necesarias para mover los datos de SQLite a las bases de datos principales MongoDB o Couchbase.

Pero espere, dirá usted: ¿No se trata de que los datos en el perímetro sean capturados, compartidos y procesados por componentes más inteligentes en el perímetro? Además, ¿algunos de esos datos van a ser enviados desde dispositivos en el borde hasta servidores en la nube? ¿Por qué te metes con SQLite?

Así que, por orden, la respuesta a sus objeciones es sí, sí, y se lo diré.

La gestion des données moderna gestion des données Edge se comparte y distribuye

, todos deberíamos dar por hecho que los entornos IoT y móviles enviarán datos desde los dispositivos y sensores IoT en el borde hasta los servidores en la nube. Y, , los nuevos estándares de red como 5G (y las variantes industriales de 4G-LTE), junto con la IA que se ejecuta en más dispositivos periféricos, conducirán a un procesamiento más local y peer-to-peer. Eso llevará la gestión de dispositivos y métadonnées fuera de la nube/centro de datos a pasarelas de borde en servidores sur site . Ambos escenarios comparten y distribuyen cantidades masivas de datos y, cuando SQLite está involucrado, implicará una explosión de ETL porque SQLite no se va a ejecutar en los servidores más grandes en el borde o en la nube. Ahí es donde usted está viendo SQL Server, MySQL, Oracle, Postgres, y otros (incluyendo Actian Zen Edge, la empresa, y las ediciones en la nube).

Lo que nos lleva a la pregunta de por qué es importante el ETL. Cuando se piensa en las características de los sistemas que compartirán y distribuirán todos estos datos, destacan tres aspectos clave: rendimiento, integración y seguridad. Ya hemos hablado de las características reales de rendimiento de procesamiento de nuestra babosa de plátano cuando se trata de operaciones de datos locales. Cuando analizamos SQLite en el contexto más amplio del partage des données y distribución de partage des données , resulta evidente que su uso puede tener un profundo impacto en el rendimiento operativo y la seguridad.

Todo gira en torno a la "T" de ETL

Desde el punto de vista de los sistemas de gestion des données , la acción de transformación en ETL es el elemento más crítico de esa inicialización. A diferencia de la E y la L, que no se ven afectadas por los sistemas de gestion des données gestion des données , ya que la transferencia de datos es una función de la máquina virtual, el sistema operativo, las capas de abstracción de hardware y, por supuesto, los subsistemas de E/S, las implementaciones de gestion des données dictan si se producirán transformaciones de datos, cuándo y cómo. Cuando se trasladan datos de un formato de base de datos o sistema de gestión de archivos a otro, siempre es necesario reformatear los datos para que el sistema que los recibe pueda leerlos. SQLite promociona la cohérence de su sistema de archivos subyacente en todas las plataformas, lo que sugiere que mover datos de una plataforma a otra no requiere ninguna transformación. Para una aplicación SQLite que funcione como una simple caché de datos en un dispositivo móvil o en sitios web con un tráfico moderado, esto puede ser cierto. Pero eso no es lo que parece un entorno IoT compartido y distribuido. Hoy en día, los entornos modernos gestion des données en el perímetro son entièrement géré seguros y están diseñados para realizar análisis y procesamiento de datos complejos en diversos sistemas y lugares: en dispositivos, en el perímetro y en la nube. Se trata de entornos repletos de agregación de datos, compartición entre pares y otras operaciones de gestion des données que requieren una transformación de un formato SQLite a otro distinto, posiblemente varios distintos.

Y pensabas que la babosa bananera era lenta

Esa es la segunda dimensión en la que SQLite simplemente se vuelve lento. Actian realizó una serie de pruebas comparando el rendimiento de transformación de Zen Core y SQLite. Un conjunto de pruebas comparó el rendimiento de las transferencias de datos entre SQLite y MS SQL Server con la misma transferencia de datos entre Zen Core y Zen Enterprise Server. Tanto los clientes sin servidor SQLite como Zen Core se ejecutaron en un dispositivo Raspberry Pi, mientras que SQL Server y Zen Enterprise se ejecutaron en un sistema basado en servidor Windows.

Los resultados de rendimiento son sorprendentes: Tomar un bloque de 25.000 filas de Zen Core e insertarlo en Zen Enterprise tardó una media de 3 ms. Tomar el mismo bloque de SQLite e insertarlo en Microsoft SQL Server tomó 73 ms, o aproximadamente 24 veces más tiempo. Otras pruebas, comparando actualizaciones indexadas y no indexadas, lecturas y eliminaciones, obtuvieron resultados similares. ¿Por qué? Por las transformaciones necesarias. Al mover datos entre SQLite y SQL Server, los datos de SQLite tuvieron que ser transformados a un formato que SQL Server, que tiene un formato diferente y un modelo de datos diferente, puede leer. Al mover los datos de Zen Core a Zen Enterprise Server, que se basan en el mismo formato y modelo de datos, no es necesaria dicha transformación.

Más rápido, mejor y más barato

Zen no es la única base de datos con una arquitectura común que va del cliente al servidor. Microsoft SQL Server tiene una arquitectura de este tipo, pero solo se ejecuta en dispositivos basados en Windows. Actian Zen se ejecuta en prácticamente todo: desde dispositivos móviles y de IoT basados en Android hasta dispositivos de borde basados en Windows, pasando por servidores de centros de datos y en la nube que ejecutan una amplia gama de implementaciones de Linux. Zen tiene una arquitectura única, segura y modular que permite a la versión sin servidor interactuar con las versiones Edge, Enterprise y Cloud utilizando las mismas API, formatos de datos y sistema de archivos, eliminando cualquier necesidad de transformaciones.

Y ahí es donde la distinción entre el halcón peregrino y la babosa bananera se hace palpablemente real. Si SQLite fuera capaz de interactuar directamente con otros elementos del entorno moderno gestion des données , todo el mundo que lo utilizara felizmente podría evitar las transformaciones de datos y las pesadas ETL. Pero ese no es el mundo en el que operamos. SQLite siempre implicará ETL pesada, y seguirá siendo una babosa de plátano.

En el mundo de la ingeniería de desarrollo existe una antigua solución de compromiso: Podemos darle más rápido, mejor o más barato. Elige dos. SQLite promete ser más rápido, pero en la práctica es más lento, como demuestran las pruebas anteriores. Eso nos deja mejor y más barato, excepto que, como veremos, con SQLite ni siquiera conseguimos mejor ni más barato. Permanezca atento a la próxima entrada de esta serie, en la que analizaremos por qué SQLite no es mejor. Después, echaremos un vistazo al coste total de propiedad.

Puede obtener más información sobre Actian Zen. También puede probar Zen Core, que está libre de derechos de autor para el desarrollo y la distribución.

logo avatar actian

Acerca de Actian Corporation

Actian hace que trabajar con datos sea fácil. Nuestra plataforma de datos simplifica la forma en que las personas conectan, gestionan y analizan datos en entornos cloud, híbridos y locales. Con décadas de experiencia en gestión y analítica de datos, Actian ofrece soluciones de alto rendimiento que ayudan a las empresas a tomar decisiones basadas en datos. Estamos reconocidos por los principales analistas del sector y hemos recibido premios por nuestro rendimiento e innovación. Nuestros equipos comparten casos de éxito en conferencias (como Strata Data) y contribuyen activamente a proyectos de código abierto. En el blog de Actian tratamos temas como la ingesta de datos en tiempo real, el análisis de datos, la gobernanza y gestión de datos, la calidad de los datos, la inteligencia de datos y el análisis impulsado por IA.