43
0 白皮书 构建于 INTEL®XEON® 服务器上的 IBM INFOSPHERE® INFORMATION SERVER IBM NETEZZA® DATA WAREHOUSE SERVERS 进行集成的最佳实践和性能指导 Revision: 1.0 – Intended for public distribution Date: March 15, 2012 Authors: Garrett Drysdale, Intel® Corporation Sriram Padmanabhan, IBM Branislav Barnak, IBM Brian Caufield, IBM Tony Curcio, IBM Jon Deng, IBM David Li, IBM Liang Lu, IBM Mi Wan Shum, IBM John Skier, IBM Netezza Samuel Wong, IBM

白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

  • Upload
    others

  • View
    55

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

0

白皮书

构建于 INTEL®XEON®服务器上的 IBM INFOSPHERE®

INFORMATION SERVER 与 IBM NETEZZA® DATA

WAREHOUSE SERVERS 进行集成的最佳实践和性能指导

Revision: 1.0 – Intended for public distribution

Date: March 15, 2012

Authors:

Garrett Drysdale, Intel® Corporation

Sriram Padmanabhan, IBM

Branislav Barnak, IBM

Brian Caufield, IBM

Tony Curcio, IBM

Jon Deng, IBM

David Li, IBM

Liang Lu, IBM

Mi Wan Shum, IBM

John Skier, IBM Netezza

Samuel Wong, IBM

Page 2: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

1

目录

1.简介 ................................................................................................................................................................ ..... 3

2. IBM InfoSphere Information Server综述 ......................................................................................... 4

2.1 IBM InfoSphere Information Server 发布新的世界级的连接组件与IBM Netezza Data Warehouse Appliances进行集成 .................................................................................................. 5

2.2 新的 IBM Netezza连接器:帮助客户实现高性能和提高开发效率 .......................... 5

2.2.1 提高开发效率 ............................................................................................................................ 5

2.2.2 实现高性能 ................................................................................................................................. 6

2.3 新的针对于IBM Netezza的 IBM InfoSphere Information Server 均衡优化功能 ... 7

3. 英特尔至强系列E7 处理器和英特尔 10GbE 以太网适配器概述 ....................................... 8

3.1 升级IBM InfoSphere™ Information Server和英特尔至强服务器后的性能扩展 ... 10

4. IBM Netezza 1000 系列数据仓库设备概述 ............................................................................... 12

5. IBM InfoSphere Information Server 与 IBM Netezza 1000 系列之间进行数据装载

(Load)和卸载(Unload)的基准性能测试结果 ........................................................................... 14

5.1 测试配置 .......................................................................................................................................... 14

5.2 Netezza 新连接器数据装载(Load)性能测试结果 ................................................... 16

5.3 Netezza 连接器数据卸载( Unload)性能测试结果 .................................................. 17

6. 用于测试的Information Server作业 ............................................................................................... 18

7. 提高性能的标准实践和指南 ............................................................................................................ 19

7.1 如何避免部分装载 ....................................................................................................................... 19

7.2 如何管理临时工作表 (TWTs) .................................................................................................. 21

7.3 如何通过用户自定义SQL使用临时工作表 ......................................................................... 24

7.4 如何设置并行读 ............................................................................................................................ 25

7.5 如何使用操作列模式(The Action Column Mode) ............................................................. 26

7.6 事务处理 .......................................................................................................................................... 29

7.7 如何使用 Quoted IDs .................................................................................................................. 32

7.8 优化性能的其它最佳实践 ........................................................................................................ 35

Page 3: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

2

8. 结论 ............................................................................................................................................................ 36

9. 感谢 ............................................................................................................................................................ 37

10. 作者简介 .......................................................................................................................................... 38

11. 英特尔法律免责声明 .................................................................................................................. 40

12. IBM 法律免责声明 ...................................................................................................................... 42

Page 4: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

3

1. 简介

IBM InfoSphere™ Information Server®和英特尔® 最新的至强® E7 系列 4 槽,8 槽处理器,

以及 IBM Netezza®高性能数据仓库设备一起提供了基于可信赖数据的突破性分析功能。

IBM Netezza 数据仓库设备向企业提供了高性能的数据分析功能;作为一个软硬件结合

的设备,它能够被容易的部署以及管理。英特尔至强 E7 系列处理器提供了一个针对关

键任务环境的,具备高扩展性和稳定性的计算平台。基于英特尔平台上的 IBM InfoSphere

Information Server 则保证了企业信息能够被及时,完整、准确的与 IBM Netezza 数据仓

库设备进行交互,帮助客户进行业务分析,驱动创新和改进商业成果。

本白皮书总结了在性能基准测试中,使用新的 InfoSphere Information Server Netezza 连

接器与 IBM Netezza 数据仓库设备进行数据加载和卸载的测试结果及令人兴奋的性能;

帮助客户熟悉新的 InfoSphere Information Server Netezza 连接器 ―IBM InfoSphere

Information Server 与 IBM Netezza 数据仓库设备的全新综合集成。

本白皮书是一系列预期白皮书的其中之一,旨在向部署在英特尔至强处理器平台上的

IBM InfoSphere Information Server 客户提供性能调优的指导概要。本文中,我们测试了

运行在一个四槽配置的英特尔至强 E7-4870 处理器上 IBM InfoSphere Information Server

和 IBM Netezza 1000-12 数据仓库设备之间的连通性。目的是在这两个平台之间最大限

度的提高数据转移和加载的能力,同时,这一点对商业智能项目来说也是至关重要的。

我们建立和优化新的 Information Server Netezza 连接器,展示了如何最好的利用新

Netezza 连接器去最大化的提高 IBM InfoSphere Information Server 和 IBM Netezza 之间

的数据传输性能,同时也将分享这个新连接器的许多重要的新特性。

本文中,我们展示了超过 2.3 TB/小时的数据加载和卸载的性能数据,这一结果是在运行

于一个四槽配置的英特尔至强 E7-4870 处理器上的 IBM InfoSphere Information Server

和 IBM Netezza 1000-12 数据仓库设备之间取得的。为了达到这个性能,英特尔 10 Gbit/

秒的以太网适配器中,系统使用了超过 6 Gbit/秒的带宽利用率。我们也验证 IBM Netezza

1000 系列数据仓库设备所评估的每小时 2TB 的数据加载卸载的性能。尽管支持每小时

2TB 的数据加载和卸载的性能确实令人印象深刻,但这只是开始,我们在寻求更大的数

据加载卸载性能。我们相信当一些期待的改进得到实现的时候,Information Server 和

Netezza 的性能会得到更稳定的提高,因为更大的网络带宽和 CPU 利用率会出现在英特

尔至强 E7 的服务器上面。除此之外,当需要更强的数据处理能力时,运行在英特尔至

强 E7-4870 处理器上 IBM InfoSphere Information Server 可以扩展到多个服务器上来满足

这一需求。

Page 5: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

4

2. IBM INFOSPHERE INFORMATION SERVER 综述

IBM InfoSphere Information Server 通过数据抽取、转换和加载的方式提供了数据集成的

功能。它提供了一个可视化设计工具来让开发人员创建数据集成作业。作业主要用于描

述一个或多个ETL的任务,由提供重用功能的多个阶段组件构成。这些阶段组件包括:

• 以数据库、数据仓库、应用程序以及文件为数据源和目标的阶段组件

• 普通的处理阶段组件,例如:过滤、排序、连接、组合、查找以及聚合等

• 内置和自定义转换阶段组件

