Presentiamo il supporto Netezza Native Cloud Object Storage (NCOS)

Illustrazione digitale dell'icona del cloud con linee che indicano gli stack di storage

Autori

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 ha fatto un grande passo avanti nel suo percorso di modernizzazione con l'introduzione del supporto Native Cloud Object Storage direttamente all'interno del motore.

Questa nuova potente funzionalità consente agli utenti di creare tabelle utente in formato dati Netezza su object storage compatibile con S3, sbloccando un nuovo livello di scalabilità, flessibilità ed efficienza in termini di costi.

Perché è importante

Questo miglioramento è più di un semplice aggiornamento tecnico: è un cambiamento strategico che consente a Netezza di utilizzare appieno i benefici delle architetture cloud-native. Integrando object storage in modo nativo, Netezza offre:

  • Scalabilità enorme: l'object storage può crescere praticamente senza limiti, il che lo rende ideale per i workload di big data.
  • Convenienza: costi di archiviazione inferiori rispetto al block storage tradizionale.
  • Condivisione e reduplicazione dei dati: collaborazione più facile e riduzione della ridondanza.
  • Durata e resilienza migliorate: tolleranza ai guasti integrata in tutte le regioni cloud.

Una gerarchia di storage ibrido

Questa nuova funzionalità si affianca al supporto esistente per il block storage di Netezza, formando una gerarchia di hybrid storage. Gli utenti possono ora trasferire i workload dal block storage all'object storage senza problemi, rendendo più fluido il percorso di migrazione verso le distribuzioni cloud-native.

Questo modello ibrido rappresenta una svolta per i clienti che desiderano ottimizzare prestazioni e costi modernizzando al contempo la propria infrastruttura di dati.

Architettura e modernizzazione

Netezza è attualmente disponibile sulle principali piattaforme cloud come AWS e Azure sotto forma di soluzioni SaaS e Bring Your Own Cloud (BYOC). Queste piattaforme cloud pubbliche forniscono un sistema di object storage economico, scalabile e altamente efficiente. Ad esempio, AWS S3 è un popolare servizio di object storage che può essere implementato tramite un account cloud AWS e si adatta molto bene, pur mantenendo i costi minimi. È inoltre possibile configurare lo storage per il controllo delle versioni, la ridondanza e il controllo degli accessi.

Con l'approccio hybrid storage i clienti possono facoltativamente specificare il tipo di storage per una tabella durante la creazione. Se non è definito alcun tipo di storage nel DDL, Netezza ne seleziona automaticamente uno in base alle impostazioni predefinite del database o alla configurazione predefinita del sistema, che sono configurabili.

Netezza continua a basarsi sui concetti di calcolo distribuito e architettura MPP. 

Diagramma che mostra l'architettura di Netezza

Il tipo di storage è opaco per il front-end NPS. Ciò significa che l'utente dovrebbe essere in grado di interrogare le tabelle e unirle senza preoccuparsi del tipo di storage sottostante.

Modernizzazione dello storage engine Netezza

Netezza offre l'object storage pur continuando a supportare il block storage per facilitare la transizione di dati e workload dal block storage all'object storage. Una volta configurato l'object storage, il cliente può scegliere il tipo di storage delle tabelle appena create. I dati possono essere copiati come richiesto tra object storage e block storage utilizzando un semplice SQL.

Gli utenti devono creare un bucket separato per ogni istanza NPS. 

Denominazione ed eliminazione degli oggetti tabella

Ogni oggetto memorizzato nell'object store segue un formato di prefisso strutturato:

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

L'object storage contiene oggetti corrispondenti alle tabelle e ai metadati. Ogni porzione di dati ha i propri oggetti metadati. I metadati vengono memorizzati in un buffer di grandi dimensioni per migliorare la latenza IO.

Nell'architettura di object storage di Netezza, gli oggetti obsoleti, come quelli risultanti da tabelle eliminate, troncate o modificate, vengono tracciati utilizzando un oggetto delete list. Questo elenco viene generato durante queste operazioni. Un garbage cleaner asincrono è quindi responsabile dell'effettiva cancellazione di questi oggetti dall'object store.

Questo significa che Netezza gestisce automaticamente la pulizia in background, garantendo una gestione efficiente dello storage senza richiedere interventi manuali.

Cache SSD locale

Per migliorare le prestazioni e ridurre i costi operativi, l'object storage di Netezza utilizza il caching locale. Questo livello di caching offre una bassa latenza e un throughput elevato. Un'implementazione di caching personalizzata è stata sviluppata specificamente per il motore di storage Netezza, al fine di consentire una rapida iterazione e una stretta integrazione con l'architettura specifica di Netezza.

Punti salienti dell'object storage per gli utenti Netezza

