SingleStore, c'est quoi ?

SingleStore est une base de données SQL distribuée et hautement évolutive qui combine un rowstore en mémoire à un columnstore sur disque, orienté vers l'analyse. Cette capacité à agir simultanément à la fois en ligne et en colonne, associée à des structures de données non verrouillées, à un contrôle d'accès concurrentiel multi-version et à des skip-lists non verrouillées permet à SingleStore de prendre en charge des analyses traditionnelles et en temps réel, en évitant ainsi la nécessité d'un entrepôt de données supplémentaire et de processus ETL.

Pourquoi et quand utiliser SingleStore

Il s'agit à la fois d'une base de données transactionnelle et d'un entrepôt de données analytiques

SingleStore a été conçu pour servir à la fois de base de données transactionnelle (rowstore) et d'entrepôt de données analytiques (columnstore). Grâce à cette technologie unique, une société n'a pas besoin de créer une base de données transactionnelle pour des écritures en ligne et un entrepôt de données analytiques séparé pour des analyses historiques. Les entreprises peuvent en même temps écrire et lire depuis le même système distribué à l'aide de ANSI SQL.

Analyse en temps réel

Comme SingleStore peut diffuser des données opérationnelles dans un format relationnel tout en lisant simultanément des données, il peut alors avoir accès à de nouvelles informations sur les derniers évènements ou les comparer à des données historiques. Cette approche permet de réaliser des rapports de données financières en temps réel ou d'obtenir des informations sur des interactions clients en direct à l'aide d'une seule base de données unifiée. L'architecture intégrée peut remplacer des systèmes plus complexes qui nécessitent de copier les données à partir d'une base de données transactionnelle ou d'un lac de données dans un entrepôt de données dédié à l'analyse.  Les systèmes de gestion de base de données plus relationnels (RDBMS) ne peuvent pas écrire et lire les données en même temps. Cette architecture unique rend la technologie SingleStore particulièrement attrayante pour les entreprises qui souhaitent analyser de manière continue leur activité tout en fournissant un magasin de référence historique pour la prévision d'événements ou la prise de décisions stratégiques.

Évolutivité

SingleStore évolue tout comme une architecture Hadoop. En effet, il ne nécessite pas de matériel peu commun, dans la mesure où il effectue une mise à l'échelle linéaire sur du matériel standard. Cela permet à SingleStore de fonctionner en local, dans le cloud ou en tant que service géré. Il est également possible de mettre à l'échelle des instances SingleStore sans mettre le cluster hors connexion, ce que signifie que SingleStore peut facilement être mis à l'échelle juste à temps lorsque de nouvelles performances ou de nouveaux stockages sont nécessaires.

Dans quels cas d'utilisation SingleStore est-il idéal ?

Pour des cas nécessitant des analyses opérationnelles ou en temps réel

SingleStore prend en charge des analyses en temps réel. Il peut s'abonner endémiquement à Kafka, Spark, AWS S3 ou aux flux d'alimentation de données HDFS et procéder à une très grande échelle. Une fois que les données se trouvent dans SingleStore, vous avez la possibilité d'utiliser un SQL standard pour les analyser. SingleStore est ainsi la technologie idéale pour les cas d'utilisation où une valeur commerciale élevée est accordée à une latence minimale, comme pour la détection de fraudes, la surveillance de systèmel'e-commerce et les réseaux sociaux.

Combien coûte SingleStore ?

SingleStore présente un niveau gratuit jusqu'à 128 GB de RAM et un disque illimité ou un abonnement professionnel calculé par GB de RAM dans le cluster. L'abonnement donne le droit à un support professionnel. Pour en savoir plus, veuillez contacter l'équipe de SingleStore.

Édition de la communauté

SingleStore est disponible en version gratuite jusqu'à 128 GB de RAM avec un disque illimité et peut être utilisé en production.

Comment SingleStore fonctionne-t-il ?

L'architecture de SingleStore est composée de trois éléments distincts qui contribuent à sa vitesse et à sa double fonctionnalité. Ces trois éléments distincts sont les suivants :

  • Une architecture distribuée sans partage sur du matériel standard
  • Une architecture hybride OLTP (Online transaction processing - Traitement transactionnel en ligne) et OLAP (Online analytical processing - Traitement analytique en ligne)
  • Des structures de données non verrouillées

Une architecture distribuée sans partage

L'architecture de SingleStore est distribuée à travers de nombreuses machines individuelles, chaque machine possédant sa propre UC, sa propre mémoire et son propre disque. C'est ce qu'on appelle généralement une architecture sans partage, le stockage et les ressources informatiques ne sont pas partagés dans le système.

SingleStore a également été conçu pour fonctionner sur du matériel standard. Ainsi, le matériel nécessaire pour exploiter un système SingleStore n'est pas propriétaire et est par conséquent relativement bon marché. Cela permet également aux administrateurs SingleStore de mettre à l'échelle l'instance facilement et de manière peu onéreuse.

Chaque nœud de SingleStore appartient à l'un des deux types suivants :

  • Les nœuds d'agrégation stockent les métadonnées dans tout le système telles que les indexes et servent à interroger les nœuds de stockage (appelés également feuilles), à agréger les résultats et à les renvoyer au client.
  • Les nœuds terminaux contiennent chacun une partie de la table plus large. Ils servent à stocker et à calculer les données du nœud.

