Citus 10 komprimiert PostgreSQL-Daten im Spaltenformat

Citus Columnar und die Shard-Rebalancing-Funktion sind zwei der wesentlichen Neuerungen im Open-Source-Release der PostgreSQL-Erweiterung.

In Pocket speichern vorlesen Druckansicht 4 Kommentare lesen
Citus 10 komprimiert Postgres-Daten im Spaltenformat

(Bild: Citus Data)

Lesezeit: 3 Min.

Mit Citus 10 ist das erste größere Release der PostgreSQL-Erweiterung seit der Übernahme von Citus Data durch Microsoft Anfang 2019 erschienen. Die neue Version erweitert den bisher unter anderen auf das Sharding fokussierten Funktionsumfang um eine Reihe weiterer Möglichkeiten – darunter Citus Columnar zum Komprimieren größerer Datensätze.

Die PostgreSQL-Erweiterung, die der relationalen Datenbank auch die Skalierbarkeit von NoSQL-Datenbanken verleihen soll, bietet ab sofort mit Citus Columnar eine Funktion, die eine deutliche Beschleunigung von Abfragen verspricht – laut Blogbeitrag bis zum Faktor 10. Während PostgreSQL Daten typischerweise zeilenbasiert mit der heap-Access-Methode speichert, um Tabellen für transaktionale Arbeitslasten (Transactional Processing) zu optimieren, ermöglicht Citus Columnar das Gruppieren von Daten in Spalten. Dadurch lasse sich die Daten einerseits stärker komprimieren und zudem die IO-Performance bei Querys steigern, da Abfragen nicht benötigte Spalten überspringen können (via Projection Pushdown und Chunk Group Filtering).

Die praktischen Einsatzmöglichkeiten von Citus Columnar bleiben jedoch begrenzt, da zumindest vorläufig Support für den Index wie auch UPDATE oder DELETE fehlen. Daher sollte die Funktion lediglich für analytische Abfragen auf reinen Erweiterungstabellen genutzt werden. Liegt der Fokus auf transaktionalen Arbeitslasten bleibt der zeilenbasierte Ansatz von Postgres effizienter.

Citus 10 soll darüber hinaus die Einstiegshürde für Postgres-Anwender senken, die ihre Applikation zunächst nur in einer Single-Node-Umgebung starten wollen, aber für die spätere Skalierung in Multi-Node-Clustern gerüstet sein wollen. Der Migrationsaufwand für die Umstellung auf Citus rechtfertigte den Einsatz der PostgreSQL-Erweiterung auf einem einzelnen Konten bisher nicht. Mit der neuen Version können Anwender das Sharding ihrer Postgres-Tabellen aber bereits auf einem einzigen Citus-Knoten starten, um von Beginn an "scale-out-ready" zu sein.

Die Möglichkeit, Shards nach dem Hinzufügen eines weiteren Knotens auszubalancieren, blieb bisher Nutzern des Managed Service Azure Database for PostgreSQL inklusive der Option Hyperscale (Citus) vorbehalten. Mit Veröffentlichung von Citus 10 steht der Shard Rebalancer nun erstmals auch in der Open-Source-Version zur Verfügung. Er bietet standardmäßig zwei Vorgehensweise beim Ausbalancieren: Die Voreinstellung by_shard_count zielt darauf ab, die Anzahl der Shards auszugleichen, by_disk_size hingegen die der Bytes.

Einen detaillierten Überblick sämtlicher neuen Funktionen und Verbesserungen in Citus 10 fasst der Beitrag im Citus Data Blog zusammen. Die Open-Source-Version der PostgreSQL-Erweiterung steht ab sofort kostenfrei zum Download parat.

(map)