• 拷贝、移动、文件传输和其它数据转移阶段组件

• 实时、XML、SOA和消息队列处理阶段组件

• 用于访问大数据的阶段组件,运行BRMS的规则和自定义Java的阶段组件等

除此之外,IBM InfoSphere Information Server 可以将一些前置条件和后置条件应用到阶

段组件中去。多个作业可以被一个定序器连接和控制。这个定序器提供能够被用于处理

数据集成作业的控制逻辑。IBM InfoSphere Information Server 也提供了一个富客户端用

来部署、调度和监控作业的运行。

IBM InfoSphere Information Server 的最大优势之一是实现了系统架构与作业设计的解

耦。在大多数情况下,系统的改变,升级,改进或者是作业在一个平台上开发出来然后

部署到另一个平台上去,作业的设计不需要做任何改变。IBM InfoSphere Information Server 能够从配置文件中了解当前系统的状况。一个配置文件定义了作业运行的数据分

区处理节点的数目。这些处理节点是逻辑的而不是物理的。当系统改变时,只需要配置

文件做相应的改变即可。此外,它还能够通过配置文件中定义的内容来调整和组织作业

的资源使用。

影响作业最优并行度的因素有下几种:

• 对于CPU敏感的作业,通常情况下会对每一条记录执行多次CPU操作,对于一个给定的系

统,它受益于系统容量的最大可能的并行度。

Page 6: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

5

• 有大内存需求的作业,如果它所处理的数据是预先分区的,并且需要的内存也是在不同

分区之间独立的,它同样也能受益于系统的并行度。

• 对磁盘和I/O资源有更高要求的作业,例如从数据库中抽取数据或者加载数据到数据库中

的作业会受益于这样的配置:逻辑节点数目等于被访问的I/O路径数目

IBM InfoSphere Information Server另外一个巨大的优势是它在执行数据转换扩展和优

化的过程中不依赖于数据库的任何功能和进程。同时,它也能够产生复杂的SQL查询和

有效利用数据库的处理能力。从一开始,它就被设计为多通道的数据集成引擎,适用单

机,集群及网格等多种环境,擅长对文件、流、数据库和缓存的处理。因此,在很多情

况下,用户会发现他们不需要投资中间数据库去支持他们的数据集成环境的可扩展性。

对于更多关于IBM InfoSphere Information Server作业和阶段组件的信息,请访问 IBM

InfoSphere Information Server Version 8.7 product documentation或者IBM InfoSphere

DataStage and QualityStage 8.7 Information Center。

2.1 IBM INFOSPHERE INFORMATION SERVER 发布新的世界

级的连接组件与 IBM NETEZZA DATA WAREHOUSE

APPLIANCES 进行集成

基于 IBM InfoSphere Information Server 的 IBM Netezza 新连接器组件,已经发布在

Information Server 8.5 和 8.7 版本中,帮助运行在 4.6.x 和 6.x 版本上的 IBM Netezza

的用户快速实现价值回报。新的连接器组件为并行数据读取和写入提供了最新的原生性

连接,并且提供了将各种数据转换工作,向 IBM Netezza 数据仓库设备进行转移的功能。

这些新的特性不但帮助用户提高了开发效率,而且允许用户不用复杂的自定义编码就能

实现更高的性能。

2.2 新的 IBM NETEZZA 连接器:帮助客户实现高性能和提

高开发效率

2.2.1 提高开发效率

IBM InfoSphere Information Server 中,基于下一代连接性技术的 IBM Netezza 新连接器组

件提供了一系列丰富的功能。这个连接器组件在默认情况下会选择最优化的连接属性配

Page 7: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

6

置,这样即使一般情况下,它也可以达到最优性能。为了达到这个目的,这个连接器组

件能够实现了以下一些功能:

• 自动创建一个临时工作表(TWT)

• 自动创建 DDL 和数据加载

• 使用临时工作表作为默认插入表,而不是直接插入目标表

• 当创建数据库表的时候使用随机分配的分布键值

• 对传播更新使用 Action Column

当开发人员想要自定义数据集成选项的时候,IBM Netezza 连接器通过复选框和下拉列

表等简便的配置方式提供了自定义控制的方法。

IBM InfoSphere Information Server中的 IBM Netezza连接器组件还提供了许多自动化的属

性,这些属性在 Information Server 的其它连接器组件中也普遍存在。这些自动化属性选

项帮助开发人员通过简单的选择去解决一些复杂的问题。这些选项包括:

• Multi-action modes会自动的尝试另外一个操作如果第一个操作发生了错误,这些一

系列的二次操作包括:“Update then insert”, “Insert then Update” and “Delete then

insert”

• Generated SQL适用于表和传递到集成作业的数据字段。

• Partitioned Reads会将一个读操作请求扩展到多个读操作请求并且自动的合并结果

集。

2.2.2 实现高性能

IBM InfoSphere Information Server 和 IBM Netezza 数据仓库设备都是高性能的,支持高

可扩展性的产品。基于这两种产品的内部性能基准测试数据展示出超过每小时 2TB 的数

据加载速度,这满足了企业对大数据的处理需求。另外,和上一个 InfoSphere Information

Server 版本相比,新的 IBM Netezza 连接器组件将数据加载和卸载的速度在性能上提高

了 10%到 15%。

在很多数据集成模式中,直接对数据库中的数据进行处理转换是比较常见的一种情况。

例如,一个典型的例子就是用户常常需要把数据库中详细表数据汇总到一个统计表中。

在这种情况下,通常最有效的方式是数据库执行这些转换任务。基于这种原因,能够支

Page 8: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

7

持多种数据处理方式(在 IBM InfoSphere Information Server 可扩展引擎中执行数据转换

的 ETL 和在源或者目标数据库本身中执行数据转换的 ELT)的数据集成技术会显得非常

重要。

2.3 新的针对于 IBM NETEZZA 的 IBM INFOSPHERE

INFORMATION SERVER 均衡优化功能

数据集成技术会采用各种处理模式来实现最佳性能。将 ETL 和 ELT 结合起来的处理方式

为用户实现了最好的解决方案。为了使 IBM Netezza 数据仓库设备的用户也可以使用这

一解决方案。我们在 Information Server 8.7 中扩展了平衡优化功能,容许用户在 IBM

Netezza 数据仓库设备上执行数据转换任务。

IBM InfoSphere Information Server 的均衡优化功能,有效利用了用户前期对并行数据库

的投资,提高了集成开发人员的效率,优化了数据集成架构,增强了架构的可扩展性、

灵活性。它允许用户以自然的面向流程的方式来设计数据集成逻辑,并且自动的优化他

们的设计来实现最优的抽取、加载、转换和 SQL 执行的转移。

均衡优化功能充分的利用了系统现有的数据处理能力,灵活的实现了最有效的数据处理

功能和信息交付,不管这种处理是发生在 IBM Netezza 数据仓库上还是 Information

Server 转换引擎上。

将 IBM Netezza 的新连接器组件和均衡优化功能结合起来,可以提供如下功能:

• 在普通的 Information Server 模板中设计作业,同时自动优化能够在数据库上执

行的作业片段。

• 通过允许数据库执行数据压缩任务来显著的降低在网络中传输的数据量。

• 当数据源和目标是同种类型数据库的时候,进行最大化的优化。

• 充分利用 Information Server 并行引擎提供的独特转换和数据质量功能,平衡

IBM Netezza 上的数据处理 - 当维护并行处理的时候都无需把数据加载到硬

盘上。

