全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
9895 10
2009-12-08
前一段时需要利用海量数据作分析,需要sas与db2的链接,在网上搜了很久,发现相关的内容较少,实践之后把我的体会写出来与大家分享。
服务器界面:win server2003  
本机界面:win vista home (官方说明称sas9.2不能在vista home上使用,我测试了常用功能没问题,更多的功能没有测试,不过proc freq命令容易出错,尝试多次就ok)
sas版本:sas9.2

sas处理db2的数据至少有两种截然不同的方法:
1、直接读取db2的数据,不在逻辑库中建立数据
  优点:能够节省本地空间,减少本地运算量,适用于本机性能不太好的用户;
  缺点:对于表名为中文以及表字段名为中文的数据不能够识别,没办法链接(我们的集市是中文表明与字段名,尝试很多次不能成功),但是字段取值是中文的可以识别。
example:
libname DM db2 user=*******  password=******
    database=db schema=X;
proc sql;
select  *
    from x.xx;
  run;

2、复制db2数据表到逻辑库中
    优点:表字段名可以是中文(sas直接把中文字段名作为标注,更改字段名称,依次会更改为_col0,_col1......对于字段名称不敏感的可以进行对应,不会增加太多工作量),同时可以在逻辑库中任意编辑新的数据文件;
    缺点:占用大量的磁盘空间,运行速度可能较慢,依旧不支持中文表名。
example:

proc sql;
connect to db2 as aa(database=DM user=yangzh pwd=yangzihao);/*aa是虚拟表名,可以按照规则任意命名,但要保证前后一致*/
  create table bb as select * /*bb是逻辑库中的名称,如果已经建立了逻辑库名xx,那么就应该是xx.bb*/
   from connection to aa (select * from orig_ppm.product);
quit;

如果在使用中有什么问题,欢迎大家沟通。
希望能够给大家带来一定的帮助。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2009-12-8 11:01:51
houtiao 发表于 2009-12-8 09:43
前一段时需要利用海量数据作分析,需要sas与db2的链接,在网上搜了很久,发现相关的内容较少,实践之后把我的体会写出来与大家分享。
服务器界面:win server2003  
本机界面:win vista home (官方说明称sas9.2不能在vista home上使用,我测试了常用功能没问题,更多的功能没有测试,不过proc freq命令容易出错,尝试多次就ok)
sas版本:sas9.2

sas处理db2的数据至少有两种截然不同的方法:
1、直接读取db2的数据,不在逻辑库中建立数据
  优点:能够节省本地空间,减少本地运算量,适用于本机性能不太好的用户;
  缺点:对于表名为中文以及表字段名为中文的数据不能够识别,没办法链接(我们的集市是中文表明与字段名,尝试很多次不能成功),但是字段取值是中文的可以识别。
example:
libname DM db2 user=*******  password=******
    database=db schema=X;
proc sql;
select  *
    from x.xx;
  run;

2、复制db2数据表到逻辑库中
    优点:表字段名可以是中文(sas直接把中文字段名作为标注,更改字段名称,依次会更改为_col0,_col1......对于字段名称不敏感的可以进行对应,不会增加太多工作量),同时可以在逻辑库中任意编辑新的数据文件;
    缺点:占用大量的磁盘空间,运行速度可能较慢,依旧不支持中文表名。
example:

proc sql;
connect to db2 as aa(database=DM user=yangzh pwd=yangzihao);/*aa是虚拟表名,可以按照规则任意命名,但要保证前后一致*/
  create table bb as select * /*bb是逻辑库中的名称,如果已经建立了逻辑库名xx,那么就应该是xx.bb*/
   from connection to aa (select * from orig_ppm.product);
quit;

如果在使用中有什么问题,欢迎大家沟通。
希望能够给大家带来一定的帮助。
LZ,
首先,SAS连接数据库的文章可以说是海量,怎么说“发现相关的内容较少”呢?对于第二点“运行速度可能较慢”不知道是说的哪一方面比较慢?
参考这一篇帖子,里面的内容或许有帮助
http://www.pinggu.org/bbs/viewthread.php?tid=618356&from^^uid=827635
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2009-12-8 12:44:28
首先,SAS连接数据库的文章可以说是海量,怎么说“发现相关的内容较少”呢?对于第二点“运行速度可能较慢”不知道是说的哪一方面比较慢?
参考这一篇帖子,里面的内容或许有帮助
http://www.pinggu.org/bbs/viewthread.php?tid=618356&from^^uid=827635
1、文章少指的是中文的较少,你说的两篇文章早上看到了,没有细看,不过如果解决问题帮助文件就可以了,只是在实践中会有不同的认识,看帮助是体会不到的。
2、速度慢是指 将db2中的文件复制到本地,由于数据量较大,运行速度较慢;另外,在sas中处理海量数据运行速度也是不是很快。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2009-12-8 16:53:11
这个可能是你的option 参数没有设置好,一般来说,数据量300个字段,1kw数据量,好像也只需要3-4分钟吧,
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2009-12-8 20:58:55
其实可以创建ODBC连接,然后通过SAS就可以轻松访问大型数据库。我就是这样访问ORACLE数据库的。效率不错。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2009-12-10 10:52:16
5# roki 哦?确定么,我还以为odbc连接是指外部应用程序连接sas用的
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群