Les charges applicatives peuvent être réparties entre plusieurs agrégateurs où un agrégateur se charge de la requête A et un autre de la requête B.

Architecture hybride OLTP et OLAP

SingleStore contient à la fois un rowstore en mémoire pour des requêtes rapides et à haute disponibilité et un columnstore sur disque pour les tâches analytiques qui impliquent l'agrégation de données ou lorsque la taille de la table dépasse les contraintes de mémoire.

SingleStore peut faire la jonction entre son rowstore et son columnstore. Un utilisateur qui interroge la base de données SingleStore sera ainsi en mesure de collecter avec une seule requête à la fois des données en temps réel et des données historiques.

Des structures de données non verrouillées

De nombreuses bases de données relationnelles imposent de verrouiller les tables stockées lors de l'écriture de données. En effet, si une lecture a lieu en même temps que l'écriture de données dans la table, les données peuvent être restituées de manière incohérente. Par exemple, si une instruction METTRE À JOUR est émise dans la table au même moment qu'une instruction SÉLECTIONNER, vous pourriez potentiellement lire des données à moitié écrites.

Le verrouillage des tables augmente la latence des systèmes de bases de données. Car cela nécessite une base de données dédiée ou un entrepôt de données spécifique pour lire les données ou effectuer des requêtes analytiques. Les données seront ensuite réparties par lots dans cette base de données à des intervalles ETL dédiés.

SingleStore met en œuvre des structures de données non verrouillées, des skip-lists et un contrôle d'accès concurrentiel multi-version afin d'éviter le verrouillage de la base de données lors de la mise à jour de tables. Ainsi, les écritures peuvent s'effectuer à un très haut débit tout en conservant un niveau élevé de lectures simultanées.

Types de données

SingleStore stocke les données soit sous la forme de lignes, soit sous la forme de colonnes selon la table DDL (data definition language - langage de définition de données)*. Il peut intégrer à la fois des structures de données tabulaires et imbriquées issues de fichiers texte (délimités), de JSON, Avro et de données géospatiales.

Étendue de la ligne (quantité)

Avec une capacité de calcul et de stockage suffisante, SingleStore est en mesure de traiter des tables de plusieurs milliards de lignes, à l'échelle du pétaoctet. N'oubliez pas que cela coûtera plus cher si vous avez besoin d'un espace important pour la portion rowstore en mémoire de SingleStore.

Comment utiliser SingleStore

Installer SingleStore

SingleStore est suffisamment flexible pour être mis en œuvre en local et sur diverses plateformes cloud. La documentation des développeurs de SingleStore constitue une bonne ressource de référence pour l'installation de SingleStore.

SingleStore est une base de données ODBC et compatible avec MySQL de sorte que tout logiciel qui est compatible avec MySQL peut également être connecté à SingleStore. Il est ainsi très facile de passer de MySQL à SingleStore. Une fois que vous aurez transféré vos données de MySQL vers SingleStore, vous n'aurez plus qu'à indiquer vos applications existantes dans la base de données SingleStore.

Processus pour nouvelles données

SingleStore prend en charge la commande standard SQL LOAD DATA afin de copier les données dans l'environnement. En raison de l'héritage MySQL de SingleStore, vous pouvez également bénéficier des commandes CLI de MySQL ou d'un outil open source comme mysqldump afin d'importer des données dans SingleStore. De plus, SingleStore est pourvu d'un outil de chargement avec interface utilisateur graphique appelé Pipelines qui peut intégrer des données issues de différentes sources, dont notamment Amazon S3, Kafka, et d'autres.

SingleStore utilise le partitionnement pour distribuer les données de manière uniforme dans les nœuds terminaux. Le partitionnement est un processus qui consiste à séparer de manière horizontale une table de base de données en fractions uniformes et à répartir de façon égale ces fractions dans plusieurs nœuds. Pour d'autres bases de données, le partitionnement peut être configuré manuellement, ce qui entraîne parfois le rééquilibrage de la base de données. SingleStore, en revanche, répartit les tables automatiquement.

Maintenance

SingleStore peut être mis à l'échelle de manière linéaire, avec une mise à l'échelle juste-à-temps. Vous n'avez pas besoin de mettre le cluster hors connexion. L'augmentation des nœuds terminaux permet d'accélérer le temps de retour des requêtes et d'améliorer la simultanéité.

Éléments à considérer

SingleStore est une base de données relativement récente et n'est pas encore entièrement compatible avec ANSI SQL (à ce jour, elle est uniquement compatible avec ANSI SQL-92, comparé à MySQL ou à Postgres qui sont au moins compatibles avec SQL:2003).

SingleStore a travaillé d'arrache-pied pour développer une base de données optimisée. Mais la technologie présente encore des lacunes, ce qui est tout à fait normal pour une nouvelle technologie de base de données. Vous devrez peut-être réécrire certaines requêtes afin d'obtenir les résultats attendus. L'équipe du support technique vous aidera à faire cette opération.

Faits concernant SingleStore

Prenez goût à l'analytique

Business intelligence, analyse de big data ou vue client à 360° :
quels que soient vos besoins, Looker peut vous aider. Parlez à nos experts en données.

Demander une démo