R 语言使用 JDBC 链接数据库

小白 R 语言使用 JDBC 笔记

1. 前言

R 语言连接数据库有两种方法,第一种是使用 RMySQL。第二种是使用 JDBC。但是我们平时会使用 R 语言连接 hive、impala 之类的,使用 JDBC 会更方便。

2. 熟悉 R 语言使用 JDBC 连接数据库的流程

2.1 首先加载 RJDBC
library(RJDBC)

如果没有安装的话需要安装一下

install.packages("RJDBC",dep = TRUE, type = "source", repos = "https://mirrors.ustc.edu.cn/CRAN/")
2.2 连接方式: jdbc() dbConnect() dbGetQuery() dbDisconnect()
  1. 函数 jdbc(驱动,地址) 得到驱动
  2. 函数 dbConnect(驱动,ip地址/数据库名,登录名,登录密码) 得到连接
  3. 函数 dbGetQuery(连接,SQL 查询语句) 进行 SQL 操作
  4. 函数 dbDisconnect(连接) 关闭连接

3. 准备驱动工具

驱动工具是指上文中 jdbc(驱动, 地址) 中的驱动,比如我们连接 hive 的话会用到的驱动工具是 org.apache.hive.jdbc.HiveDriver, 一般会把相应的 jar 包放在第二个参数「地址」里面,因为我们使用驱动 jar 的时候,驱动 jar 也会依赖各种 jar ,这个时候就需要我们把所依赖的每一个 jar 都放在「地址」里面,为了保证不缺少 jar 包,我新建了一个 maven 项目,把所依赖的库用 maven 管理好,然后打包成一个 jar 就可以了。

在 maven 的依赖中加入


  org.apache.hive
  hive-jdbc
  1.1.0


  org.apache.hadoop
  hadoop-common
  3.1.0

然后再使用下面插件打包 jar


  maven-assembly-plugin
  
    
      jar-with-dependencies
    
  
  
    
      make-assembly
      package
      
        single
      
    
  

然后执行 mvn clean compile assembly:single 就可以一个 jar 包,里面包括你所需要的依赖。
下面把 jar 包放在「地址」里面就可以。

4. 开始使用

#! /usr/bin/env Rscript
# install.packages("RJDBC", dep = TRUE)
# install.packages("rJava",  type = "source", repos = "https://mirrors.ustc.edu.cn/CRAN/")
# install.packages("DBI", type = "source", repos = "https://mirrors.ustc.edu.cn/CRAN/")
# install.packages("RJDBC",dep = TRUE, type = "source", repos = "https://mirrors.ustc.edu.cn/CRAN/")
library('rJava')
library('DBI')
library('RJDBC')
drv <- JDBC('org.apache.hive.jdbc.HiveDriver', Sys.glob("./libs/*.jar"))

conn <- dbConnect(drv, sprintf('jdbc url'), '用户名', '密码')

dbGetQuery(conn, "SQL 语句")

dbDisconnect(conn)

5. 后记

我已经把 maven 项目和 R demo 项目的代码都传到 github 上面了,感兴趣的同学可以看一下,或者有更好的方式可以说一下。

jdbc maven 驱动项目 https://github.com/brainweiyi/java-study

R 语言 Demo 项目 https://github.com/brainweiyi/R-demo

你可能感兴趣的:(R 语言使用 JDBC 链接数据库)