Gestion des données

SQLite équivaut à un ETL lourd

Actian Corporation

18 mai 2020

sqlite actian corporation photo

Il y a deux semaines, j'ai comparé les performances de SQLite à celles d'une limace de banane. Certains considéreront peut-être qu'il s'agit là d'une hyperbole (et certains anciens de l'UC Santa Cruz estimeront peut-être que j'ai porté atteinte à la réputation de leur mascotte, ce qui n'était pas mon intention), mais les chiffres, eux, ne mentent pas. La différence mesurable en termes de performances de traitement local entre SQLite et un système moderne de gestion des données comme Actian Zen est de deux à trois ordres de grandeur. La comparaison entre le guépard et la limace de banane est donc quantitativement exacte.

En fait, je vais remplacer le guépard (dont la vitesse maximale est de 70 mph) par un faucon pèlerin, dont la vitesse maximale est de 240 mph, parce que je double l'analogie avec la limace de banane. La raison ? Lorsque l'on envisage une gestion des données moderne gestion des données pour l'IoT, ou tout autre environnement "edge-to-cloud", il faut tenir compte des performances en termes de lecture et d'écriture de données distribuées, entre les appareils, les passerelles, les postes de travail sur site , les serveurs et, bien sûr, le "cloud". Une telle distribution pose des complications que SQLite ne peut tout simplement pas surmonter avec quelque chose qui ressemble de près ou de loin à de la vitesse.

Laissez-moi vous donner un exemple : SQLite ne fonctionne qu'en tant que base de données sans serveur, ce qui implique l'intégration avec une base de données client-serveur et donc la transformation de ses données dans cette dernière. Vous verrez souvent SQLite associé à Microsoft SQL Server, MySQL, Oracle ou Postgres. En outre, il existe des paires furtives dans lesquelles SQLite est présent mais apparemment invisible. On ne voit pas SQLite associé à MongoDB ou Couchbase, par exemple, mais la version client mobile de ces deux bases de données est en réalité SQLite. Des "serveurs de synchronisation" situés entre le client mobile et les serveurs de base de données exécutent les fonctions d'extraction, de transformation et de chargement (ETL) nécessaires pour transférer les données de SQLite vers les bases de données principales MongoDB ou Couchbase.

Mais attendez, dites-vous : Le but de la gestion des données moderne gestion des données n'est-il pas de capturer, de partager et de traiter les données à la périphérie par des composants plus intelligents à la périphérie ? En outre, certaines de ces données vont être envoyées depuis des appareils à la périphérie vers des serveurs dans le nuage ? Pourquoi vous en prendre à SQLite ?

Donc, dans l'ordre, la réponse à vos objections est oui, oui, et je vais vous le dire.

Modern Edge gestion des données est partagée et distribuée

Oui, nous devrions tous considérer comme acquis que les environnements IoT et mobiles enverront les données des appareils et des capteurs IoT à la périphérie vers les serveurs dans le nuage. Et oui, les nouvelles normes de réseau telles que la 5G (et les variantes industrielles de la 4G-LTE), associées à l'IA fonctionnant sur un plus grand nombre d'appareils en périphérie, conduiront à un traitement plus local et pair-à-pair. Cela amènera la gestion des appareils et des métadonnées du nuage/centre de données vers les passerelles de périphérie sur les serveurs sur site . Les deux scénarios partagent et distribuent des quantités massives de données et, lorsque SQLite est impliqué, entraîneront une explosion de l'ETL parce que SQLite ne fonctionnera pas sur les plus gros serveurs à la périphérie ou dans le nuage. C'est là que l'on trouve SQL Server, MySQL, Oracle, Postgres et d'autres (y compris les éditions Actian Zen Edge, Enterprise et Cloud).

Ce qui nous amène à la question de l'importance de l'ETL. Lorsque l'on réfléchit aux caractéristiques des systèmes qui partageront et distribueront toutes ces données, trois éléments clés ressortent : la performance, l'intégration et la sécurité. Nous avons déjà discuté des caractéristiques de performance de traitement de notre limace de banane lorsqu'il s'agit d'opérations sur les données locales. Lorsque nous examinons de plus près SQLite dans le contexte plus large du partage des données et de la distribution, il devient évident que l'utilisation de SQLite peut avoir un impact profond sur les performances opérationnelles et la sécurité.

Tout tourne autour du "T" dans ETL

Du point de vue du système degestion des données , l'action de transformation dans l'ETL est l'élément le plus critique de cet initialisme. Contrairement à E et L qui ne sont pas affectés par les systèmes de gestion des données puisque le transfert de données est une fonction de la machine virtuelle, du système d'exploitation, des couches d'abstraction matérielle et bien sûr des sous-systèmes d'E/S, les implémentations de la gestion des données dictent si, quand et comment les transformations de données se produiront. Lorsque l'on déplace des données d'un format de base de données ou de système de gestion de fichiers à un autre, il est toujours nécessaire de reformater les données pour que le système qui les reçoit puisse les lire. SQLite vante la cohérence de son système de fichiers sous-jacent sur toutes les plateformes, ce qui laisse supposer que le déplacement des données d'une plateforme à l'autre ne nécessite aucune transformation. Pour une application SQLite fonctionnant comme un simple cache de données dans un appareil mobile ou sur des sites web à trafic modéré, cela peut être vrai. Mais ce n'est pas ce à quoi ressemble un environnement IoT partagé et distribué. Aujourd'hui, les environnements modernes de gestion des données en périphérie sont entièrement géré, sécurisés et construits pour effectuer des traitements et des analyses de données complexes sur une variété de systèmes dans une variété d'endroits - sur l'appareil, en périphérie et dans le nuage. Ces environnements sont remplis d'agrégations de données, de partage peer-to-peer et d'autres opérations de gestion des données qui nécessitent une transformation d'un format SQLite en quelque chose d'autre - très probablement plusieurs autres choses.

