Présentation de la prise en charge de Netezza Native Cloud Object Storage (NCOS)

Illustration numérique d’une icône cloud avec des lignes vers des piles de stockage

Auteurs

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 a franchi une étape importante dans son processus de modernisation en introduisant la prise en charge de Native Cloud Object Storage directement dans le moteur.

Cette nouvelle fonctionnalité puissante permet aux utilisateurs de créer des tables au format de données Netezza sur un stockage objet compatible S3, offrant ainsi un nouveau niveau d’évolutivité, de flexibilité et de rentabilité.

Importance de cette fonctionnalité

Cette amélioration est plus qu’une simple mise à niveau technique ; il s’agit d’un changement stratégique qui permet à Netezza de tirer pleinement parti des avantages des architectures cloud natives. En intégrant nativement le stockage objet, Netezza offre les avantages suivants :

  • Évolutivité massive : le stockage objet peut croître pratiquement sans limites, ce qui le rend idéal pour les workloads big data.
  • Rentabilité : les coûts de stockage sont inférieurs à ceux du stockage bloc traditionnel.
  • Partage et déduplication des données : la collaboration est facilitée et la redondance réduite.
  • Durabilité et résilience améliorées : la tolérance aux pannes est intégrée dans toutes les régions cloud.

Une hiérarchie de stockage hybride

Cette nouvelle fonctionnalité complète la prise en charge existante du stockage bloc de Netezza, formant ainsi une hiérarchie de stockage hybride. Les utilisateurs peuvent désormais transférer leurs workloads du stockage bloc vers le stockage objet de manière transparente, ce qui facilite la migration vers des déploiements cloud natifs.

Ce modèle hybride change la donne pour les clients qui cherchent à optimiser leurs performances et leurs coûts tout en modernisant leur infrastructure de données.

Architecture et modernisation

Netezza est actuellement disponible sur les principales plateformes cloud telles qu’AWS et Azure sous forme d’offres SaaS et BYOC (Bring Your Own Cloud). Ces plateformes cloud publiques fournissent un stockage objet peu coûteux, évolutif et très performant. Par exemple, AWS S3 est un service de stockage objet très populaire qui peut être déployé via un compte cloud AWS et qui s’adapte extrêmement bien tout en maintenant des coûts minimes. Il est également possible de configurer les compartiments de stockage pour la gestion des versions, la redondance et le contrôle d’accès.

Avec l’approche de stockage hybride, les clients peuvent éventuellement spécifier le type de stockage pour une table lors de sa création. Si aucun type de stockage n’est défini dans le DDL, Netezza en sélectionne automatiquement un en fonction des paramètres par défaut de la base de données ou de la configuration système par défaut, qui sont modifiables.

Netezza continue de s’appuyer sur les concepts de l’informatique distribuée et de l’architecture MPP.

Le type de stockage est opaque pour le front-end NPS. Cela signifie que l’utilisateur doit pouvoir interroger les tables et les joindre sans se soucier du type de stockage sous-jacent.

Modernisation du moteur de stockage Netezza

Netezza offre le stockage d'objets tout en continuant à prendre en charge le stockage en blocs pour faciliter la transition des données et des workloads du stockage en blocs vers le stockage d'objets. Une fois le stockage d'objets configuré, le client peut choisir le type de stockage des nouveaux tableaux. Les données peuvent être copiées selon les besoins entre le stockage d'objets et stockage en blocs à l'aide d'un simple SQL.

Les utilisateurs doivent créer un compartiment distinct pour chaque instance NPS.

Nommage et suppression des objets de table

Chaque objet stocké dans le magasin d’objets suit un format de préfixe structuré :

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

Le stockage objet contient des objets correspondant aux tables et aux métadonnées. Chaque tranche de données possède ses propres objets de métadonnées. Les métadonnées sont stockées dans un grand tampon afin d’améliorer la latence d’E/S.

Dans l'architecture de stockage d'objets de Netezza, les objets obsolètes, tels que ceux résultant de tableaux supprimés, tronqués ou modifiés, sont suivis à l'aide d'un objet de liste de suppression. Cette liste est générée au cours de ces opérations. Ensuite, un nettoyeur asynchrone est chargé d'effectuer la suppression réelle de ces objets du magasin d'objets.

Cela signifie que Netezza gère automatiquement le nettoyage en arrière-plan, garantissant une gestion efficace du stockage sans intervention manuelle.

Mise en cache SSD locale

Pour améliorer les performances et réduire les coûts opérationnels, le stockage objet de Netezza exploite la mise en cache locale. Cette couche de mise en cache offre une faible latence et un débit élevé. Une implémentation de mise en cache personnalisée a été développée spécifiquement pour le moteur de stockage Netezza, permettant une itération rapide et une intégration étroite avec l’architecture spécifique à Netezza.

Principaux avantages du stockage objet pour les utilisateurs de Netezza

