【R】CentOS7下Rstudio实践RMySQL及遇到的问题 三(连接mysql)

缘起

虽然hive可以直接读数据,但是实际上在使用环境中,用来plot图的,暂不会从hive里面读。应用量和使用量较小的情况下,可能更多的对DB中相关数据进行绘制图形。
公司里用的是mysql,因此,这里通过mysql提供数据源就显得比较必要。

数据准备

一台在使用中的mysql服务器。
R语言安装完毕,且可以使用。

连接mysql实操

1.安装对应R的mysql连接的环境

yum install -y mysql-server mysql-devel mysql-lib
安装完毕后,在R中安装包
>install.packages("RMySQL")
#显示
* DONE (RMySQL)

The downloaded source packages are in
        ‘/tmp/RtmpvKGxvQ/downloaded_packages’
Updating HTML index of packages in '.Library'
Making 'packages.html' ... done

表明安装成功。

数据连接MySQL

一些有用的帮助可以用help命令。
help(package=”RMySQL”) #查看RMySQL的说明文档
链接数据库可以用以下的dbConnect方法。

con <- dbConnect(MySQL(),host="114.55.108.160",dbname="hpwy",user="root",password="20150416Njhp")
#通过summary可以看到对应的描述
summary(con)
<MySQLConnection:0,0>
  User:   root 
  Host:   114.55.xxx.xxx
  Dbname: hxxx 
  Connection type: 114.55.xxx.xxx via TCP/IP 

表示已经连接上对应数据库。
然后用一个获取对应表的列表命令可以看到已经对数据库进行了操作。

dbListTables(con)
[1] "article_table"               "constant_data"              
 [3] "dynamic_page"                "element_plan"               
 [5] "general_plan"                "in_purchasing_user"         

可以看到有六张表已经被检索到

后记,其他对应sql操作

可以看到,实际上当环境配置好后,配置和链接DB是比较容易的事情。
对比Hive 可以用HQL操作,mysql的自由度更大,可以用批量sql执行代码的逻辑语句

con <- dbConnect(MySQL(),host="host",dbname="test_dw",user="user",password="password",client.flag= CLIENT_MULTI_STATEMENTS) #client.flag设置这样支持批量查询
dbSendQuery(con,'SET NAMES uft-8')
sql <- "SELECT * FROM fruits;SELECT * FROM test"
res1 <- dbSendQuery(con,sql)
dbFetch(res1, n = -1)
if (dbMoreResults(con)) {
  res2 <- dbNextResult(con)
  dbFetch(res2, n = -1)
}
dbListResults(con)
dbClearResult(res1)
dbClearResult(res2)

dbDisconnect(con)

也可以使用单独的sql语句进行操作。

dbGetQuery(con, "SELECT * FROM hxxx limit 5")

res <- dbSendQuery(con, "SELECT * FROM hxxx")
data <- dbFetch(res, n=2) #取前2条数据,n=-1时是获取所有数据
data
data <- dbFetch(res, n=-1) #取余下所有数据
data
dbClearResult(res)
dbDisconnect(con) #断开连接
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乐扣老师lekkoliu

你的鼓励是我最大的科研动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值