Et vous pensiez que la limace de la banane était lente ?

C'est dans cette deuxième dimension que SQLite devient tout simplement lent. Actian a réalisé une série de tests comparant les performances de transformation de Zen Core et de SQLite. Une série de tests a comparé les performances des transferts de données entre SQLite et MS SQL Server au même transfert de données entre Zen Core et Zen Enterprise Server. Les clients sans serveur SQLite et Zen Core ont fonctionné sur un appareil Raspberry Pi, tandis que SQL Server et Zen Enterprise ont fonctionné sur un système basé sur un serveur Windows.

Les résultats en termes de performances sont impressionnants : Prendre un bloc de 25 000 lignes dans Zen Core et l'insérer dans Zen Enterprise prend en moyenne 3 ms. Prendre le même bloc à partir de SQLite et l'insérer dans Microsoft SQL Server prend 73 ms, soit environ 24 fois plus de temps. D'autres tests, comparant les mises à jour, les lectures et les suppressions indexées et non indexées, ont donné des résultats similaires. Pourquoi ? À cause des transformations nécessaires. En déplaçant les données entre SQLite et SQL Server, les données de SQLite ont dû être transformées dans un format que SQL Server, qui a un format et un modèle de données différents, peut lire. Lorsque l'on déplace les données de Zen Core vers Zen Enterprise Server, qui reposent sur le même format et le même modèle de données, aucune transformation de ce type n'est nécessaire.

Tant pis pour le plus rapide, le meilleur et le moins cher

Zen n'est pas la seule base de données dont l'architecture commune s'étend du client au serveur. Microsoft SQL Server dispose d'une telle architecture, mais elle ne fonctionne que sur les appareils basés sur Windows. Actian Zen fonctionne sur à peu près tout, des appareils IoT et mobiles basés sur Android aux appareils de périphérie basés sur Windows, en passant par les serveurs de centre de données et de cloud qui exécutent une large gamme d'implémentations Linux. Zen dispose d'une architecture unique, sécurisée et modulaire qui permet à la version sans serveur d'interagir avec les versions Edge, Enterprise et Cloud en utilisant les mêmes API, formats de données et système de fichiers, ce qui supprime tout besoin de transformation.

Et c'est là que la distinction entre le faucon pèlerin et la limace de la banane devient palpable. Si SQLite était capable d'interagir directement avec d'autres éléments de l'environnement moderne de gestion des données , tous ceux qui l'utilisent avec plaisir pourraient éviter les transformations de données et les lourdes opérations d'ETL. Mais ce n'est pas le monde dans lequel nous opérons. SQLite impliquera toujours un ETL lourd, et restera une limace de banane.

Dans le monde du développement technique, il existe un compromis très ancien qui se présente comme suit : Nous pouvons vous offrir un produit plus rapide, meilleur ou moins cher. Choisissez-en deux. SQLite promet d'être plus rapide, mais en pratique, il est plus lent, comme le prouvent les benchmarks ci-dessus. Il reste donc mieux et moins cher - sauf que, comme nous le verrons, SQLite ne permet même pas d'obtenir mieux ou moins cher. Restez à l'écoute pour le prochain article de cette série, dans lequel nous expliquerons pourquoi SQLite n'est pas meilleur. Ensuite, nous jetterons un coup d'œil attentif, à la manière d'un faucon, sur le coût total de possession.

Vous pouvez en savoir plus sur Actian Zen. Vous pouvez également vous familiariser gratuitement avec Zen Core, qui est libre de droits pour le développement et la distribution.

logo avatar actian

À propos d'Actian Corporation

Actian facilite l'accès aux données. Notre plateforme de données simplifie la façon dont les gens connectent, gèrent et analysent les données dans les environnements cloud, hybrides et sur site . Avec des décennies d'expérience dans la gestion des données et l'analyse, Actian fournit des solutions de de haute performance qui permettent aux entreprises de prendre des décisions basées sur les données. Actian est reconnu par les principaux analystes et a reçu des prix de l'industrie pour sa performance et son innovation. Nos équipes partagent des cas d'utilisation éprouvés lors de conférences (par exemple, Strata Data) et contribuent à des projets à code source ouvert. Sur le blog d'Actian, nous abordons des sujets tels que l'ingestion de données en temps réel, l'analyse de données, la gouvernance données, la gestion des données, la qualité des données, l'intelligence des données et l'analyse pilotée par l'IA.