Netezza Native Cloud Object Storage (NCOS) 支持简介

数字插图:云图标与存储堆栈相连的线路

作者

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 在其现代化进程中迈出了重要一步,通过在引擎内直接引入原生 Cloud Object Storage 支持。

这一强大新功能允许用户在 S3 兼容的对象存储上以 Netezza 数据格式创建用户表,从而开启新的可扩展性、灵活性和成本效益层级。

为什么这很重要

这次功能增强不仅仅是技术升级;它是一种战略转变,使 Netezza 能够充分利用云原生架构的优势。通过本机集成对象存储,Netezza 支持:

  • 极大可扩展性:对象存储几乎可以无限扩展,非常适合大数据工作量。
  • 成本效益:与传统块存储器相比,存储成本更低。
  • 数据共享和复制:更轻松地协作,减少冗余。
  • 增强的耐用性和弹性:跨云区域的内置容错能力。

混合存储层次结构

这一新功能补充了 Netezza 现有的块存储支持,形成了混合存储层级。用户现在可以无缝地将工作负载从块存储迁移到对象存储,从而实现向云原生部署的更顺畅迁移路径。

对于希望在实现数据基础设施现代化的同时优化性能和成本的客户来说,这种混合模型具有颠覆性的意义。

架构与现代化

Netezza 目前可在 AWS 和 Azure 等领先云平台上作为 SaaS 和自带云 (BYOC) 产品使用。这些公有云平台提供实惠、可扩展且功能强大的对象存储。例如,AWS S3 是一种流行的对象存储服务,可以通过 AWS 云帐户进行部署,并且具有出色的扩展性,同时将成本保持在最低水平。还可以为存储桶配置版本控制、冗余和访问控制。

通过混合存储方法,客户可以在创建表时可选地指定存储类型。如果 DDL 中没有定义存储类型,Netezza 会根据数据库的默认设置或默认系统配置(这些可配置)自动选择一种存储空间类型。

Netezza 仍然基于分布式计算和 MPP 架构的理念构建。

展示 Netezza 架构的图示

存储类型对于 NPS 前端来说是不透明的。这意味着用户应该能够查询表并连接它们,而不必担心底层存储空间。

Netezza 存储引擎现代化

Netezza 在提供对象存储的同时,仍然支持块存储,以便于将数据和工作量从块存储迁移到对象存储。一旦对象存储配置完成,客户即可选择新建表的存储类型。可以使用简单的 SQL 按需在对象存储和块存储之间进行数据复制。

用户应为每个 NPS 实例创建一个单独的存储区。

表对象命名和删除

对象存储中的每个对象都遵循结构化前缀格式:

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

对象存储包含与表和元数据对应的对象。每个数据切片都有自己的元数据对象。元数据存储在大型缓冲区中,以改善 IO 延迟。

在 Netezza 的对象存储架构中,过时对象(例如由已删除、截断或整理的表产生的对象)会通过删除列表对象进行跟踪。该列表是在这些操作过程中生成的。随后,异步垃圾清理器负责将这些对象从对象存储中实际删除。

这意味着 Netezza 会在后台自动处理清理工作,从而确保高效的存储管理,而无需手动干预。

本地 SSD 缓存

为了提高性能并降低运营成本,Netezza 的对象存储利用了本地缓存。该缓存层可提供低延迟和高吞吐量。专门为 Netezza 存储引擎开发了自定义缓存实现,支持快速迭代,并与 Netezza 特定架构紧密集成。

面向 Netezza 用户的对象存储关键亮点

Netezza 的原生对象存储集成为用户带来了强大优势,而不会干扰现有的工作流或应用程序。主要优势如下:

  1. 无需更改客户应用:为块存储表构建的应用程序可以继续与对象存储表无缝协作;无需修改代码或重新配置。
  2. 完全 SQL 兼容:所有 Netezza SQL 语法、工具和操作功能在对象存储表上均可正常使用;用户在两种存储类型上都能获得一致的体验。
  3. 提高可扩展性:利用 Cloud Object Storage 固有的容量和 IOPS 可扩展性;非常适合不断增长的工作量和大型数据集。
  4. 透明的成本模型:用户按实际使用量计费,包括存储容量和 API 调用;可实现更好的成本控制和可预测性。
  5. 随着时间的推移优化价格和性能:Netezza 采用高性能本地缓存和批量写入等技术来减少 API 开销。这些优化有助于以更低的运营成本提供更好的性能,特别是对于读取密集型和分析型工作量。

性能特征:块存储与对象存储对比

为了评估对象存储的效率和可靠性,执行了一组多样化工作量,包括只读查询、混合分析操作、写入密集型任务以及并发多用户场景。

主要亮点:

  • 与块存储性能持平:对象存储在各种工作负载类型下表现出与传统块存储相当的性能。
  • 更快的批量写入性能:写入密集型操作,尤其是批量插入,由于优化的缓存和写入策略,吞吐量有所提升。
  • 长期存储成本更低:运行这些工作量的总成本(包括 API 使用)在对象存储上始终低于块存储,使其成为长期数据管理更具成本效益的解决方案。
块存储与对象存储的性能特征图

用户体验

为了支持原生对象存储,Netezza 引入了 storagetype 关键字,允许用户在不同配置层级指定所需的存储类型。

1. 存储类型解析层级:如果在 CREATE TABLE 语句中指定了表级别,则该表将使用所定义的存储类型。

2. 示例:CREATE TABLE t1 (c1 INT) storagetype 'object'; 会话级别:如果在表级未指定,则存储类型将继承自会话设置。示例:

               SET default_storage_type = ‘object’;

               CREATE TABLE t1 (c1 INT)

3. 数据库级别:如果在会话级未指定,则存储类型将继承自数据库设置。示例:

CREATE DATABASE db1 storagetype ‘object’;

ALTER DATABASE db1 storagetype ‘object’;

4. 全局设置:如果在数据库级也未指定,系统将回退到系统配置中设置的全局默认存储类型。示例:

SET default_storage_type = ‘object’;

这种层次结构可确保灵活性,同时保持部署的一致性。

可用性更新

Netezza 在 AWS 上的原生云对象存储现已提供公测,计划于 2025 年第四季度在 AWS 和 Azure 上实现全面可用。

保持一致的用户体验

Netezza 现支持本机云对象存储,使用户能够直接在 S3 兼容的云存储上创建和管理表。这种结合块存储与对象存储的混合模型提供了更好的可扩展性、更低的成本以及无缝的 SQL 兼容性。

通过缓存、异步清理以及通过 storagetype 关键字实现的灵活存储配置,Netezza 在保持一致用户体验的同时提供了更优的性价比表现。Netezza NCOS 公测为推动一波令人振奋的新功能奠定了坚实基础,必将激发用户的热情。

我们建议用户通过运行他们的工作量来深入了解对象存储,并确定他们的数据和工作量需求的最佳平衡。

立即探索