L’intégration native du stockage objet de Netezza offre de puissants avantages aux utilisateurs, sans perturber les workflows ou les applications existants. Voici les principaux :

  1. Aucune modification des applications client : les applications conçues pour les tables de stockage bloc continuent de fonctionner de manière transparente avec les tables de stockage objet ; aucune modification du code ni reconfiguration n’est nécessaire.
  2. Compatibilité SQL totale : toute la syntaxe, tous les outils et toutes les fonctionnalités opérationnelles SQL de Netezza fonctionnent de manière identique avec les tables de stockage objet ; les utilisateurs bénéficient d’un comportement cohérent entre les deux types de stockage.
  3. Évolutivité améliorée : tire parti de l’évolutivité inhérente au stockage objet dans le cloud, tant en matière de capacité que d’IOPS ; idéal pour les workloads croissants et les grands jeux de données.
  4. Modèle de coût transparent : les utilisateurs sont facturés en fonction de leur utilisation réelle (volume de stockage et appels API), ce qui permet un meilleur contrôle et une meilleure prévisibilité des coûts.
  5. Prix et performances optimisés au fil du temps : Netezza utilise des techniques telles que la mise en cache locale haute performance et les écritures par lots afin de réduire les frais généraux liés aux API. Ces optimisations permettent d’offrir de meilleures performances à un coût opérationnel moindre, en particulier pour les workloads analytiques et à forte intensité de lecture.

Caractéristiques de performance du stockage bloc par rapport au stockage objet

Afin d’évaluer l’efficacité et la fiabilité du stockage objet, divers types de workloads ont été exécutés, notamment des requêtes en lecture seule, des opérations analytiques mixtes, des tâches nécessitant de nombreuses écritures et des scénarios multi-utilisateurs simultanés.

Principaux points forts :

  • Parité de performance avec le stockage en blocs : le stockage d'objets a démontré des performances comparables au stockage en blocs sur différents types de workload.
  • Performances d’écriture par lots plus rapides : les opérations nécessitant de nombreuses écritures, en particulier les insertions par lots, ont affiché un débit amélioré grâce à des stratégies de mise en cache et d’écriture optimisées.
  • Coûts de stockage réduits au fil du temps : le coût total d’exécution de ces workloads, y compris l’utilisation de l’API, était systématiquement inférieur avec le stockage objet par rapport au stockage bloc, ce qui en fait une solution plus rentable pour la gestion des données à long terme.

Expérience utilisateur

Pour prendre en charge le stockage objet natif, Netezza introduit le mot-clé storagetype, qui permet aux utilisateurs de spécifier le type de stockage souhaité à différents niveaux de configuration.

1. Hiérarchie de résolution du type de stockage : si le niveau de la table est spécifié dans l’instruction CREATE TABLE, la table utilise le type de stockage défini.

Exemple : CREATE TABLE t1 (c1 INT) storagetype ‘object’;

2. Au niveau de la session : si le type de stockage n’est pas spécifié au niveau de la table, il est hérité de la session. Exemple :

               SET default_storage_type = ‘object’;

               CREATE TABLE t1 (c1 INT)

3. Niveau de la base de données : s'il n'est pas spécifié au niveau de la session, le type de stockage est hérité de la base de données. Exemple :

CREATE DATABASE db1 storagetype ‘object’;

ALTER DATABASE db1 storagetype ‘object’;

4. Paramètre global : s’il n’est pas spécifié au niveau de la base de données non plus, le système revient au type de stockage global par défaut défini dans la configuration du système. Exemple :

SET default_storage_type = ‘object’;

Cette hiérarchie garantit une flexibilité tout en maintenant la cohérence entre les déploiements.

Informations concernant la disponibilité

Native Cloud Object Storage pour Netezza sur AWS est désormais disponible en préversion publique, avec une disponibilité générale prévue pour AWS et Azure au quatrième trimestre 2025.

Assurer une expérience utilisateur cohérente

Netezza prend désormais en charge le Native Cloud Object Storage (stockage objet cloud natif), ce qui permet aux utilisateurs de créer et de gérer des tables directement sur un stockage cloud compatible S3. Ce modèle hybride combinant le stockage bloc et le stockage objet offre une meilleure évolutivité, des coûts réduits et une compatibilité SQL transparente.

Grâce à la mise en cache, au nettoyage asynchrone et à la configuration flexible du stockage via le mot-clé storagetype, Netezza offre un meilleur rapport qualité-prix tout en conservant une expérience utilisateur cohérente. La préversion publique de Netezza NCOS constitue une base solide pour stimuler une vague de nouvelles fonctionnalités qui susciteront un vif intérêt chez nos utilisateurs.

Nous recommandons aux utilisateurs d’explorer le stockage objet en exécutant leurs workloads et de déterminer le meilleur équilibre pour leurs besoins en matière de données et de workloads.

Découvrir