ITPub博客

首页 > 大数据 > Hadoop > sas 连接 mysql数据库

sas 连接 mysql数据库

Hadoop 作者:tangshanren0711 时间:2013-11-01 14:45:19 0 删除 编辑

   sas连接数据库通过其专有的access 模块来实现的。实际的项目中用到的地方很多,故记录下,这里我选择的数据库是mysql数据库。mysql数据库可以从其官网下载(http://www.mysql.com/downloads/)。下载其中的社区版本,发现跟以前的有很大的不同,甲骨文公司将其组件进行了集成。

    sas <wbr>连接 <wbr>mysql数据库

   sas access 提供了两种方式连接数据库。第一种方式就是在sas 里建立mysql 的逻辑库。

 语句如下:

    libname test mysql user=root password=sas123 database=mydb
     server=localhost port=3306;

 其中mysql是逻辑库的类型,user是用户名,默认为root,password为用户密码,database为数据库名称,server为数据库所在机器的sns,port为端口号。

  运行语句后,就可以在本地逻辑库中看见test的逻辑库,但是里面的表都看不见(不知道为何)。

新建一个数据库的表就可以直接在sas通过语句创建:

         data test.aa;

           x=1;

         run;

  或者 data test.aa;

        set sashelp.class;

       run;

    具体的sas 里面的格式和mysql里面的数据类型就要参考相应的帮助文档了。

 

 第二种就是通过 pass through 的方式,其就是在 proc sql 里面 连接操作mysql数据库。基本语句如下:

     proc sql;
      connect to mysql
       (user=root  password=sas123 server=localhost
        database=world port=3306);
      create table b as select * from connection to mysql
      (select * from city);

       execute(create table cc as select * from aa
      )by mysql;

      disconnect from mysql;

     quit;

 这样我们创建了一个sas表,这里面首先通过connect连接数据库,中间执行一些数据库操作,最后断开连接。

 这里面很多情况我们只要提交执行的mysql的sql语句,可以通过 execute 语句执行数据库里面的sql语句即可。

   这两种方式其唯一的区别就是前者对数据库的操作只能用sas 语句,而后者可以在execute 里面执行数据库特定的sql语句,所以具体使用何种还要看使用的场景 。 这里注意sas 连接数据库需要相应数据库的odbc,否则上面的语句执行会报错的。

   个人感觉sas连接数据库这方面相对比R方便点,语句简单,且其支持的数据库很多(包含hadoop);但r对数据的操作更为灵活,相对sas。

    

   

 

<!-- 正文结束 -->

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23212708/viewspace-1119877/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2010-01-19