Einführung in die Unterstützung von Netezza Native Cloud Object Storage (NCOS).

Digitale Illustration des Cloud-Symbols mit Linien zu Speicher-Stacks

Autoren

Brajesh Pandey

STSM, Chief Architect, Netezza

IBM

Daniel Hancock

IBM

Principal Data and AI Specialist, Worldwide Technical Sales

Harish Mara

Senior Backend Developer

IBM

Kiran Kumar Gahlot

QA/Test Developer

Samuel Patterson

Senior Software Engineer

Shawn Rackley

Software Development

Netezza hat auf seinem Weg zur Modernisierung einen großen Schritt nach vorne gemacht, indem es die Unterstützung von Native Cloud Object Storage direkt in der Engine eingeführt hat.

Diese leistungsstarke neue Funktion ermöglicht es Benutzern, Benutzertabellen im Netezza-Datenformat auf S3-kompatiblem Object Storage zu erstellen und damit ein neues Maß an Skalierbarkeit, Flexibilität und Kosteneffizienz zu erreichen.

Warum das wichtig ist

Diese Verbesserung ist mehr als nur ein technisches Upgrade, es ist ein strategischer Wandel, der Netezza in die Lage versetzt, die Vorteile von cloudnativen Architekturen voll auszunutzen. Durch die native Integration von Object Storage ermöglicht Netezza:

  • Massive Skalierbarkeit: Object Storage kann praktisch unbegrenzt wachsen und ist daher ideal für Big-Data-Workload.
  • Kosteneffizienz: Geringere Speicherkosten im Vergleich zu herkömmlichem Block Storage.
  • Datenaustausch und -reduplizierung: Einfachere Zusammenarbeit und weniger Redundanz.
  • Verbesserte Haltbarkeit und Ausfallsicherheit: Integrierte Fehlertoleranz über Cloud-Regionen hinweg.

Eine hybride Speicherhierarchie

Diese neue Funktion ergänzt die bestehende Block Storage-Unterstützung von Netezzatezza und bildet eine hybride Speicherhierarchie. Benutzer können nun Workloads nahtlos von Block Storage auf Object Storage übertragen, was einen reibungsloseren Migrationspfad zu cloudnativen Bereitstellungen ermöglicht.

Dieses hybride Modell ist ein entscheidender Faktor für Kunden, die Leistung und Kosten optimieren und gleichzeitig ihre Dateninfrastruktur modernisieren möchten.

Architektur und Modernisierung

Netezza ist derzeit auf führenden Cloud-Plattformen wie AWS und Azure als SaaS- und Bring Your Own Cloud (BYOC)-Angeboten verfügbar. Diese Cloud-Plattformen stellen einen Object Storage bereit, die kostengünstig, skalierbar und hochleistungsfähig ist. AWS S3 ist beispielsweise ein beliebter Object Storage, der über eine Cloud bereitgestellt werden kann und sich sehr gut skalieren lässt, während die Kosten minimal bleiben. Es ist auch möglich, die Speicher für Versionierung, Redundanz und Zugriffskontrolle zu konfigurieren.

Mit dem hybriden Speicheransatz können Kunden optional den Speichertyp für eine Tabelle bei der Erstellung angeben. Wenn im DDL kein Speichertyp definiert ist, wählt Netezza automatisch einen Speichertyp auf der Grundlage der konfigurierbaren Standardeinstellungen der Datenbank oder der Standardsystemkonfiguration aus.

Netezza basiert weiterhin auf den Konzepten des verteilten Computing und der MPP-Architektur. 

Diagramm, das die Architektur von Netezza zeigt

Der Speichertyp ist für das NPS-Frontend undurchsichtig. Das bedeutet, dass der Benutzer in der Lage sein sollte, die Tabellen abzufragen und zu verknüpfen, ohne sich Gedanken über den zugrunde liegenden Speichertyp machen zu müssen.

Modernisierung der Netezza-Speicher-Engine

