SAS9 技术 --SPD引擎

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

简介:SPD引擎

SPD(Scalable Performance Data )是设计用于高性能数据传送,它之所以能达到快速的数据传送是由于按特定的格式组织数据,以最大限度的利用多CPU实现并行输入/输出功能

SPD引擎使用多线程并行的快速读取数据,但相应的OS必须支持容许线程执行在现有的任意CPU上,虽然该功能是SPDE最重要的功能,但这种功能的是来自于SAS的数据存储的结构组织方面的支持,这种数据组织方式容许多线程、并行处理I/0任务的能力

然它是不能替代缺省的SAS BASE引擎的,SPDE为大数据量的高速处理提供了一种选择,特别是在读写数百万记录的时候,并且还有某些OS是不容许大于2GB的文件存在,其主要表现在以下方面:

支持上GB的数据

在多CPU机器上具有可量测性

并行WHERE处理

并行装载

并行INDEX创建

并行数据传送

固有的排序在BY时

SPDE可运行于UNIX 、WINDOWS、z/oS(只在ZFS文件系统上) 和OpenVMS Alpha(只在 ODS-5文件系统上)上

利用SMP(symmetric multiprocessing)机器

SPDE技术是充分建立在SMP机器上的,一个SMP机器有多个CPU且OS支持线程,一般来说,它具有多个控制器和多个磁盘设备,每个磁盘设备对应一个控制器,当SPDE读数据是,它运行一个或多个线程在每一个CPU上,这些线程并行的从多个磁盘设备上读取数据,这种读取很有可能是通过多CPU操控的

例如:一个完美的系统,其有5个CPU和10个磁盘设备,在进行数据读取时要比单CPU机器会快上5倍以上,除了多线程I/0外,SMP机器还能支持多线程应用,如SORT过程

如何利用SPDE组织SAS数据

因为SPDE是为高性能数据处理,故数据集的物理存储上是跟BASE SAS的的数据存储是不同的,后者是用单一文件存储数据集,其包含了数据和数据的相关描述信息,而SPDE是采用了分开的文件用来存储数据和数据描述信息,另外,如果数据集是被索引,则将会为每一个索引产生2个INDEX文件,这4种文件类型可被称为SPDE组件文件,每一种类型的文件都有它自己的文件扩展名

另外,每一个组件文件可以一个或多个物理文件组成,故它可以跨越多个卷但在引用时是作为一个逻辑文件,例如:SPDE能建立许多物理文件,但引用时可以当作一个单一的文件

描述性数据组件跟实际数据组件是不同的,表现在以下2方面:

1。你能为实际数据组件指定一个固定长度的分区尺寸,用PARTSIZE选项指定,然而,你是不能控制描述性数据组件的分区尺寸的

2。数据组件文件可以建立在不同的路径上,但描述性数据只能建立在一个单一路径下,直到路径的存储空间已满,才会使用下一个路径

元数据组件文件

其扩展名为.MDF,通常一个SPDE数据集只有一个MDF文件

索引组件文件

如果一个文件被索引,SPDE将会产生2个索引组件文件为每一个索引,HBX扩展名的文件包含了全局的索引,而.IDX文件则包含了分段的索引

数据组件文件

一个数据组件文件可被几个或多个文件组成,胜于单一一个文件,每一个文件的是固定长度的,这个长度在建立数据集时指定

特别的,分区尺寸的大小会影响你应用的执行性能,因为每一个文件是被一个线程读的

比较BASE SAS 引擎和SPD引擎

2者有很多相同处,2者都是用SAS 数据库存储数据;SAS库是一个包含多个文件和目录的东西,然而,SPDE库下的东西能存在在不同路径下,你可已在使用LIBNAME句法是指定一些数据存储的细节

一个SPDE库包含数据文件,元数据文件,索引文件,

注意的是SPDE库是不支持目录,视图,MDDB或者其他文件的

SPDE文件操作空间

SPDE文件操作空间是用于SPDE操作时所需要的额外的空间,如没有指定会使用缺省的,但当你操作大数据量的数据时,可能缺省的空间不足够大,因此,你可以用SPDEUTILLOC选项来指定SPDE文件操作空间

临时数据集存储

通过TEMP选项指定,如下

libname user spde '/mydata' temp=yes;

data a; x=1;

run;

proc print data=a;

(注:USER选项的使用使得在引用时只需使用一级名字)

2者的其他异同处

【Feature】 【SPD Engine】 【Base SAS Engine 】

分区数据集 YES NO

并行WHERE优化 YES NO

最低锁定级别 成员级别 记录级别

不同请求同时访问给出的数据集 只读 读写

支持SAS/SHARE NO YES

SAS BY时自动排序 YES NO

目录支持 NO YES

视图支持 NO YES

MDDB支持 NO YES

完整性约束 NO YES

变量数 多于32767

记录数 2的63次方-1 2的32次方-1(32位机器上)

2种引擎下数据集的互用

BSE数据集必须转化为SPDE数据集才能被SPDE访问,你可已很容易的使用COPY、APPEND过程或数据步(PROC MIGRATE除外)

另外,你已存在的SAS程序可以很好的运行在SPDE引擎下,只需做很小的修改,除了LIBNAME句法

共用SPDE文件

SPDE支持成员级的锁定,意思时多个用户可以同时读同一个SPDE数据集,然而当一个数据集在被更新时,其他用户只能访问它,如果你想支持读写,那么你需要SPD 服务器产品

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航