Page 9: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

8

3. 英特尔至强系列 E7 处理器和英特尔 10GBE 以太网适配

器概述

与上一代的服务器相比,使用英特尔至强 E7 系列处理器的服务器能够动态提升性能和

可扩展性。它的芯片集包含了新的嵌入式技术,能够帮助专业人士在商业、信息管理、

创新和科学领域更快的解决问题,处理更大的数据集和解决更大挑战。

拥有智能化的处理性能,新的高带宽互连架构,和更大内存容量,基于英特尔至强系列

E7 处理器的服务器是适合对工作负载更加苛刻的环境下的理想计算平台。一个标准的四

路服务器能够最大提供 40 个核处理器,80 个并发执行线程和多达 2T 的内存。八路和

更大的服务器正在被服务器提供商开发。英特尔至强 E7 系列处理器还包含了扩展的可

靠性、可用性和适用性(RAS)等特性。这些特性能够加速数据集成和减少处理时间。

其中最重要的功能之一便是英特尔机器检测架构恢复,当异常发生时,它允许操作系统

执行修正操作,然后继续运行。这些具备高度可扩展性的服务器可以被用来支撑庞大的

用户群。

基于英特尔至强系列 E7 处理器的服务器平台还提供了一系列其它特性,它们能够帮助

提升性能、可扩展性和处理效率。

• 下一代英特尔虚拟化技术(Intel® VT)对处理器、芯片组、I/O 设备提供了大量的

硬件辅助功能,在虚拟机中启用快速应用程序性能,可获得包括接近本地化的

I/O 性能。英特尔虚拟化技术也支持对当前和基于英特尔至强处理器的未来的虚

拟机的在线迁移。因此当企业需要添加新的服务器的时候只需要维护一个虚拟

化资源的公共池。

• 英特尔快速路径互联技术提供了对分布式共享内存的点到点连接。拥有QPI特性

的英特尔至强 处理器两种集成内存控制器和三个分布式共享内存连接一起工

作,共同交付了可扩展的连接带宽,显著的内存性能和灵活的与RAS密切集成的

特性。对于QPI的相关技术文章,读者可参

考 http://www.intel.com/technology/quickpath/.

• 英特尔智能加速技术在必要时,即使是在工作负载峰值的情况下,也可以动态

增加核心频率大幅提升性能。

• 英特尔智能节能技术会在当需求较低的时候调整核心频率降低能耗。

• 英特尔超线程技术能够对多线程应用和在虚拟环境中同时运行的多工作负载,

提高吞吐量和降低应用等待时间。

Page 10: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

9

• AES 加密和解密新指令的支持,对关键算法有显著的性能提高。

更多关于英特尔至强系列 E7 处理器在关键性业务上作用的信息,请参考

http://www.intel.com/content/www/us/en/processors/xeon/xeon-processor-e7-family.htm

l?iid=subhdr%20itc_xeon.

图 1 - 英特尔®至强®E7 四路处理器架构图 .

很多基于 IBM Netezza 数据仓库设备的集成解决方案和本文中提到的一样,都会产生超

过~6 Gbits/s 的网络带宽需求。正是由于这种原因,英特尔 10GB 以太网适配器被用于这

些系统拓扑中。现在,10GB 以太网已经过了早期适用的阶段,正在快速的成为企业主

干网,数据中心以及网络服务提供商的主流选择。多核处理器以及对性能要求苛刻的应

用(例如性能计算、数据库集群、商业智能和商业分析等)在服务器上的逐步部署也正

在驱动 10GB 网络连接的需求。英特尔 10GB 以太网适配器就是用来设计满足吞吐量和

饥饿网络带宽应用的延迟需求的,同时可以只需要非常低的功率电路。英特尔 10GB 网

络适配器对于单端口和双端口配置都是可用的,同时也提供了对多个 1GB 服务适配器的

简化替代产品。英特尔 10GB 适配器还提供了对了多个 CPU,多个接收和传输队列的负

载均衡支持。

Intel® ScalableMemory Buffer

Memory

Intel® 7500 Chipset

PCI Express* 2.0

Xeon® E7 Xeon® E7

Xeon® E7 Xeon® E7

Page 11: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

10

英特尔提供了针对虚拟机设备队列的 VMDq 技术,增强虚拟化性能,也显著的降低了虚

拟化消耗。英特尔 10GB XF Server 适配器对于虚拟机的环境也作了优化,支持多队列,

减少虚拟机之间的 I/O 瓶颈。虚拟机队列(VMDq)技术除去了数据排序和从虚拟机监

视器(VMM)软件层到硬件层上的数据拷贝,提高了总体吞吐量和虚拟机上的 CPU 利

用率。除此之外,英特尔10GB FX Server适配器启用了英特尔 I/O加速技术(Intel I/OAT),

支持在基于新的四核和双核英特尔至强处理器的服务器上的快速数据处理和更快 I/O 处

理。

在此白皮书中展现的结果数据是在本地操作系统配置上取得的。但是,英特尔 E7 处理

器平台支持广泛的虚拟化特性,能够对虚拟操作系统环境提供更好的性能

3.1 升级 IBM INFOSPHERE™ INFORMATION SERVER 和英特尔

至强服务器后的性能扩展

同时升级硬件设备和软件系统会有显著的性能提升。图二展示出在同时升级硬件和软件

后,系统在吞吐量上会有 1.5 倍的性能提高。

横轴左边是 IBM InfoSphere™ Information Server® v8.1,右边是 v8.5。纵轴下面是较老的

英特尔至强X7560处理器 (代号为 Nehalem-EX, 2.26 GHz, 每路8核, 16个线程 , 24 MB

末级缓存) 。上面是英特尔至强 E7-4870 处理器 (代号为 Westmere EX, 2.4 GHz, 每路 10

核, 20 个线程 , 30 MB 末级缓存) 。在软件上,从 IBM InfoSphere™ Information

Server®v8.1 升级到 v8.5 之后,对于前面的任意一种英特尔处理器都可以产生 1.11 倍的

性能提升。在硬件上,从英特尔至强 X7560 处理器升级到英特尔至强 E7-4870 处理器后

对于前面的任意一个 Information Server 版本会产生 1.35 倍的性能提升。

Page 12: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

11

图 2 - 升级到最新的英特尔处理器和最新的 IBM INFORMATION SERVER 后能够产生出 1.5 倍的

系统吞吐量 .

Page 13: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

12

4. IBM NETEZZA 1000 系列数据仓库设备概述

IBM Netezza 1000 系列

