Was ist SingleStore?

SingleStore ist eine hochskalierbare, verteilte SQL-Datenbank, die einen In-Memory-Zeilenspeicher mit einem analytikorientierten Spaltenspeicher auf der Festplatte verbindet. Diese Fähigkeit, gleichzeitig als Zeilen- wie auch als Spaltenspeicher zu fungieren, in Kombination mit sperrfreien Datenstrukturen, Multiversions-Gleichzeitigkeitssteuerung und sperrfreien Skiplists, ermöglicht es SingleStore, traditionelle und Echtzeit-Analytik zu unterstützen, wodurch die Notwendigkeit eines zusätzlichen Datenzentrums und von ETL-Prozessen entfällt.

SingleStore nutzen – warum und wann

Sowohl eine Transaktionsdatenbank als auch ein analytisches Datenzentrum

SingleStore ist so konzipiert, dass es sowohl als transaktionale (rowstore) Datenbank als auch als analytisches (columnstore) Datenzentrum fungiert. Dank dieser einzigartigen Technologie muss ein Unternehmen keine Transaktionsdatenbank für Schreibvorgänge auf Zeilenebene und kein separates analytisches Datenzentrum für historische Analysen erstellen. Unternehmen können mit ANSI SQL gleichzeitig auf demselben verteilten System schreiben und lesen.

Echtzeit-Analytik

Die Fähigkeit, operative Daten in ein relationales Format zu streamen und gleichzeitig Daten zu lesen, bedeutet, dass SingleStore Einblicke in die neuesten Ereignisse gewinnen oder diese mit historischen Daten vergleichen kann. Dieser Ansatz ermöglicht Finanzberichte in Echtzeit oder Einblicke in Live-Kundeninteraktionen mit einer einzigen vereinheitlichten Datenbank. Die integrierte Architektur kann komplexere Systeme ersetzen, die zur Analyse das Kopieren von Daten aus einer Transaktionsdatenbank oder einem Datensee in ein dediziertes Datenzentrum erfordern. Die meisten relationalen Datenbankverwaltungssysteme (RDBMS) können nicht gleichzeitig Daten schreiben und lesen. Diese einzigartige Architektur macht SingleStore zu einer attraktiven Technologie für Organisationen, die ihr Geschäft kontinuierlich analysieren und gleichzeitig einen historischen Referenzspeicher für die Vorhersage von Events oder für strategische Entscheidungen bereitstellen möchten.

Skalierbarkeit

SingleStore skaliert ähnlich wie eine Hadoop-Architektur, da SingleStore keine exotische Hardware benötigt; es skaliert linear auf Standard-Hardware. Dadurch kann SingleStore on-premise, in der Cloud oder als Managed Service ausgeführt werden. Es ist auch möglich, SingleStore-Instanzen zu skalieren, ohne den Cluster offline zu nehmen, was bedeutet, dass SingleStore einfach „just-in-time“ skaliert werden kann, wenn neue Leistung oder Speicher erforderlich ist.

Für welche Anwendungsfälle ist SingleStore besonders gut geeignet?

Anwendungsfälle, die Betriebs- oder Echtzeitanalysen erfordern

SingleStore unterstützt Echtzeit-Analytik. Es kann Kafka-, Spark-, AWS-S3- oder HDFS-Datenpipelines nativ abonnieren und in sehr großem Umfang verarbeiten. Sobald Daten in SingleStore sind, können Sie sie mit Standard-SQL analysieren. Dies macht SingleStore zu einer hervorragenden Technologie für Anwendungsfälle, bei denen ein hoher Geschäftswert auf minimale Latenzzeiten gelegt wird, wie z. B. in der Betrugserkennung, Systemüberwachung, im E-Commerce und in Sozialen Netzwerken.

Wie viel kostet SingleStore?

SingleStore bietet einen kostenlosen Tier bis zu 128 GB RAM und unbegrenzten Festplattenspeicher oder ein Enterprise-Abonnement an, das pro GB RAM im Cluster berechnet wird. Bei dem Abonnement steht professioneller Support zur Verfügung. Um weitere Einzelheiten zu erhalten, wenden Sie sich bitte an das Team von SingleStore.