L'integrazione nativa dello storage a oggetti di Netezza offre enormi benefici agli utenti, senza interrompere i workflow o le applicazioni esistenti. Ecco alcuni vantaggi chiave:

  1. Nessuna modifica alle applicazioni dei clienti: le applicazioni create per le tabelle di block storage continuano a funzionare perfettamente con le tabelle di object storage; non è richiesta alcuna modifica o riconfigurazione del codice.
  2. Compatibilità completa SQL: tutta la sintassi SQL di Netezza, gli strumenti e le caratteristiche operative funzionano in modo identico con le tabelle di object storage; gli utenti sperimentano un comportamento uniforme in entrambi i tipi di storage.
  3. Scalabilità migliorata: utilizza la scalabilità intrinseca del cloud object storage sia per la capacità che per gli IOPS; ideale per workload in aumento e set di dati di grandi dimensioni.
  4. Modello di costo trasparente: gli utenti pagano in base all'utilizzo effettivo (volume di storage e chiamate API); consente un migliore controllo e prevedibilità dei costi.
  5. Prezzo e prestazioni ottimizzati nel tempo: Netezza utilizza tecniche come il caching locale ad alte prestazioni e le scritture in batch per ridurre il sovraccarico delle API. Queste ottimizzazioni aiutano a fornire prestazioni migliori a costi operativi inferiori, soprattutto per workload analitici e ad alta intensità di lettura.

Caratteristiche delle prestazioni del block storage rispetto all'object storage

Per valutare l'efficienza e l'affidabilità dell'object storage, è stata eseguita una serie diversificata di workload, tra cui query di sola lettura, operazioni miste, attività ad alta intensità di scrittura e scenari multiutente simultanei.

Punti salienti:

  • Parità di prestazioni con il block storage: l'object storage ha dimostrato prestazioni paragonabili al block storage tradizionale per diversi tipi di workload.
  • Prestazioni di scrittura in batch più rapide: le operazioni ad alto contenuto di scrittura, in particolare gli inserimenti batch, hanno mostrato un rendimento migliore grazie a strategie di caching e scrittura ottimizzate.
  • Costi di storage inferiori nel tempo: il costo totale di esecuzione di questi workload, incluso l'utilizzo delle API, è stato costantemente inferiore per l'object storage rispetto al block storage, rendendolo una soluzione più conveniente per la gestione dei dati a lungo termine.
Grafico delle caratteristiche delle prestazioni del block storage rispetto all'object storage

Esperienza utente

Per supportare l'object storage nativo, Netezza introduce la parola chiave storagetype, che consente agli utenti di specificare il tipo di storage desiderato a vari livelli di configurazione.

1. Gerarchia di risoluzione dello storage: se il livello della tabella è specificato nell'istruzione CREATE TABLE, la tabella utilizza lo storage definito.

2. Esempio: CREATE TABLE t1 (c1 INT) storagetype 'object';A livello di sessione: se non specificato a livello di tabella, il tipo di storage viene ereditato dalla sessione. Esempio:

               SET default_storage_type = ‘object’;

               CREATE TABLE t1 (c1 INT)

3. A livello di database: se non specificato a livello di sessione, il tipo di storage viene ereditato dal database. Esempio:

CREATE DATABASE db1 storagetype ‘object’;

ALTER DATABASE db1 storagetype ‘object’;

4. Impostazione globale: se non è specificato nemmeno a livello di database, il sistema torna al tipo di storage predefinito globale impostato nella configurazione del sistema. Esempio:

SET default_storage_type = ‘object’;

Questa gerarchia garantisce flessibilità mantenendo al contempo la coerenza tra le implementazioni.

Aggiornamento sulla disponibilità

Native Cloud Object Storage per Netezza su AWS è ora disponibile in anteprima pubblica, mentre la disponibilità generale è prevista per AWS e Azure nel Q4 2025.

Mantenere un'esperienza utente uniforme

Netezza supporta ora il cloud object storage nativo, consentendo agli utenti di creare e gestire tabelle direttamente su un cloud storage compatibile con S3. Questo modello ibrido che combina block storage e object storage offre una migliore scalabilità, costi inferiori e una perfetta compatibilità SQL.

Con il caching, la pulizia asincrona e la configurazione flessibile dello storage tramite la parola chiave storagetype, Netezza offre un miglior rapporto prezzo/prestazioni mantenendo un'esperienza utente coerente. L'anteprima pubblica di Netezza NCOS è una solida base per stimolare un'ondata di nuove funzionalità che entusiasmeranno i nostri utenti. 

Consigliamo agli utenti di esplorare l'object storage eseguendo i propri workload e di determinare il miglior equilibrio per le proprie esigenze di dati e workload.

Scopri oggi