(http://www.netezza.com/data-warehouse-appliance-products/twinfin.aspx)是一个特

定设计、基于标准的数据仓库设备。它从架构上集成数据库、服务器和存储到一个

单一的容易管理的系统设备中。它是一个高性能的设备,可以被广泛的用来作为企

业数据仓库、数据智能、边缘应用或者数据集成中心。它的存储容量可以从 1 TB扩展到 1.5 PB。IBM Netezza 1000 系列数据仓库设备是为大数据量的快速分析而设计

的,和当前传统数据库提供商提供的方案相比,以更低的代价,实现 10-100 倍的性

能提升。

在强大的多核 CPU 配置下,IBM Netezza 1000 系列被设计用来管理设备中所有的计

算核心,提供显著的性能和高可扩展性。作为一个通用设备,它可以扩展到多达 10个机架,设置 120 个 S 刀片设备、960 个 CPU 和 FPGA 核心。IBM Netezza 1000 系

列可以给企业带来顶级的性能、价值回报和管理简化,使他们能够提出问题和执行

以前从未设想过的复杂分析

每个 IBM Netezza 数据仓库设备都会与 IBM Netezza 分析设备一起交付,IBM Netezza分析设备是一个针对地理空间的嵌入式的软件平台和高级分析软件。它提供了对并

行企业部署和库内分析的支持。除了并行分析功能的内置类库使得它更简单的在数

据仓库中移动分析模型和记分外,同时支持各种流行的工具和语言。IBM Netezza分析设备完全集成到 IBM Netezza 数据仓库的巨大的并行处理架构中,使得它能够

以空前的速度进行数据发现、模型诊断和评分

产品突出独特的方面:

• IBM Netezza 1000 系列数据仓库设备是高性能的数据仓库一体机设备,不需要

索引和调整,这也缩短了部署周期和加快了投资回报。

• 这个设备为瞬间数据加载、查询的执行以及对所有的主流 ETL、BI、分析应用

的集成提供了“ready-to-go”的功能

• 一个强大的平台 – 集成高性能数据仓库、商业智能和高级分析到一个简单易

用的设备中

• 简单容易 -容易部署和管理,动态的简化企业数据仓库和分析的基础架构

Page 14: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

13

图 3 - IBM NETEZZA 1000-12 数据仓库设备规范

Page 15: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

14

5. IBM INFOSPHERE INFORMATION SERVER 与 IBM

NETEZZA 1000 系列之间进行数据装载( LOAD)和卸载

(UNLOAD)的基准性能测试结果

5.1 测试配置

本文的测试环境是一个典型的 Information Server 两层配置环境。Client 层机器上只安装,

运行 InfoSphere Information Server 8.7 客户端应用程序。其他 InfoSphere Information

Server 层被单独安装在一台英特尔至强 E7-4870 处理器的服务器上。IBM Netezza

1000-12 用作数据仓库。 InfoSphere Information Server 和 IBM Netezza 服务器通过

10GB 的英特尔以太网进行连接。Information Server 所在服务器的操作系统是 Red Hat*

Enterprise Linux* 5.3, 64-位版本。

Information Server 系统配置了 1TB 的内存。实际上,大多数 Information Server 作业不

需要这么大的内存,我们的服务器在配置使用更少的内存时也表现的很出色。这里,我

们使用大内存配置虚拟硬盘来存储用于处理的源数据,并将其发送到 IBM Netezza 数据

仓库设备。虚拟硬盘用来代替速度较慢的硬盘存储避免了潜在的 IO 瓶颈。

Page 16: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

15

图 4 – IBM INFOSPHERE INFORMATION SERVER AND IBM NETEZZA 性能服务器拓扑结构

表 1 和表 2 列出了测试平台的详细信息:

安装了 Information Server 的英特尔至强 E7—4780 处理器的服务器

制造商 Intel®

CPU 型号 ID E7-4870

平台名称 Boxboro

Socket 数量 4

Cores per Socket 10

Threads per core 2

CPU 代码名称 Westmere-EX

Page 17: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

16

CPU 频率 (GHz) 2.40

QPI GT/s 6.4

超线程技术 Enabled

预读取设置 Default

LLC 大小 (MB) 30

BIOS 版本 R24

安装的内存 (GB) 64

DIMM 类型 DDR3-1066

DIMM 大小 (GB) 16

DIMM 数量 64

NUMA Enabled

操作系统 RHEL 5.3 64 bit

表 1 – 用来测试的英特尔平台

IBM Netezza 1000-12 性能服务器数据仓库设备

制造商 IBM

Racks 1

S-Blades 12

CPU 内核 104

操作系统 RHEL 5.3 64 bit

软件级别 NPS 6.0

表 2 – 用来测试的 IBM NETEZZA 数据仓库设备

5.2 NETEZZA 新连接器数据装载(LOAD)性能测试结果

装载(Load)测试使用一个大小为 202GB 的数据集合。根据执行 Load 操作的 InfoSphere

Information Server 作业的并行处理节点的数量,该数据集合被提前均衡分区。通过将数

据集合分区的数量与处理节点的数量相匹配可以减少 I/O 子系统的冲突并降低对 CPU 的

使用。

Page 18: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

17

图 5 显示了通过速度为每秒 10 Gb 的以太网连接,使用 InfoSphere Information Server

向 IBM Netezza 1000-12 服务器上的目标表进行数据装载所得的测试结果。随着

InfoSphere Information Server 数据分区的数量从 1 增加到 23,作业的数据传输率也从每

小时 146GB 增加到 2377GB。CPU 监控数据显示即使 Load 作业以最高传输率运行时,

InfoSphere Information Server 的 CPU 平均利用率也只有 30%。当使用 23 个处理节点的

时候会系统达到最高的装载率,这也是测试的 IBM Netezza 数据仓库设备的额定能力。

(其他型号的 IBM Netezza 数据仓库设备能够提供更高的装载率。)

图 5 –从 INFORMATION SERVER ENGINE 服务器到 IBM NETEZZA 1000-12 服务器的数据装载

5.3 NETEZZA 连接器数据卸载( UNLOAD)性能测试结果

图 6 显示了通过速度为每秒 10 Gb 的以太网连接,使用 InfoSphere Information Server

将 IBM Netezza 1000-12 服务器源表中的数据进行卸载(Unload)所得的测试结果。随

着我们将 InfoSphere Information Server 的数据分区(或者“处理节点”)的数量从 1 增

加到 23,卸载的传输率也从每小时 133GB 增加到 2579GB。 CPU 监控数据显示随着并

行度的增加,InfoSphere Information Server 系统的 CPU 平均利用率也从 1.7% 提高到

33.5% 。

146

597

1161

2212 2377

1.65.6

9.3

22.2

25.4

0

5

10

15

20

25

30

0

500

1000

1500

2000

2500

1 4 8 16 23C

PU

Util

izat

ion

(%)

GB

/h

Number of DataStage Data Partitions

Netezza Connector Load Throughput

Throughput Avg. CPU %

Page 19: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

18

图 6 –通过 INFOSPHERE INFORMATION SERVER 从 IBM NETEZZA 1000-12 服务器卸载数据

6. 用于测试的 INFORMATION SERVER 作业

为了充分测试 IBM Netezza Connector stage 的性能,我们必须确保 InfoSphere Information

Server 服务器上的系统资源不会成为影响作业性能的瓶颈,例如 CPU、磁盘或网络。虽

然 Netezza 连接器提供了多种不同的输入方法,但研究证明预分区数据集(dataset)会

产生最好的数据装载和卸载传输率。使用预先分区的数据集(dataset)可以最大限度降

低 CPU overhead,减少对 I/O 的需求,从而使 InfoSphere Information Server 服务器能够

保留足够的资源来处理其他工作负载。图 7 显示了装载(Load)和卸载(Unload)作业

的截屏。

133

513

985

1838

2579

1.75.6

9.5

22.4

33.5

0

5

10

15

20

25

30

35

40

0

500

1000

1500

2000

2500

3000

1 4 8 16 23

CP

U U

tiliz

atio

n (%

)

GB

/h

Number of DataStage Data Partitions

Netezza Connector Unload Throughput

Throughput Avg. CPU %

Page 20: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

19

图 7 – 装载(LOAD) AND 卸载(UNLOAD)作业

7. 提高性能的标准实践和指南

在本节中,我们将介绍如何使用 InfoSphere Information Server 的 Netezza 新连接器和

IBM Netezza 数据仓库设备对集成作业进行高效开发和灵活实现的详细指南。其中包括

了对不同选项的全面详细介绍,以及如何针对您的场景进行使用才能获取灵活有效的解

决方案描述。

本节包含以下内容:

• 如何避免部分装载

• 如何管理临时工作表 (TWTs)

• 如何通过用户自定义 SQL 使用临时工作表

• 如何设置并行读取

• 如何使用操作列(action column)模式

• 事务处理

• 如何使用引用 ID

7.1 如何避免部分装载

Page 21: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

20

在使用InfoSphere Information Server向Netezza数据表中进行数据并行装载时,会有多个

数据处理节点向同一目标表中同时并行装载数据。如果其中一个处理节点遇到问题,则

会中断作业。但是,因为处理节点是并行运行的,所以有可能出现在作业终止之前已经

有一个或多个节点已经完成了数据装载。这就导致了数据部分装载。这种情况大多发生

在Netezza 新连接器中应用直接(Direct) 插入模式。

为了避免在数据装载中出现这种问题,Netezza 新连接器使用一个staging表,被称为临

时工作表(Temporary Work Table) 或者 TWT的技术。通过使用TWT表,向目标表中装

载数据可分两个主要阶段来完成。(1) 首先,每个处理节点将其负责的数据写入到TWT

表中。 (2) 在所有处理节点成功完成第一阶段装载后,conductor进程(每个作业都会

有一个这样的进程)会执行一个单独的插入语句将所有数据从TWT表中插入到目标表中。

这样一来,Netezza 新连接器的操作就只会出现两种情况,向目标表中插入所有输入记

录或者没有任何数据装载。

对于其他的数据写入模式,例如,更新(Update)、删除(Delete)、更新然后插入(Update

then Insert)、 删除然后插入(Delete then Insert)、用户定义的SQL(User-defined SQL)、

和操作列(Action column) 也都可以使用TWT。

Page 22: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

21

图 8 – DIRECT INSERT 模式选项

7.2 如何管理临时工作表 (TWTS)

默认情况下,在运行InfoSphere Information Server作业时,Netezza连接器会自动创建和

删除TWT 。因此,在连接属性中指定的用户名需要拥有创建和删除表的权限。取决于

在企业部署中的安全要求,有的用户可能没有被赋权。在这种情况下,那么可以配置

Netezza连接器使用以前创建的TWT。该表可以由拥有必要权限的管理员提前创建。TWT

必须与作业中Netezza连接器的列输入模式相匹配,因此,在这种情况下,每个要被装载

的表必须保留一个单独的TWT。此外,使用Runtime Column Propagation (RCP)的作业可

能无法使用预先存在的TWT,因为在作业运行前,系统无法识别连接模式。

Page 23: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

22

管理TWT比较好的方法是将其与生产数据库中的生产表独立分开。这种方法的好处是:

可以将TWT与生产数据库的备份和恢复操作分离。

更容易对它们进行跟踪,因为它们可以被保留在独立的空间。

权限管理也可以与生产数据库分开控制。

即使TWT被管理在独立数据库里,Netezza连接器仍然可以对其进行自动创

建和删除。

要启用该功能,必须设置Netezza连接器连接属性中的Separate connection for TWT ,并

指定数据库名称(您也可以设置不同的用户名和密码)。

图 9 – 设置 SEPARATE CONNECTION FOR TWT

Page 24: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

23

提示:您可以通过将Temporary work table 模式设置为自动(Automatic)来让Netezza

连接器管理TWT,或者指定一个现有的TWT。如果您决定指定一个现有的TWT,请确保

TWT名称中包括数据库的名称。 您可以使用 2-part 或 3-part 表名称来指定(例如 数

据库名.模式名.表名或 数据库名..表名),如下图所示。

图 10 – 临时工作表模式

Page 25: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

24

7.3 如何通过用户自定义 SQL 使用临时工作表

IBM Netezza 连接器既可以为写入模式自动生成SQL语句,也可以接受用户自定义SQL语

句。在所有处理节点完成向TWT的装载后,conductor进程会执行这些语句。

问题是应该如何将这些语句应用于TWT. 如果TWT是预先创建的或者是在 Before SQL

属性中创建的,那么设计作业的人就会知道它的名称并在用户自定义SQL中指向TWT。

但是,如果TWT是由连接器自动生成的,则只有在作业运行时才会知道它的名称。

为了解决这个问题,连接器提供了两个占位符(或参数),用户可以在用户自定义SQL

中使用这两个参数来指向TWT和目标表。

占位符 描述

[[twt]] 临时工作表名

[[table]] 在表名称属性中指定的目标表名.

表 3 –在 SQL 语句中使用的占位符或参数

在运行时,占位符会被实际的名称所替换。下面的例子显示了如何使用占位符输入用户

自定义SQL:

INSERT INTO [[table]] SELECT * FROM [[twt]]

或者

UPDATE [[table]] SET [[table]].col1 = [[twt]].col1

注意:如果占位符带引号,则不被替换。单引号用于指定文本值,因此'[[twt]]'会作为一

个值来处理,不会被替换。双引号则用作标识符,所以“[[twt]]” 将作为表或者列名称来

处理。

Page 26: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

25

7.4 如何设置并行读

当创建一个InfoSphere Information Server读取作业时,默认情况下,Netezza 连接器会顺

序读取,也就是说只在一个处理节点上运行。若要使连接器执行并行读取,可以将连接

器属性中的Enable partitioned reads 选项设置为Yes。

图 11 – ENABLE PARTITIONED READS

设置了该选项,连接器会在每个处理节点上生成不同的读取语句,这样就可以读取不同

子集的记录。对于datasliceid列(特殊的Netezza列),连接器将使用模量分区。

Page 27: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

26

注意: 当使用用户自定义 SQL 语句,并且把Enable partitioned reads 选项设置为Yes时,

连接器将会在每个处理节点执行相同的语句,这样可能会产生重复数据,因为在每个处

理节点都会看到所有行数据。

连接器提供下列占位符或者参数,可用于SQL语句中来实现分区:

占位符 描述 Value when running sequentially

[[node-count]] 处理节点总数。表示 Netezza 连接器的并

行程度,等于处理节点的数目 1

[[node-number]] 当前处理节点零基准索引。 例如,如果有

4 个处理节点,则处理节点有 0,1,2,3 四个

索引。

0

表 4 –在 SQL 语句中的占位符

用户可以使用这些占位符在SQL语句中创建分区子句,例如:

SELECT * FROM table WHERE

mod(datasliceid,[[node-count]])=[[node-number]]

[[node-count]] 会在所有处理节点接收相同的值,而[[node-number]] 则会在每个处理节

点替换不同的值。

7.5 如何使用操作列模式 (THE ACTION COLUMN MODE)

Netezza 连接器拥有一个特殊的模式适用于复制的作业。被称为操作列(Action column)

模式。在该模式下,每个接收的行都可以指定对该行数据所执行的SQL语句的类型。该

模式有 5 种支持的操作:插入Insert (I),更新Update (U),删除Delete (D),替换Replace (R)

以及合并Merge (M)。正如模式的名称所示,在输入数据的schema中有一个特殊的列,

被称为操作列,其类型为char(1),有I, U, D, R, M 五个操作模式标识符表示。

连接器会按顺序执行删除(Delete)、更新(Update)和插入(Insert)语句。第一个语

句通过D或R操作将目标表中key值与输入行相匹配的行删除。第二个语句通过U或M操作

将目标表中key值与输入行相匹配的行更新。同时通过M操作插入那些key值不存在在目

标表中的输入记录。第三个语句通过I或R操作将行插入目标表。

操作列(Action column)只允许在Netezza 连接器的输入连接模式中设定,不可以出现

在目标表中。列的名称可以任意设置,但是不允许与目标表中的列名称相同。

设置 Action column 作业如下:

1) 将写入模式(Write mode)设置为操作列(Action column)。

