版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第8章章 数据装载与数据集管理数据装载与数据集管理数据装载与数据集管理数据装载与数据集管理vSAS功能的强大之处还在于SAS与关系数据库的结合应用,强强联合。vSAS对海量数据的处理能力使SAS在金融行业、电信行业、医药行业处于数据处理的领先地位。Append过程vAppend过程是SAS系统已经编译好的过程,实现把一个数据集或关系数据库表的数据添加到一个新数据集或数据库表中。 通过append过程可以根据需求用where语句等条件过滤。 Appended过程同时可以实现把数据文件生成的数据集装载到数据库表中等功能。Append过程语法vAppend过程是SAS系统已经编译好的过程,实现把一
2、个数据集或关系数据库表的数据添加到一个新数据集或数据库表中。 通过append过程可以根据需求用where语句等条件过滤。 Appended过程同时可以实现把数据文件生成的数据集装载到数据库表中等功能。Append过程语法vAppend过程是把一个数据集装载到另一个数据集或数据仓库或关系数据库中的表中。v语法格式:vProc append base=数据集名v;vProc:过程关键字,指明用来调用SAS内部过程。vAppend:调用的过程名。vAppend过程说明如下:表8-1 append过程说明选项选项说明说明Base=定义目标数据集名或数据库表名,把data=源数据集或数据库表追加到ba
3、se=数据集或数据库表中,可以具有数据集选项设置。Data=指明源数据集名或数据库表名,即data=数据集名或数据库表名具有的数据要添加到base=指定的目录数据集名或关系数据库表名中force强制追加源数据集或表到目标数据集或表,可选项。v功能:实现把一个数据集中的数据追加到另一个数据集中或关系数据库的表中。【注意】append过程运行时先读取base=数据集名和data=数据集名两个数据集的描述信息,看数据集各自的对应变量、类型和变量长度是否一致,如果base=数据集中的变量在data=数据集中不存在,base=数据集中的相应变量为缺失值,用点(.)表示;如果data=数据集中的相应变量在
4、对应的base=数据集中没有找到,此时追加数据的过程不会被执行,如果加上force参数,这些缺失的变量在base=数据集中会被删除,程序会继续执行下去;v如果base=数据集中的变量和data=数据集中的变量相同类型不一致,SAS会报错并停止执行,加上force可以强制执行,但以base=数据集中的变量为数据类型。v说明:实际应用中,append过程中的base=和data=v指明的两个数据集或关系数据库中的表其数据结构一v样.实现数据追加,也就是装载,不对data=数据集做任何处理。同时,如果重复运行append过程,base=指定数据集或表数据会出现重复数据。Append过程应用实例vAp
5、pend 过程可以实现数据集装载。vAppend过程对两个结构相同的数据集进行装载,相当于一个复制功能,只是append过程是将选取的一个数据集的数据追加到另一个数据集,对源数据集不做处理。v1.两个数据集的数据结构一样,即数据集定义的变量名和类型都一样。【注意】v通过append过程实现了把班级class2的数据追加到班级class1中,实现了数据的合并。虽然data步通过set语句也可以实现,但data步要对两个数据集处理后才生成新数据集,v而append过程只是追加数据,不对源数据集v进行处理,append步执行效率高。Append过程应用实例v2. base=语句中的数据集为空数据集v
6、Base=语句中的数据集为空数据集,不存在,即只是给“base=”语句赋了一个数据集名称,数据集之前没有被创建,通过append过程,把“data=”语句指明的数据集追加到“base=”语句中的数据集。Append过程应用实例v3. data=语句中的数据集有选择地追加数据vAppend过程中的“data=”语句中可以使用data步具有的条件语句,有选择地追加数据,也就是过滤条件语句的应用。v4.force选项的应用vAppend过程中,对于“base=”语句中指定的数据集与“data=”语句中指定的数据集中的变量不完全匹配的情况下如果需要追加数据,必须用force选项强迫追加。SAS与ora
7、cle数据库连接vAppend过程与oracle关系数据库结合,体现了SAS系统与关系数据库强大的交互能力,通过append过程可以把SAS数据集装载到oracle数据库对应目标表中。vSAS系统与oracle关系数据库建立连接的方式有以下三种方式。v1.通过逻辑库建立SAS与oracle关系数据库的连接通道和断开通道v语法格式: libname 逻辑库名 库引擎 user=登录数据库用户名 password=登录数据库密码 path=登录数据库实例;v【语法解读】“库引擎”为连接关系数据库的库引擎,如连接oracle关系数据库,其库引擎为“oracle”,对于连接不同的关系数据库其库引擎是不
8、同的。v 通过逻辑库建立SAS与oracle关系数据库连接的通道,用户要知道登录数据库的用户名、密码和登录数据库实例。v对于逻辑库建立SAS与关系数据库连接的通道,可以通过以下语句取消逻辑库的连接通道,实际应用中对不再需要的连接通道要断开,以提高程序效率,减轻负载。v语法格式: libname 逻辑库名 clear;v【语法解读】逻辑库名是准备断开与关系数据库连接的逻辑库名称; clear是取消连接逻辑库的关键字,告诉SAS系统断开与此逻辑库的连接。2.通过宏变量建立SAS与oracle关系数据库的连接通道v语法格式: %let 宏变量名=user=登录数据库用户名 password=登录数据
9、库密码 path=登录数据库实例;v【语法解读】“%let”是定义宏变量的关键字,宏变量名是用户自己起的变量名,后面是登录数据库实例的用户名、密码和数据库实例信息。3.通过sql过程建立SAS与关系数据库的连接v语法格式: proc sql vConnect to oracle (user=登录数据库用户名 password=登录数据库密码 path=登录数据库实例);vDisconnect from oracle;vQuit;3.通过sql过程建立SAS与关系数据库的连接v【语法解读】通过sql过程,使用sql过程语句建立SAS与关系数据库的连接通道。v(1)“connect to orac
10、le”是连接oracle数据库的语句, 是固定的,括号内为登录数据库的用户名、密码和登录数据库实例信息。v(2)“disconnect from oracle”是断开SAS与oracle数据库连接的语句.Append与oracle数据库结合应用vAppend过程装载“data=”语句指明的数据集到oracle数据库表中,对“base=”语句指明的表,表中的一些变量属性要进行设置。vBase=语句中,对oracle数据库而言常用的变量属性设置语句如下。v1. bulkload=选项v对于将SAS中的数据集装载到oracle数据库表中,append过程对“bulkload=”语句的设置可以告诉SA
11、S系统是用oracle的sql.load方式装载,还是不用vsql.load方式装载。v【注意】bulkload=yes是数据装载到oracle数据库表中最快的方式。vBulkload=no选择以事务形式插入行,以下选项都可以有效设置: dbcomit=、dbforce=、vErrlimit=、insertbuff=、nullchar=和nullcharval=。通过对这些选项的设置来提高插入数据到oracle数据库表中的效率,同时还可以对变量进行设置,告诉oracle插入数据的类型,是一种更准确的数据装载。v对于大数据量,不需要精确值的可以用bulkload=yes的方式,交给oracle数
12、据库用sql*loader方式装载。切记对列变量为日期或数值类型的、需要精确定义的不要选此方式,数据会装不进去而报错。v表8-2 bulklod=选项说明bulkload 说说 明明yesBulkload=yes,调用oracle的sql*loader方式装载noBulkoad=no,调用SAS系统的SAS/access模块动态逻辑库引擎装载数据到oracle表中。v2. Dbsastype=选项v该选项指明装载到oracle数据库表中的变量的数据类型,告诉oracle此装载变量是什么类型,如日期还是数值类型。默认此选项忽略。v语法格式: dbsastype=()v【语法解读】多个数据库列名对
13、应SAS数据类型用空格分隔。通过此选项可以改变默认数据类型。v【注意】(1)列名1至n指的是oracle数据库表中的列名.v(2)SAS数据集中的数据类型指的是SAS定义的变量数据类型,可以取的数据类型如下:char(长度)、numeric、vDatatime、date和time.v3. insertbuff=选项v该选项定单个oracle执行时缓冲区中一次批量提交插入的行数。默认是对逻辑库语句libname中加入此项。此选项的合理设置可以提高程序装载数据到oracle表中的效率,具体要根据实际操作系统环境设置insertbuff=的合适值,并不是越大越好。v语法格式:insertbuff=正
14、整数值;v【注意】如果指定dbcommit=选项,指定一次提交的记录数,insertbuff=无效。v3. nullchar=与nullcharval=选项vnullchar=选项指定对数据库中的表做插入或更新时缺失值的处理方式,一般和nullcharval一起使用,选项设置如下表: 表8-3 nullchar=选项设置Nullchar=取值取值说明说明SAS数据库中的表允许空时,SAS数据集中的字符类型变量缺失值以空处理,其他情况下取nullcharval=值yes数据库中的表允许空时,SAS数据集中的字符类型变量缺失值以空处理,其他情况下以错误返回no指定SAS数据集中的缺失字符类型值以n
15、ullcharval=值替换v【注意】nullchar=与nullcharval=通常一起应用。vnullcharval=在想数据库中的表插入或更新数据时,对SAS数据集中缺失的字符值定义替换的字符串。v语法格式:nullcharval=字符串v【注意】如果nullcharval=指定的字符串比列定义的最大长度大,用dbforce=yes选项,替换串被截取到合适定义长度;用dbforce=no选项,则替换失败。宏过程调用append过程应用v宏过程可以实现功能的封装,通过宏过程内部调用append过程实现数据的追加。v语法格式:%macro 宏名 (v_parameter1, v_parame
16、ter2);vProc append base=&v_parameter 1 data=&v_parameter2;v%mend;v% macro: 宏过程开始标志。v宏名 (v_parameter1, v_parameter2):定义的宏名称,并定义了两个宏参数。vAppend:过程步所调用的过程名。v% mend:宏结束标志。v【注意】%宏名(实参):调用宏过程Dbload过程vDbload过程可以创建oracle数据库表,并通过load方式装载数据到oracle数据库表中,通过SAS/access模块接口连接oracle关系数据库。对于数据要求不是很严格的,可以通过此方式
17、装载数据。v实际开发中经常用dbload过程装载数据到oracle关系数据库中,效率还是比较低的。v语法格式:vProc dbload dbms=oracledata=数据集名;v基本语句;vRun;vDbload:SAS内部的dbload过程名。vDbms=oracle:指明是连接oracle库引擎中的文件,如果是其他类型,不是连接oracle数据库,可以替换此项。vdbms=oracledata=数据集名:指定输入的数据集,省略此项时,默认是当前创建的最新数据集。vAppend:加入此项是告诉SAS系统把数据集追加到vOracle的目标表中,此语句是和table=语句一起使用。 表8-4
18、dbload常用基本语句基本语句基本语句说明说明Table=指定在指定在oracle数据库中要创建的表名数据库中要创建的表名User=指定登录指定登录oracle数据库的用户名数据库的用户名Orapw=指定登录指定登录oracle数据库的密码数据库的密码Tablespace=指定指定oracle数据库表存储数据的表空间数据库表存储数据的表空间Path=指定登录指定登录oracle数据库的实例数据库的实例Accdesc=指定连接指定连接oracle数据库的描述数据库的描述Delete=指定删除数据集不需要的变量指定删除数据集不需要的变量Where=选择数据集自己装载到选择数据集自己装载到orac
19、le数据库目标表数据库目标表Load=提交数据装载,相当于数据库中的提交数据装载,相当于数据库中的commit数据步数据装载v数据步和连接oracle数据库的逻辑库结合,可以把数据集装载到oracle关系数据库中,这也是一种装载方式。语法格式如下:vLibname 逻辑库名 oracle user=登录数据库用户名vPassword=登录数据库密码 path=登录数据库实例;vvData 逻辑库名.表名;vSet 数据集名;vRun;【语法解读】v首先建立连接数据库的逻辑库。对于数据集不是存储在work临时逻辑库中的,要建立存储路径逻辑库.vData 逻辑库名.表名:指定数据集装载到oracl
20、e 数据库目标表中,表不存在时自动创建。vSet: set语句读入要装载的数据集。v【注意】数据步装载数据集到oracle数据库中,在数据步创建的新数据集指定bulkload=yes,告诉SASv系统使用oracle的sql*loader方式装载。Sql过程数据装载vSql过程实现数据集装载到oracle数据库目录表中,也是实现数据装载的一种方式,可以加入选项语句设置装载方式。语法格式如下:vlibname 逻辑库名 oracle user=登录数据库用户名vpassword=登录数据库密码 path=登录数据库实例;vvproc sql noprint;vcreate table 逻辑库名.
21、表名 vas select * from 数据集名;vrun;语法解读vSql过程装载利用了“create table”创建表语句,相当于把“select * from”查询出来的数据集信息装载到所创建的表。v表8-5 常用选项说明选项选项说明说明bulkload指定是否用oracle的sql*loader方式Bl_options指定sql*loader方式允许的错误条数,默认值为1000000Bl_delete_datafile删除产生的数据文件Sort过程数据集整理vSort过程主要用来对数据集进行排序,根据by语句指定的变量对数据集排序,同时可以将过滤出来的重复记录输出到另一个数据集存储
22、。v语法格式:proc sort ;vBy 变量名1 变量名2;vRun;v表8-6 sort过程常用选项说明v【注意】force是对有索引的想强制排序和替换选项选项说明说明v表8-7 指定按类型排序选项【注意】by: by语句指定排序变量,默认为升序,指定多个排序变量时用空格分隔,排序时sort过程先按by语句指定的第一个变量排序,然后再按第二个变量排序,依次类推。选项选项说明说明ASCII指定按ASCII码排序EBCDIC指定按EBCDIC码排序DANISH指定按DANISH码排序FINNISH指定按FINNISH码排序NORWEGIAN指定按NORWEGIAN码排序SWEDISH指定按S
23、WEDISH码排序NATIONAL指定按习惯顺序排序SORTSEQ指定按上面所列任一类型排序v1.dupout=选项与nodupkey=语句的联合应用vDupout=选项指定数据集名,此数据集存放过滤掉的重复数据信息,此项必须与nodupkey或noduprecs任一项一起使用。v2.dupout=选项与noduprecs语句的联合应用vNoduprecs删除完全相同的记录,不根据id判断。v【注意】使用dupout=语句指定时对原数据集进行了修改。v3.out=语句应用vOut=语句将排好序的数据集输出到out=语句指定的数据集保存,对原数据集不做修改,保存原数据集原样。v【注意】两点关于选
24、项区别的总结v(1)out=与dupout=的不同之处:vOut=:将原数据集排好序的数据集输出到out=语句指定的数据集存储,对原数据集不做任何修改。vdupout=: 对原数据进行了修改,去掉重复数据,同时将删除的重复数据存储到dupout=语句指定的数据集中。此选项要与nodupkey或noduprecs中的一个选项一起使用才有效。v(2)nodupkey与noduprecs的不同之处:vNodupkey:根据by语句指定的变量,删除重复数据。vNoduprecs:删除完全相同的观测记录。Datasets过程数据集整理vDatasets过程主要用来管理SAS数据逻辑库中的成员,通过这个过
25、程,可以实现对逻辑库中的成员输出列表、改名、添加或修改逻辑库成员中的信息等功能;能改变变量名,并可以定义输出格式、输入格式和变量标签,其中append过程、contents过程和copy过程都可以在此过程中使用。Datasets过程语法vDatasets过程的功能比较强大,该过程默认处理的数据库成员信息是对临时库work中的成员进行处理,如果要处理其他逻辑库中的成员信息,必须用逻辑库语句指定。v语法格式: proc datasets ;v基本操作语句;vRun;v表8-8 dataset过程的选项说明选项选项说明说明detalls指定日志信息中包含观测数、变量数、索引数和数据集标签nodetalls指定日志信息中不包含观测数、变量数、索引数和数据集标签force遇到错误,强制执行kill删除逻辑库中对应的所有成员Memtype=限制逻辑库中某个类型成员的处理nolist不打印输出逻辑库中成员的信息nowran对于语句中成员不在当前逻辑库中的错误信息,不输出错误信息pw对此逻辑库指定读、写或更改访问权限Read=对此逻辑库指定读访问权限Datasets过程基本语句v1. append语句v语法格式:append base=数据集名 data=数据集名;v语法解读:append 语句实现数据追加功能,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025陕西宝石花油气技术服务有限公司宝鸡分公司招聘(310人)笔试历年难易错考点试卷带答案解析
- 2025重庆建安仪器有限责任公司招聘12人笔试历年备考题库附带答案详解
- 2025辽宁沈阳市城市建设投资集团有限公司所属企业沈阳新基发展有限公司招聘16人笔试历年常考点试题专练附带答案详解
- 2025西安秦达物业管理有限责任公司招聘(10人)笔试历年备考题库附带答案详解
- 2025福建福州市鼓楼区国有资产投资发展集团有限公司第二轮招聘7人笔试历年备考题库附带答案详解
- AI技术辅助古籍的知识图谱构建技术
- 2025四川绵阳湖山电器股份有限公司招聘人事专员1人笔试历年备考题库附带答案详解2套试卷
- 大型公建项目预留预埋施工方案
- 《聊斋志异》读后感范文100字
- 小学五年级数学(人教版上册)核心知识清单与教学全解
- 精神科社交技能沟通训练
- GB/T 18692-2025农业灌溉设备直动式压力调节器
- 2025年中国葫芦工艺品行业研究报告
- 小儿营养性贫血课件
- 两位数乘两位数竖式笔算练习300题(带答案)
- 财务知识零基础入门培训课件
- 《机场干连接装配式水泥混凝土道面技术规范》
- 工程设备维修保养记录与计划表
- 白内障手术后复查制度
- 2025年贵州省公路建设养护集团有限公司公开招聘笔试参考题库附带答案详解
- 危重护理记录书写
评论
0/150
提交评论