Community-Edition

SingleStore hat einen kostenlosen Tier, der produktiv genutzt werden kann und mit unbegrenztem Plattenplatz und bis zu 128 GB RAM verfügbar ist.

Wie funktioniert SingleStore?

Die Architektur von SingleStore besteht aus drei verschiedenen Komponenten, die zu seiner Geschwindigkeit und Doppelfunktionalität beitragen. Diese drei spezifischen Komponenten sind:

  • Verteilte Shared-Nothing-Architektur auf Standardhardware
  • Hybride OLTP- und OLAP-Architektur
  • Sperrenfreie Datenstrukturen

Verteilte Shared-Nothing-Architektur

Die SingleStore-Architektur ist über viele einzelne Maschinen verteilt, wobei jede Maschine mit ihrer eigenen CPU, ihrem eigenen Speicher und ihrer eigenen Festplatte arbeitet. Dies wird allgemein als Shared-Nothing-Architektur bezeichnet, da Speicher- und Rechenressourcen nicht über das gesamte System gemeinsam genutzt werden.

SingleStore ist auch für den Betrieb auf Standard-Hardware ausgelegt, was bedeutet, dass die für den Betrieb eines SingleStore-Systems erforderliche Hardware nicht proprietär und daher relativ kostengünstig ist. Das ermöglicht es SingleStore-Administratoren auch, die Instanz kostengünstig und einfach zu skalieren.

Jeder Knoten innerhalb von SingleStore fällt unter einen von zwei Typen:

  • Aggregatorknoten speichern Metadaten wie z. B. Indizes über das gesamte System hinweg und sind für die Abfrage der Speicherknoten (die als Blätter bezeichnet werden), die Aggregation der Ergebnisse und deren Rückübermittlung an den Client verantwortlich.
  • Blattknoten enthalten jeweils einen Teil der größeren Tabelle. Sie sind für das Speichern und Berechnen der auf dem Knoten befindlichen Daten verantwortlich.

Anwendungs-Workloads können auf Aggregatoren aufgeteilt werden, wobei ein Aggregator die Anwendung A und ein anderer die Anwendung B bedient.

Hybride OLTP- und OLAP-Architektur

SingleStore enthält sowohl einen In-Memory-Zeilenspeicher für schnelle, hochverfügbare Abfragen als auch einen On-Disk-Spaltenspeicher für analytische Workloads, die die Aggregation von Daten zum Gegenstand haben oder für Fälle dienen, in denen die Tabellengröße die Speicherbeschränkungen überschreitet.

SingleStore ist in der Lage, zwischen seinem Rowstore und seinem Columnstore Verknüpfungen herzustellen, was bedeutet, dass ein Benutzer, der die SingleStore-Datenbank abfragt, mit einer einzigen Abfrage sowohl Echtzeit- als auch historische Daten anzeigen kann.

Sperrenfreie Datenstrukturen

Viele relationale Datenbanken legen beim Schreiben von Daten eine „Sperre“ für gespeicherte Tabellen fest. Der Grund hierfür ist, dass Daten inkonsistent ausgegeben werden können, wenn ein Lesevorgang zeitgleich mit dem Schreiben von Daten in die Tabelle erfolgt. Wenn beispielsweise gleichzeitig mit einer Anweisung AUSWÄHLEN eine Anweisung UPDATE in der Tabelle gegeben wird, kann es passieren, dass Sie halbgeschriebene Daten auslesen.

Tabellensperren erhöhen die Latenz für Datenbanksysteme, da sie eine dedizierte Datenbank oder ein dediziertes Datenzentrum speziell zum Lesen von Daten oder zum Ausführen von analytischen Abfragen erfordern. Die Daten werden dann in bestimmten ETL-Intervallen in Stapeln in diese Datenbank verschoben.

SingleStore implementiert sperrenfreie Datenstrukturen, Skiplists und Multiversion Concurrency Control (MVCC), um die Notwendigkeit zu eliminieren, die Datenbank beim Aktualisieren von Tabellen zu sperren. Das bedeutet, dass Schreibvorgänge bei sehr hohem Durchsatz erfolgen können, während gleichzeitig ein hohes Maß an gleichzeitigen Lesevorgängen aufrechterhalten wird.