2) 在您的输入连接列表中,选择要用于匹配记录的键(key)。

3) 从预备的 (文本类型)输入连接列列表中,选择操作列(一个单列)

Page 28: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

27

图 12 – 操作列写模式

Page 29: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

28

图 13 –选择匹配记录的 KEY

Page 30: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

29

图 14 – 选择操作列

7.6 事务处理

Before SQL和 After SQL 语句属性允许指定多个SQL语句(每个语句用分号隔开),有两

个属性可以控制这些语句的事务范围,如果任何语句失败都会影响作业的行为。这两个

属性是:Fail on error 和 Atomic mode.

当Before SQL和 After SQL 属性中的SQL语句的性质是允许出现失败时,例如,删除一个

可能不存在的表,将Fail on error 设置为No。设置了该选项后,即使一个或多个语句失

败了作业也会继续运行。此外您还可以设置属性Log statement errors 来控制是否对相关

的错误消息进行记录以及如何记录。

如果SQL语句的性质不是上述这种情况,那么就没有必要继续运行作业了,将 Fail on

error 属性设置为 Yes,则在第一个语句失败后作业就会中止。随后的SQL 语句也不会

Page 31: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

30

被执行。此外,您可以将 Atomic mode 设置为 Yes,以确保在失败之前执行的SQL语句

