第8章数据装载与数据集管理..

上传人:今*** 文档编号:107762713 上传时间:2019-10-20 格式:PPT 页数:49 大小:633.50KB
返回 下载 相关 举报
第8章数据装载与数据集管理.._第1页
第1页 / 共49页
第8章数据装载与数据集管理.._第2页
第2页 / 共49页
第8章数据装载与数据集管理.._第3页
第3页 / 共49页
第8章数据装载与数据集管理.._第4页
第4页 / 共49页
第8章数据装载与数据集管理.._第5页
第5页 / 共49页
点击查看更多>>
资源描述

《第8章数据装载与数据集管理..》由会员分享,可在线阅读,更多相关《第8章数据装载与数据集管理..(49页珍藏版)》请在金锄头文库上搜索。

1、第8章 数据装载与数据集管理,数据装载与数据集管理,SAS功能的强大之处还在于SAS与关系数据库的结合应用,强强联合。 SAS对海量数据的处理能力使SAS在金融行业、电信行业、医药行业处于数据处理的领先地位。,Append过程,Append过程是SAS系统已经编译好的过程,实现把一个数据集或关系数据库表的数据添加到一个新数据集或数据库表中。 通过append过程可以根据需求用where语句等条件过滤。 Appended过程同时可以实现把数据文件生成的数据集装载到数据库表中等功能。,Append过程语法,Append过程是SAS系统已经编译好的过程,实现把一个数据集或关系数据库表的数据添加到一个

2、新数据集或数据库表中。 通过append过程可以根据需求用where语句等条件过滤。 Appended过程同时可以实现把数据文件生成的数据集装载到数据库表中等功能。,Append过程语法,Append过程是把一个数据集装载到另一个数据集或数据仓库或关系数据库中的表中。 语法格式: Proc append base=数据集名 ; Proc:过程关键字,指明用来调用SAS内部过程。 Append:调用的过程名。 Append过程说明如下:,表8-1 append过程说明,功能:实现把一个数据集中的数据追加到另一个数据集中或关系数据库的表中。 【注意】append过程运行时先读取base=数据集名和

3、data=数据集名两个数据集的描述信息,看数据集各自的对应变量、类型和变量长度是否一致,如果base=数据集中的变量在data=数据集中不存在,base=数据集中的相应变量为缺失值,用点(.)表示;如果data=数据集中的相应变量在对应的base=数据集中没有找到,此时追加数据的过程不会被执行,如果加上force参数,这些缺失的变量在base=数据集中会被删除,程序会继续执行下去;,如果base=数据集中的变量和data=数据集中的变量相同类型不一致,SAS会报错并停止执行,加上force可以强制执行,但以base=数据集中的变量为数据类型。 说明:实际应用中,append过程中的base=和

4、data= 指明的两个数据集或关系数据库中的表其数据结构一 样.实现数据追加,也就是装载,不对data=数据集做任何处理。同时,如果重复运行append过程,base=指定数据集或表数据会出现重复数据。,Append过程应用实例,Append 过程可以实现数据集装载。 Append过程对两个结构相同的数据集进行装载,相当于一个复制功能,只是append过程是将选取的一个数据集的数据追加到另一个数据集,对源数据集不做处理。 1.两个数据集的数据结构一样,即数据集定义的变量名和类型都一样。,【注意】,通过append过程实现了把班级class2的数据追加到班级class1中,实现了数据的合并。虽然

5、data步通过set语句也可以实现,但data步要对两个数据集处理后才生成新数据集, 而append过程只是追加数据,不对源数据集 进行处理,append步执行效率高。,Append过程应用实例,2. base=语句中的数据集为空数据集 Base=语句中的数据集为空数据集,不存在,即只是给“base=”语句赋了一个数据集名称,数据集之前没有被创建,通过append过程,把“data=”语句指明的数据集追加到“base=”语句中的数据集。,Append过程应用实例,3. data=语句中的数据集有选择地追加数据 Append过程中的“data=”语句中可以使用data步具有的条件语句,有选择地追

6、加数据,也就是过滤条件语句的应用。 4.force选项的应用 Append过程中,对于“base=”语句中指定的数据集与“data=”语句中指定的数据集中的变量不完全匹配的情况下如果需要追加数据,必须用force选项强迫追加。,SAS与oracle数据库连接,Append过程与oracle关系数据库结合,体现了SAS系统与关系数据库强大的交互能力,通过append过程可以把SAS数据集装载到oracle数据库对应目标表中。 SAS系统与oracle关系数据库建立连接的方式有以下三种方式。,1.通过逻辑库建立SAS与oracle关系数据库的连接通道和断开通道 语法格式: libname 逻辑库名

7、 库引擎 user=登录数据库用户名 password=登录数据库密码 path=登录数据库实例; 【语法解读】“库引擎”为连接关系数据库的库引擎,如连接oracle关系数据库,其库引擎为“oracle”,对于连接不同的关系数据库其库引擎是不同的。 通过逻辑库建立SAS与oracle关系数据库连接的通道,用户要知道登录数据库的用户名、密码和登录数据库实例。,对于逻辑库建立SAS与关系数据库连接的通道,可以通过以下语句取消逻辑库的连接通道,实际应用中对不再需要的连接通道要断开,以提高程序效率,减轻负载。 语法格式: libname 逻辑库名 clear; 【语法解读】逻辑库名是准备断开与关系数据