Netezza bietet Object Storage und unterstützt gleichzeitig Block Storage, um den Übergang von Daten und Workloads von Block Storage zu Object Storage zu erleichtern. Sobald Object Storage konfiguriert ist, kann der Kunde den Speichertyp der neu erstellten Tabellen auswählen. Daten können mit einfachem SQL nach Bedarf zwischen Object Storage und Block Storage kopiert werden.

Die Benutzer sollten für jede NPS-Instanz einen separaten Bucket erstellen. 

Benennung und Löschung von Tabellenobjekten

Jedes im Objektspeicher gespeicherte Objekt folgt einem strukturierten Präfixformat:

 „/nps/<instance name>/<dbuuid>/<dsid>“.

Das Object Storage enthält Objekte, die den Tabellen und Metadaten entsprechen. Jeder Datenteil verfügt über eigene Metadatenobjekte. Die Metadaten werden in einem großen Puffer gespeichert, um die Latenz zu verbessern.

In Netezzas Object-Storage-Architektur werden veraltete Objekte, wie z. B. die durch gelöschte, abgeschnittene oder optimierte Tabellen resultierenden, mithilfe eines Löschlistenobjekts nachverfolgt. Diese Liste wird während dieser Vorgänge generiert. Anschließend ist ein asynchroner Garbage-Reiniger dafür verantwortlich, diese Objekte aus dem Objektspeicher zu löschen.

Das bedeutet, dass Netezza die Bereinigung automatisch im Hintergrund übernimmt und eine effiziente Speicherverwaltung ohne manuelle Eingriffe gewährleistet.

Lokales SSD-Caching

Um die Leistung zu steigern und die Betriebskosten zu senken, nutzt der Objektspeicher von Netezza lokales Caching. Diese Caching-Schicht sorgt für eine geringe Latenz und einen hohen Durchsatz. Speziell für die Netezza Storage-Engine wurde eine benutzerdefinierte Caching-Implementierung entwickelt, die eine schnelle Iteration und eine enge Integration mit der Netezza-spezifischen Architektur ermöglicht.

Die wichtigsten Objektspeicher für Netezza-Benutzer

Die native Objektspeicher-Integration von Netezza bringt den Benutzern große Vorteile – ohne bestehende Workflows oder Anwendungen zu stören. Hier sind einige der wichtigsten davon:

  1. Keine Änderungen an Kundenanwendungen: Anwendungen, die für Block-Storage-Tabellen entwickelt wurden, arbeiten weiterhin nahtlos mit Object-Storage-Tabellen zusammen; keine Codeänderungen oder Neukonfiguration erforderlich.
  2. Vollständige SQL-Kompatibilität: Alle Netezza-SQL-Syntaxfunktionen, Tools und Betriebsfunktionen funktionieren identisch mit Object-Storage-Tabellen. Benutzer erleben bei beiden Speichertypen ein konsistentes Verhalten.
  3. Verbesserte Skalierbarkeit: nutzt die inhärente Skalierbarkeit von Cloud Object Storage sowohl in Bezug auf die Kapazität als auch auf die E/A-Operationen pro Sekunde; ideal für wachsende Workloads und große Datensätze.
  4. Transparentes Kostenmodell: Die Nutzer werden auf der Grundlage der tatsächlichen Nutzung - Speichervolumen und API-Aufrufe - abgerechnet; dies ermöglicht eine bessere Kostenkontrolle und Vorhersagbarkeit.
  5. Optimiertes Preis- und Leistungsverhältnis im Laufe der Zeit: Netezza setzt Techniken wie leistungsfähiges lokales Caching und Batch-Schreibvorgänge ein, um den API-Overhead zu reduzieren. Diese Optimierungen tragen zu einer besseren Leistung bei geringeren Betriebskosten bei, insbesondere bei leseintensiven und analytischen Workloads.

Leistungsmerkmale Block vs. Object Storage