可以被回滚。

图 15 – Fail on error and Atomic mode

注意: 在 Atomic mode 模式下,您不能在该属性中使用任何非事务性SQL语句。

含有多个SQL语句(Update then insert、Delete then insert、Action column 和 User-defined

SQL)的写入模式也具有 Atomic mode 模式。将 Atomic mode 设置为 Yes 时,所有语

句都会在一次事务内执行(例如,Update then insert 模式的更新和插入语句)。如果任

意一条语句失败了,则回滚所有操作。如果将 Atomic mode 设置为No,则每个语句都

在单独的事务内运行。也就是说,例如,如果Update then insert 的插入(insert)部分

失败了,更新(update)操作仍然会提交。

Page 32: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

31

图 16 – SQL ATOMIC MODE 属性

注意:

• Before SQL、After SQL 和 Write mode SQL 都有各自的 Atomic mode 属性。他们的作

用是如果一个SQL语句在其中一个属性中失败了,则在其他属性中已经执行的SQL语句

将不会被回滚。也就是说,Atomic mode 的范围受其父属性(以及相关SQL语句)的

限制。

• 连接器会在作业运行结束时提交的一个单独事务中处理所有输入行。这就使连接器更

适用于那种可以定期(例如每天一次)调用的批处理类型的作业来进行海量数据的处

理和加载。由于目标表永远不会被更新,该连接器不适用于 'always-running' 作业。

Page 33: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

32

7.7 如何使用 QUOTED IDS

IBM Netezza 支持两种类型的标识符: 常规标识符和界定标识符

常规标识符是大小写不敏感的,在数据库中,可以是大写或小写。缺省情况下是大写的。

标识符只能包含 字母(任何字母,而不只是拉丁字母), 音节(如日语的平假名,片假名),

象形文字, 小数点, 下划线和美元符号 ($).常规标识符不能用数字,下划线,及美元符

号开头,必须以字母开头,同时也不能是SQL 保留字。IBM Netezza 编目中的编码是UTF-8;

其显示有客户端来决定。

界定标识符被双引号包围,有特殊含义是大小写敏感的。 例如: 一个数据库 “Sales” 和

名字为SAILES的数据库不是同一个库。在IBM Netezza 数据仓库中,界定标识符不会被

转换为缺省的大写模式,也不会将双引号保存在数据库中。

通过双引号标识,界定标识符不但和常规标识符一样包含字母, 音节, 象形文字, 小数点,

下划线和美元符号,而且还可以包含空格,特殊符合,例如连字号,百分比符合及SQL

的保留关键字。界定标识符可以以任意的字母,数字和符号开头。Netezza 连接器支持

在表名属性和用户自定义SQL语句中使用界定标识符,同时连接器的行为会被“Enable

case-sensitive identifiers”属性影响。

Page 34: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

33

图 17 – 表名属性中的界定标识符

Page 35: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

34

假设表名类型和大小写敏感设置如下,下表给出了相应Netezza连接器的行为:

表名属性 Case sensitive IDs

关闭 打开

数据库.模式.表 • 在系统编目中查询时,数据库,

模式,表都是大写。

• 在 SQL 语句中使用时,数据库,

模式,表按原样。

• 在系统编目中查询时,数据库,

模式,表按原样。

• 在 SQL 语句中使用时,数据库,

模式及表被引用。

• 圆点被用作为界定符号,不是名

字的一部分

“数据库.模式.表” • 整个字符串 数据库.模式.表被

假设为一个界定的表名。(圆点

被认为是表名的一部分)

• 在系统编目中查询时,表名按照

原样。

• 在 SQL 语句中使用时,表名按照

原样。

• 整个字符串 数据库.模式.表被

假设为一个界定的表名。(圆点

被认为是表名的一部分)

• 在系统编目中查询时,表名按照

原样。

• 在 SQL 语句中使用时,表名按照

原样。

数据库.模式.”表” • 在系统编目中查询时,数据库和

模式是大写,表是按照原样。

• 在 SQL 语句中使用时,数据库和

模式按照原样,表被引用。

• 在系统编目中查询时,数据库和

模式是大写,表是按照原样。

• 在 SQL 语句中使用时,数据库和

模式按照原样,表被引用。

“数据库”.”模式”.”表” • 在系统编目中查询时,数据库,

模式,表按照原样。

• 在 SQL 语句中使用时,数据库,

模式及表被引用。

• 在系统编目中查询时,数据库,

模式,表按照原样。

• 在 SQL 语句中使用时,数据库,

模式及表被引用。

表 5 – CASE SENSITIVE IDS 和连接器行为

Page 36: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

35

7.8 优化性能的其它最佳实践

优化性能的最佳实践总结

下文是对基于IBM Netezza 1000-12 数据仓库设备,IBM InfoSphere Information Server 和基于英特尔至强处理器的服务器上的数据集成环境进行性能优化的最

佳实践总结:

• IBM Netezza 1000-12 数据仓库设备 – 使用缺省软件设置,不需调优!

• IBM InfoSphere Information Server connector for IBM Netezza -使用缺省软件设

置,不需调优!

• 如果有适量的内存,请为Information Server 的temporary和scratch space设置虚

拟内存硬盘或者使用高性能固态硬盘(SSD) 。每个server至少分配 100 GB的空间。

当作业使用temporary or scratch space时,这种配置能大大提高性能。

• 使用英特尔 10 GbE NICs 并配置驱动使用jumbo frames.

在网络带宽使用率超过6 Gbits/s的情况下,配置 10 GbE 网卡是必须的。

在我们的测试中,使用Jumbo frames能带来 10%以下的性能提高。

• 如第 7 节所述,进行性能优化的标准实践如下:

避免部分装载

管理临时工作表 (TWTs)

通过用户自定义 SQL 使用临时工作表

