全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
50317 83
2012-10-12

大数据的今天,将统计软件与数据库相连,实现数据之间的互通,可大大提高工作的效率;

SAS在与各种数据库的接口方面,做得非常完善。

连接各数据库的方法,其实大同小异。

本文以SAS连接oracle为例,描述怎么搭建SAS与数据库的连接。

1.      SAS自带的接口(access接口)

SAS与主流数据库之间,如oracle,DB2,sqlserver,sybase,Teradata,都有自带的接口;


1.1首先保证oracle配置文件完整,

即Oracle安装目录\ora90\network\admin\tnsnames.ora文件

保证oracle能够成功连接到服务器;

1.2  使用libname命令

Libname  mylib oracleuser=xxx  password=xxxxx path=xxxx;

连接成功后,会发现SAS资源管理器中,出现mylib库;

1.jpg

此时可将mylib作为SAS的一个逻辑库使用。

2.      odbc接口

除了自带的接口,SAS自然还提供了数据库之间连接的通用接口—odbc接口。

1.1   配置oracle数据源

打开控制版面,找到管理工具选项

2.jpg

点击进入管理工具,找到数据源

3.jpg

4.jpg


点击添加按钮,

5.jpg

选中oracle inorahome90后点击完成,注:oracle安装好后通常会自带odbc数据源,

但有些数据库,如mysql,需要去官网下载mysqlconnector,安装后才能使用。

6.jpg


第一行,填写这个数据源的名称,这里取oracle,

第二行,描述这个数据源,相当于备注,可不填,

第三行,单机下拉列表按钮,选中要连接的服务器名称,

        前提和上面一样,Oracle安装目录\ora90\network\admin\tnsnames.ora文件配置好,

        第四行,即登录用户名称

        完成后,点击testconnection 按钮

         7.jpg

         输入密码,点击ok

          8.jpg

         连接成功说明数据源配置成功。用户DSN窗口中会出现配置好的oracle数据源


         


2.2  odbc数据源配好后,同样可以用libname命令调用

libname mylib odbc datasrc=oracle(数据源的名称) user=xxxpassword=xxx


结果和上面一样,也可以将mylib当做SAS的数据库用。

不同的是这里的引擎使是odbc,前一种方法的引擎是oracle,log中也会提示。

3.      使用sql

上述两种方法,将oracle中一个库作为SAS的一个逻辑库,操作实施会很方便,但在数据的传输效率上并不能达到最好。

要想达到最高的效率,可以使用sql语句进行数据的传输(完全依赖网络传输速度)。

同样以连接oracle为例

proc sql;

connect to oracle as mylib (user=xxx password=xxx path=xxx);

create table table_name as               

select * from connection to mylib (select…); /*括号中查询语句需符合oracle的语法*/

disconnect  from  mylib;

quit;

注:上述括号中select语句使用的是oracle服务器进行处理。


    其余数据库连接,与上述方法类似,只是不同数据库登录命令稍有不同。本文只给出几种常用的连接方法,希望有兴趣的朋友加以补充。

附件列表
8.jpg

原图尺寸 6.86 KB

8.jpg

7.jpg

原图尺寸 14.38 KB

7.jpg

6.jpg

原图尺寸 33.89 KB

6.jpg

5.jpg

原图尺寸 60.73 KB

5.jpg

4.jpg

原图尺寸 16.84 KB

4.jpg

3.jpg

原图尺寸 10.56 KB

3.jpg

2.jpg

原图尺寸 21.61 KB

2.jpg

1.jpg

原图尺寸 7.74 KB

1.jpg

9.jpg

原图尺寸 16.84 KB

9.jpg

9.jpg

原图尺寸 16.84 KB

9.jpg

二维码

扫码加我 拉你入群

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

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

全部回复
2012-10-12 17:48:49
非常感谢楼主的分享,正需要这方面知识
二维码

扫码加我 拉你入群

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

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

2012-10-14 16:04:03
好帖要顶啊
二维码

扫码加我 拉你入群

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

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

2012-10-19 16:04:27
自己顶一下吧
二维码

扫码加我 拉你入群

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

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

2012-10-22 00:15:05
proc sql;
connect to oracle as mylib (user=xxx password=xxx path=xxx);
create table table_name as               
select * from connection to mylib (select…); /*括号中查询语句需符合oracle的语法*/
disconnect  from  mylib;
quit;
////////*good*////////
二维码

扫码加我 拉你入群

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

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

2012-11-1 11:54:26
学习了 感谢分享
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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