8、库连接的逻辑库名称; clear是取消连接逻辑库的关键字,告诉SAS系统断开与此逻辑库的连接。,2.通过宏变量建立SAS与oracle关系数据库的连接通道,语法格式: %let 宏变量名=user=登录数据库用户名 password=登录数据库密码 path=登录数据库实例; 【语法解读】“%let”是定义宏变量的关键字,宏变量名是用户自己起的变量名,后面是登录数据库实例的用户名、密码和数据库实例信息。,3.通过sql过程建立SAS与关系数据库的连接,语法格式: proc sql Connect to oracle (user=登录数据库用户名 password=登录数据库密码 path=登录

9、数据库实例); Disconnect from oracle; Quit;,3.通过sql过程建立SAS与关系数据库的连接,【语法解读】通过sql过程,使用sql过程语句建立SAS与关系数据库的连接通道。 (1)“connect to oracle”是连接oracle数据库的语句, 是固定的,括号内为登录数据库的用户名、密码和登录数据库实例信息。 (2)“disconnect from oracle”是断开SAS与oracle数据库连接的语句.,Append与oracle数据库结合应用,Append过程装载“data=”语句指明的数据集到oracle数据库表中,对“base=”语句指明的表,表

10、中的一些变量属性要进行设置。 Base=语句中,对oracle数据库而言常用的变量属性设置语句如下。 1. bulkload=选项 对于将SAS中的数据集装载到oracle数据库表中,append过程对“bulkload=”语句的设置可以告诉SAS系统是用oracle的sql.load方式装载,还是不用 sql.load方式装载。,【注意】bulkload=yes是数据装载到oracle数据库表中最快的方式。 Bulkload=no选择以事务形式插入行,以下选项都可以有效设置: dbcomit=、dbforce=、 Errlimit=、insertbuff=、nullchar=和nullcha

11、rval=。通过对这些选项的设置来提高插入数据到oracle数据库表中的效率,同时还可以对变量进行设置,告诉oracle插入数据的类型,是一种更准确的数据装载。,对于大数据量,不需要精确值的可以用bulkload=yes的方式,交给oracle数据库用sql*loader方式装载。切记对列变量为日期或数值类型的、需要精确定义的不要选此方式,数据会装不进去而报错。 表8-2 bulklod=选项说明,2. Dbsastype=选项 该选项指明装载到oracle数据库表中的变量的数据类型,告诉oracle此装载变量是什么类型,如日期还是数值类型。默认此选项忽略。 语法格式: dbsastype=(

12、) 【语法解读】多个数据库列名对应SAS数据类型用空格分隔。通过此选项可以改变默认数据类型。 【注意】(1)列名1至n指的是oracle数据库表中的列名. (2)SAS数据集中的数据类型指的是SAS定义的变量数据类型,可以取的数据类型如下:char(长度)、numeric、 Datatime、date和time.,3. insertbuff=选项 该选项定单个oracle执行时缓冲区中一次批量提交插入的行数。默认是对逻辑库语句libname中加入此项。此选项的合理设置可以提高程序装载数据到oracle表中的效率,具体要根据实际操作系统环境设置insertbuff=的合适值,并不是越大越好。 语

13、法格式:insertbuff=正整数值; 【注意】如果指定dbcommit=选项,指定一次提交的记录数,insertbuff=无效。,3. nullchar=与nullcharval=选项 nullchar=选项指定对数据库中的表做插入或更新时缺失值的处理方式,一般和nullcharval一起使用,选项设置如下表: 表8-3 nullchar=选项设置,【注意】nullchar=与nullcharval=通常一起应用。 nullcharval=在想数据库中的表插入或更新数据时,对SAS数据集中缺失的字符值定义替换的字符串。 语法格式:nullcharval=字符串 【注意】如果nullchar

14、val=指定的字符串比列定义的最大长度大,用dbforce=yes选项,替换串被截取到合适定义长度;用dbforce=no选项,则替换失败。,宏过程调用append过程应用,宏过程可以实现功能的封装,通过宏过程内部调用append过程实现数据的追加。 语法格式:%macro 宏名 (v_parameter1, v_parameter2); Proc append base=,% macro: 宏过程开始标志。 宏名 (v_parameter1, v_parameter2):定义的宏名称,并定义了两个宏参数。 Append:过程步所调用的过程名。 % mend:宏结束标志。 【注意】%宏名(实参

15、):调用宏过程,Dbload过程,Dbload过程可以创建oracle数据库表,并通过load方式装载数据到oracle数据库表中,通过SAS/access模块接口连接oracle关系数据库。对于数据要求不是很严格的,可以通过此方式装载数据。 实际开发中经常用dbload过程装载数据到oracle关系数据库中,效率还是比较低的。,语法格式: Proc dbload dbms=oracle数据集名; 基本语句; Run; Dbload:SAS内部的dbload过程名。 Dbms=oracle:指明是连接oracle库引擎中的文件,如果是其他类型,不是连接oracle数据库,可以替换此项。 dbm

16、s=oracle数据集名:指定输入的数据集,省略此项时,默认是当前创建的最新数据集。,Append:加入此项是告诉SAS系统把数据集追加到 Oracle的目标表中,此语句是和table=语句一起使用。 表8-4 dbload常用基本语句,数据步数据装载,数据步和连接oracle数据库的逻辑库结合,可以把数据集装载到oracle关系数据库中,这也是一种装载方式。语法格式如下: Libname 逻辑库名 oracle user=登录数据库用户名 Password=登录数据库密码 path=登录数据库实例; Data 逻辑库名.表名; Set 数据集名; Run;,【语法解读】,首先建立连接数据库的逻辑库。对于数据集不是存储在work临时逻辑库中的,要建立存储路径逻辑库. Data 逻辑库名.表名:指定数据集装载到oracle 数据库目标表中,表不存在时自动创建。 Set: set语句读入要装载的数据集。 【注意】数据步装载数据集到oracle数据库中,在数据步创建的新数据集指定bulkload=yes,告诉SAS 系统使用oracle的sql*loader方式装载。,Sql过程

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号