设置并行读

使用操作列模式

使用事务处理

使用引用标识符

Page 37: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

36

8. 结论

IBM Information Server 可以部署在执行关键任务的高性能服务器,例如,基于 E7 - 4870

系列的英特尔®服务器 Xeon®平台上,以极高处理率实现数据的高效处理。因此,高性

能的 I / O 和网络带宽的对于整体性能是非常重要的。网络连接组件,例如:10 Gbit / s 的

以太网卡或 40 Gbit / s 的光纤通道是非常必要的,可以充分发挥这对硬软件组合的强大

的计算处理能力。

当向 IBM Netezza 数据仓库设备装载数据(或处理其它数据源的数据)时,基于英特尔

E7 – 4870 上的 IBM InfoSphere Information Server 的性能很容易超过 1 Gbit / s 以太网卡

的带宽处理能力。英特尔 10 Gbit / s 以太网适配器提供必要的带宽和一些特性来优化网

络性能。本文中的测试配置展示了运行在英特尔 E7 - 4870 处理器上的 InfoSphere

Information Server 和 IBM 的 Netezza 1000 系列数据仓库设备之间,超过 2.3 TB/hour 小

时的数据加载和卸载速率。这样的高性能导致了在两个服务器之间,平均 6 Gbits / s 的

网络连接。同时,这也可能需要较大的内存(或 SSD固态设备)去维护 Information Server 的

scratch 和 temporary 数据。在本次实验中,一个虚拟内存硬盘(RAMDISK)被用来取代

存储速度慢的硬盘设备。

通过联合使用 IBM InfoSphere Information Server and IBM Netezza

数据仓库设备实现快速的投资回报

IBM InfoSphere Information Server 向数据仓库提供更值得信赖的信息—信息和上下文相

关,全面、准确、及时。IBM Netezza数据仓库设备设计为突破性的分析性能,系统简

单性和可扩展性提供新的企业标准。IBM InfoSphere Information Server v8.7 引入了新的、

更快的、功能丰富的连接组件与 IBM Netezza进行集成。这在部署更值得信赖的数据仓

库解决方案时,加快了客户的投资回报。

根据客户的反馈意见和发展趋势,新的Netezza连接器嵌入了许多界面友好的有用功能。

它基于 IBM Netezza的外部表,进行数据加载和提取。它通过支持并行读取数据,有能

力进行高性能的数据提取。它支持多种装载选项,例如插入,更新后再插入,删除后再插

入,更新,删除,基于 Action Column的插入,自定义的 SQL 插入等。它非常智能,能够允

许使用现有的临时工作表或自动创建新的临时表,临时工作表可以位于一个独立的数据

Page 38: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

37

库中。因此避免了对目标表损坏的可能性和用户权限的误用。它支持多种类型的表操作,

例如:truncate, drop,replace, 或者通过自身独有的特性,创建出不同的

distribution key选项,例如用户定义的,自动的或随机的。还有一些其他的功能,为终

端用户提供更多的能力,如在一个单独节点或者多个节点上,执行 before SQL 和 after

SQL 语句,schema reconciliation, 和 RCP等。

与市场上其它产品相比,IBM InfoSphere Information Server 的均衡优化功能非常独

特。它可以将转换处理操作推到源和目标数据库中。通过这个功能,用户能够优化自身

IT 环境的资源使用率。数据转换处理操作可以被完全放在专用服务器上,或被推到 IBM

Netezza 中, 或者是混合模式,数据转换处理操作及在专用的处理服务器上,也在

Netezza IBM 服务器中。原始作业和经过均衡优化后的作业都被保存在同一个存储库中。

用户可以设计执行逻辑,根据当前环境资源负载情况,动态选择执行那种作业。

通过 IBM 软件和英特儿至强 E7 处理器的强强联合优化 ROI

总之,IBM InfoSphere Information Server通过新的IBM Netezza连接器,为IBM Netezza数据

仓库设备,提供了原生的连接性。支持均衡优化, 无论是在源数据库, IBM Netezza目标

数据库, 还是在高性能的 Information Server引擎, 或者上述的任何或所有的地点,它都

可以进行数据处理转变。结合强大的关键任务性服务器平台,诸如基于E7 - 4870 系列处

理器的英特尔®服务器Xeon®平台,IBM InfoSphere Information Server并行引擎可以以令

人印象深刻的超高处理率, 对IBM Netezza进行数据处理。

9. 感谢

在此,我们对以下各位参与者在本此性能实验,及本文创作中的大力帮助,表示深深的

敬意:

• Jantz Tran (Sr. Staff Software and Hardware Engineer, Intel)

• Yeh-Heng Sheng (Software Architect, Balance Job Optimization, ISAS/Information

Server, IBM)

• Gary Faircloth (User Technology Engineer: User Assistance Design, Writing, and

Production Infrastructure, IBM)

Page 39: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

38

10. 作者简介

Garrett Drysdale 拥有密苏里大学罗拉分校的电子工程学士学位和乔治亚理工

学院的电子工程硕士学位,是英特尔的软件及硬件性能工程师。 从 1995 年以

来,他一直从事于基于英特尔平台的客户机,工作机及企业级服务器上的软件

性能优化分析工作。目前,Garrett 和云计算及数据中心软件开发人员一起合

作分析优化基于英特尔服务器的云应用,与英特尔的内部设计团体合作评估基

于下一代因特尔平台的新兴技术在软件性能方面的影响。您可以通过

[email protected] 联系他。

Sriram Padmanabhan博士是IBM Distinguished Engineer及IBM InfoSphere Server产品的首席架构师。最近,他领导 Information Management Advanced Technologies team研究新兴的技术领域,例如,Web2.0 对于信息访问及发布的

影响。作为资深研究员和数据库技术组的经理,他曾经在IBM T.J. Watson研究

中心工作了数年。他是DB2’s shared-nothing parallel database 的关键技术人员

和DB2’s multi-dimensional clustering的原创者之一。 他也是提供集成仓库和商

业智能的增强版DB2 Data Warehouse Edition的首席架构师。他总共发表了至少

25 本公开出版物,包括DB2 技术,期刊杂志和数据库研讨会上的论文。您可以

通过 [email protected]联系他。

Branislav Barnak是 IBM软件架构师。他主要负责 IBM InfoSphere DataStage connectivity和IBM 技术领域,例如:DB2, WebSphere MQ, 主机数据存储及其

它。Branislav在DataStage connectivity 技术领域有超过 10 年的开发经验。他开

发过多个Connectivity 框架,涉及到多个数据库和消息产品例如:Oracle, PeopleSoft, Teradata, DB2, WebSphere MQ等等。 他拥有塞尔维亚贝尔格莱德

大学,电子工程学士学位。 您可以通过 [email protected]联系他。

Brian Caufield 是负责定义和设计IBM InfoSphere Information Server新功能的软

件架构师。 他同时也和Information Server Performance Team一起工作,代表

IBM 在TPC为数据集成定义工业标准的性能基准。在此之前,作为资深开发者,

Brian在IBM InfoSphere Information Server 并行引擎领域有 10年的开发经验。您

可以通过 [email protected]联系他。

Tony Curcio是IBM InfoSphere DataStage的产品经理。他帮助企业应用IBM 可扩

展的数据集成平台建立可信信息的基础架构。他负责指导IBM InfoSphere DataStag的开发方向,最大化满足客户的需求和符合工业趋势。Tony 也是

InfoSphere and Cognos联合产品策略的负责人。您可以通过 [email protected]联系他。