Datentypen

SingleStore speichert Daten entweder im Zeilen- oder Spaltenformat, je nach DDL* der Tabelle. Es kann sowohl tabellarische als auch verschachtelte Datenstrukturen aufnehmen, die aus (getrennten) Textdateien, JSON, Avro und Geodaten, stammen.

Zeilenbereich (Menge)

SingleStore kann Tabellen im Petabyte-Maßstab mit Milliarden von Zeilen verarbeiten, wenn genügend Rechen- und Speicherkapazität vorhanden ist. Beachten Sie, dass die Kosten steigen, wenn Sie im In-Memory-Rowstore-Teil von SingleStore erheblichen Platz benötigen.

Wie man SingleStore verwendet

Implementierung von SingleStore

SingleStore ist flexibel genug, um on-premise und über eine Vielzahl von Cloud-Plattformen implementiert werden zu können. Eine gute Ressource, um sich ein Bild über den Implementierungsprozess für SingleStore zu machen, ist die Entwicklerdokumentation für SingleStore.

SingleStore ist eine ODBC-Datenbank und übertragungskompatibel mit MySQL, so dass jede Software, die mit MySQL kompatibel ist, auch mit SingleStore verbunden werden kann. Dies macht es sehr einfach, von MySQL zu SingleStore zu wechseln. Sobald Sie Ihre Daten aus MySQL in SingleStore verschieben, müssen Sie nur noch Ihre vorhandenen Anwendungen auf die SingleStore-Datenbank verweisen lassen.

Prozess für neue Daten

SingleStore unterstützt den SQL-Standardbefehl LOAD DATA, um Daten in die Umgebung zu laden. Aufgrund des MySQL-Erbes von SingleStore können Sie auch die CLI-Befehle von MySQL oder ein Open-Source-Werkzeug wie mysqldump nutzen, um Daten in SingleStore zu laden. Zusätzlich verfügt SingleStore über ein GUI-basiertes Ladetool namens Pipelines, das Daten aus verschiedenen Quellen aufnehmen kann, einschließlich von Amazon S3, Kafka und anderen Quellen.

SingleStore verwendet Sharding (Datenbankpartionierung), um Daten gleichmäßig auf die Blattknoten zu verteilen. Beim Sharding wird eine Datenbanktabelle horizontal in einheitliche Blöcke aufgeteilt und diese Blöcke werden gleichmäßig auf mehrere Knoten verteilt. Bei anderen Datenbanken muss das Sharding manuell konfiguriert werden, wodurch gelegentlich ein Neuausgleich der Datenbank veranlasst wird. SingleStore partitioniert die Tabellen jedoch automatisch.

Wartung

SingleStore kann linear skaliert werden, mit „Just-in-Time“-Skalierung. Sie müssen das Cluster nicht offline nehmen. Das Erhöhen der Blattknoten ermöglicht eine schnellere Antwortzeit bei Abfragen und eine höhere Parallelität.

Was es zu beachten gibt

SingleStore ist eine relativ neue Datenbank und noch nicht vollständig ANSI SQL-kompatibel (zum Zeitpunkt dieses Artikels ist sie nur ANSI SQL-92-kompatibel, im Vergleich zu MySQL oder Postgres, die mindestens SQL:2003-kompatibel sind).

Obwohl SingleStore hart an der Entwicklung des Datenbank-Optimierers gearbeitet hat, weist die Technologie immer noch Unzulänglichkeiten auf, die bei einer neueren Datenbanktechnologie nur natürlich sind. Möglicherweise müssen Sie einige Abfragen neu schreiben, um die gewünschte Leistung zu erzielen. Das Support-Team wird Sie bei diesem Prozess unterstützen.

SingleStore-Fakten

Entdecken Sie Ihre Liebe zur Analytik.

Business Intelligence, Big-Data-Analyse oder eine 360°-Ansicht Ihrer Kunden.
Was auch immer Sie benötigen, Looker steht Ihnen zur Seite. Sprechen Sie einfach mit unseren Datenexperten.

Demo anfordern