Um die Effizienz und Zuverlässigkeit von Objektspeichern zu bewerten, wurde eine Vielzahl unterschiedlicher Workloads ausgeführt, darunter schreibgeschützte Abfragen, gemischte Analysevorgänge, schreibintensive Aufgaben und Szenarien mit mehreren gleichzeitigen Benutzern.

Die wichtigsten Merkmale:

  • Leistungsparität mit Block Storage: Object Storage wies bei verschiedenen Workload-Typen eine mit herkömmlichem Block Storage vergleichbare Leistung auf.
  • Schnellere Batch-Leistung: Schreibintensive Vorgänge, insbesondere Batch-Einfügungen, zeigten dank optimierter Caching- und Schreibstrategien einen verbesserten Durchsatz.
  • Geringere Speicherkosten im Laufe der Zeit: Die Gesamtkosten für den Betrieb dieser Workloads, einschließlich der API-Nutzung, waren für Object Storages durchweg niedriger als für Block Storage, was es zu einer kostengünstigeren Lösung für die langfristige Datenverwaltung macht.
Diagramm der Leistung von Block im Vergleich zu Object Storage

Benutzererlebnis

Um native Object Storage zu unterstützen, führt Netezza das Schlüsselwort storagetype ein, sodass Benutzer den gewünschten Speicher auf verschiedenen Konfigurationsebenen angeben können.

1.   Hierarchie der Auflösung des Speichertyps: Wenn die Tabellenebene in der CREATE-TABLE-Anweisung angegeben ist, verwendet die Tabelle den definierten Speichertyp.

2. Beispiel: CREATE TABLE t1 (c1 INT) storagetype 'object';Sitzungsebene: Wenn nicht auf Tabellenebene angegeben, wird der Speichertyp von der Sitzung übernommen. Beispiel:

               SET default_storage_type = ‘object’;

               CREATE TABLE t1 (c1 INT)

3. Datenbankebene: Wenn nicht auf Sitzungsebene angegeben, wird der Speichertyp von der Datenbank übernommen. Beispiel:

CREATE DATABASE db1 storagetype ‘object’;

ALTER DATABASE db1 Speichertyp ‘object’;

4. Globale Einstellung: Wenn dies nicht auch auf Datenbankebene angegeben wird, greift das System auf den globalen Standardspeichertyp zurück, der in der Systemkonfiguration festgelegt wurde. Beispiel:

SET default_storage_type = ‘object’;

Diese Hierarchie gewährleistet Flexibilität bei gleichzeitiger Einhaltung der Konsistenz über die Bereitstellungen hinweg.

Aktualisierung der Verfügbarkeit

Native Cloud Object Storage for Netezza auf AWS ist jetzt in der öffentlichen Vorschau verfügbar, die allgemeine Verfügbarkeit ist für AWS und Azure im 4. Quartal 2025 geplant.

Sorgen Sie für eine konstante Benutzererfahrung

Netezza unterstützt jetzt nativen Cloud Object Storage und ermöglicht es Anwendern, Tabellen direkt auf S3-kompatiblem Cloud-Speicher zu erstellen und zu verwalten. Dieses hybride Modell, das Block- und Object Storage kombiniert, bietet eine bessere Skalierbarkeit, geringere Kosten und nahtlose SQL-Kompatibilität.

Mit Caching, asynchroner Bereinigung und flexibler Speicherkonfiguration über das Schlüsselwort „storagetype“ bietet Netezza ein verbessertes Preis-Leistungs-Verhältnis bei gleichbleibender Benutzerfreundlichkeit.Die öffentliche Vorschau von Netezza NCOS ist eine solide Grundlage, um für weitere neue Funktionen zu sorgen, die unsere Benutzer begeistern werden. 

Wir empfehlen Benutzern, Object Storage zu prüfen, indem sie ihre Workload ausführen und ein ideales Gleichgewicht für ihre Daten- und Workload-Anforderungen finden.

Jetzt erkunden