Page 40: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

39

Jon Deng 是IBM Information Server Connectivity 的产品经理。他负责

Information Server与合作伙伴及供应商产品的集成工作。Jon 在企业软件,硬

件和行业方案领域有超过 15 年的经验,是包括信息集成,大数据,数据仓库,

商业智能,实时分析,云计算,Web2.0/Mashups 和产品规划,调度,顺序方

法方面的技术专家。您可以通过 [email protected]联系他。

David Qiang Li 是在软件性能,压力,和装载测试方面有超过 12 年经验的软件

性能工程师。 加入IBM InfoSphere 产品组之前,David 是IBM Rational Performance Engineering team的关键成员。在Rational ClearCase, Rational ClearQuest and Rational Team Concert等产品的多个版本发布中,David对提高产

品质量和性能起到了关键作用。他是 2007 和 2009 年的Rational Software Development Conference,2011 年 IBM Information On Demand Conference的演

讲者之一。 他经常出席哈佛和麻省理工在IT领域的讲座和研讨会。您可以通

[email protected]联系他。

Lu Liang 在系统测试和性能测试方面有多年的经验。当前,他是InfoSphere Information Server Performance Team的成员。他在DevelopWorks上面发表了多

篇关于Information Server的技术文章 。作为认证的高级DB2 数据管理员,除了

DB2,他还熟悉其它的关系性数据库,对J2EE和Web技术也有一定的了解。他

对Information Management , 开源技术等方面很感兴趣。您可以通

[email protected]联系他。

Mi Wan Shum毕业于德州大学,拥有多年软件开发背景,目前是IBM硅谷实验

室,InfoSphere Information Server 性能测试团体的主管经理。您可以通

[email protected]联系她。

John Skier 是IBM's Netezza partner integration team的主管。他负责IBM Netezza's data warehouse appliances与商业伙伴产品的最佳集成。他拥有

Informix SQL engine technology专利,是TPC和SQL standards committees的成员。

他的职业生涯大部分时间都在为商业和使用SQL技术的政府部门开发,实现,

发布标准的高性能数据仓库和OLTP系统。您可以通过 [email protected]联系

他。

Samuel Wong 是IBM硅谷实验室,InfoSphere Information Server 性能测试团体

的核心成员之一。他毕业于多伦多大学,在IBM有超过 10 年软件开发经验。您

可以通过 [email protected]联系他。

Page 41: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

40

11. 英特尔法律免责声明

性能测试及评分结果基于使用特定的计算机测量系统和/或部件,这些测试体现了英特尔

产品近似性能。任何在系统硬件,软件设计或配置上差异都可能影响实际性能。买方应

参考其他来源的信息去评估他们正在考虑购买的系统或组件的性能。关于性能测试和英

特尔其它产品性能的更多信息, 可以访问 http://www.intel.com/performance/

本文及相关的材料和信息以“原样”方式提供且没有明示或暗示的保证,其中包括但不

限于任何暗含的适销性保证,特殊用途的适合性、不侵权的知识产权,或任何保证在其它

方面引起的任何提案、规格、或样品。对于包含在本文中的任何错误,英特尔公司不承

担任何责任。对于与本文的使用相关的,或引起的任何索赔,英特尔公司没有责任或义

务。

所有产品、产品说明、计划、日期和数字都是基于当前期望的初步值。任何主题如有更

改,恕不另行通知。在不同的渠道,可用性可能会有不同。

*其他的名字和品牌可以被声称是他人的财产。

©2011 年,英特尔公司保留所有权利。英特尔,英特尔标志、核心、Itanium,NetBurst,奔

腾,VTune 是英特尔公司在美国和其他国家的注册商标。

优化公告

While Intel believes our compilers and libraries are excellent choices to assist in obtaining

the best performance on Intel® and non-Intel microprocessors, Intel recommends that you

evaluate other compilers and libraries to determine which best meet your

requirements. We hope to win your business by striving to offer the best performance of

any compiler or library; please let us know if you find we do not.

Notice revision #20101101

英特尔®编译器,相关的函数库和开发工具可能包括或利用优化指令集选项, 这些优化选

项适用于英特尔®和 non-Intel 微处理器(例如 SIMD 指令集),但不完全优化 non-Intel 的微

处理器。此外,英特尔编译器的某些编译选项,包括那些不是针对英特尔

micro-architecture 的,是为英特尔微处理器保留的。对于英特尔编译选项的详细描述,包

括指令集和涉及的特定微处理器,请参阅“编译选项“下的“英特尔®编译器的用户和

参考指南”。许多函数库程序是英特尔®编译器产品的一部分,与其他微处理器相比,

对英特尔处理器提供了更高的优化。当英特尔®编译器产品中的编译器和函数库对于英

特尔和英特尔兼容的微处理器提供优化时,取决于你选择的选项,代码和其他一些因素,

你很可能会在英特尔微处理器上得到额外的性能。

Page 42: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

41

对于英特尔微处理器独有的优化,英特尔®编译器相关的函数库和开发工具可能会或不

会为 non-Intel 微处理器做到相同程度的优化。这些优化包括 Intel® Streaming SIMD

Extensions 2 (Intel® SSE2),Intel® Streaming SIMD Extensions 3 (Intel® SSE3)和补充的

Streaming SIMD Extensions 3 (Intel® SSSE3)指令集和其他优化。在非英特尔生产的微处理

器上,英特尔并不保证可用性、功能,或任何优化的有效性。在这个产品中,依赖微处理

器的优化是为英特尔微处理器而准备的。

尽管英特尔相信我们的编译器和函数库是在英特尔®微处理器和非英特尔®微处理器上,

获得最高性能的最佳选择,英特尔建议您评估其他编译器和函数库后,来决定谁是满足

您要求的最佳选择。我们希望通过为任何编译器或函数库提供最佳性能来赢得您的业务;

如果你发现我们不这么做,请让我们知道。

公告修改# 20101101

Page 43: 白皮书 构建于 INTEL® XEON ®服务器上的 IBM INFOSPHERE® … · 0 白皮书 构建于INTEL® XEON ®服务器上的 IBM INFOSPHERE® INFORMATION SERVER与IBM NETEZZA®

42

12. IBM 法律免责声明

本文所包含的信息内容仅供参考。除了验证信息的完整性和准确性之外,它是以“原样”提供的且没有任何种类的明示或暗示保证。此外,这些信息是基于IBM的现有的产品计划

和策略,如有更改,恕不另行通知。对于由于使用本文或与本文相关或任何其它的相关文

档所造成的任何损失,IBM概不负责。本文中的任何内容都不打算,也无任何效果,去创建

IBM(或其供应商或授权商)的任何保证或陈述,或者对使用IBM的产品和/或软件的任何

协议或许可,更改条款和条件。

本文中的测试结果是在实验室中,可控的条件下取得的。它代表了一个优化的测试用例。

IBM不保证这些结果和个别的测试结果会有不同。

IBM,IBM logo,ibm.com、InfoSphere Information Server,及DataStage是国际商业机

器公司在美国,其他国家,或两者的商标或注册商标。这些商标和其它IBM注册术语在本

文第一次出现时,会被商标标识符号(®或者™)标记,这些符号表明在本文发表出版时,

IBM拥有这些美国注册的商标或通用商标。这些商标或通用商标可能也被注册在其他国

家。当前,所有IBM公司的商标可以在 http://www.ibm.com/legal/copytrade.shtml的

《版权和商标信息》中查询。