R语言是一种自由软件编程语言与操作环境,主要用于统计分析、绘图、数据挖掘。R内置多种统计学及数字分析功能,这些功能可通过安装包(Packages)增强。RJDBC是R提供的一款基于JDBC的包,使用RJDBC,允许R调用通用的JDBC接口来访问任意关系型数据库RDBMS。
Trafodion是一款SQL on Hadoop的SQL引擎,支持标准的JDBC、ODBC接口,因此,结合R提供的RJDBC,可以让R通过JDBC连接直接访问Trafodion数据库,且可以通过执行SQL的方式查询Trafodion中的数据。本文通过实际环境介绍如何使用R通过JDBC连接Trafodion并执行Trafodion中的SQL语句。
首先,我们需要下载R,这里下载的版本为支持Windows 64位版本的R x64 3.4.2
其次,通过R的客户端命令行工具安装RJDBC包
install.packages("RJDBC",dep=TRUE)
上述命令除了会安装RJDBC,还会安装RJDBC的依赖包,包括DBI、rJava,输出如下
> install.packages("RJDBC",dep=TRUE)
--- 在此連線階段时请选用CRAN的鏡子 ---
还安装相依关系‘DBI’, ‘rJava’
试开URL’https://mirrors.eliteu.cn/CRAN/bin/windows/contrib/3.4/DBI_0.7.zip'
Content type 'application/zip' length 749198 bytes (731 KB)
downloaded 731 KB
试开URL’https://mirrors.eliteu.cn/CRAN/bin/windows/contrib/3.4/rJava_0.9-9.zip'
Content type 'application/zip' length 719432 bytes (702 KB)
downloaded 702 KB
试开URL’https://mirrors.eliteu.cn/CRAN/bin/windows/contrib/3.4/RJDBC_0.2-5.zip'
Content type 'application/zip' length 67454 bytes (65 KB)
downloaded 65 KB
程序包‘DBI’打开成功,MD5和检查也通过
程序包‘rJava’打开成功,MD5和检查也通过
程序包‘RJDBC’打开成功,MD5和检查也通过
RJDBC下载安装完成后,通过引入RJDBC类库,我们便可以调用相应的数据库连接的函数连接Trafodion数据库并执行Query了,这里需要配置Trafodion的JDBC驱动、JDBC URL信息,主要命令如下
library(RJDBC)
drv <- JDBC("org.trafodion.jdbc.t4.T4Driver", "C:\\jdbcT4-2.3.0.jar",identifier.quote="`")
conn <- dbConnect(drv, "jdbc:t4jdbc://10.10.22.152:23400/:", "zz", "zz")
dbGetQuery(conn, "select order_date,custnum from sales.orders order by 1")
以上几行命令用于通过JDBC的方式连接Trafodion,并执行查询sales.orders表的数据,输出结果为
> dbGetQuery(conn, "select order_date,custnum from sales.orders order by 1")
ORDER_DATE CUSTNUM
1 2011-01-23 7777
2 2011-02-06 926
3 2011-02-17 21
4 2011-03-03 543
5 2011-03-19 123
6 2011-03-19 123
7 2011-03-27 7654
8 2011-04-10 1234
9 2011-04-20 324
10 2011-05-12 3333
11 2011-06-01 143
12 2011-07-21 5635
13 2011-10-09 3210
至此,我们已经可以使用RJDBC实现R与Trafodion的集成了,下面我们尝试如何在R中对查询的数据进行可视化。关于可视化,R也提供了很多可用的包,其中一个比较不错的包称为ggplot2,先让我们安装ggplot2吧
install.packages("ggplot2")
接着我们利用上述的计算结果来绘制一个简单的条形图,具体命令如下
library(RJDBC)
library(ggplot2)
drv <- JDBC("org.trafodion.jdbc.t4.T4Driver", "C:\\jdbcT4-2.3.0.jar",identifier.quote="`")
conn <- dbConnect(drv, "jdbc:t4jdbc://10.10.22.152:23400/:", "zz", "zz")
res <- dbGetQuery(conn, "select order_date,custnum from sales.orders order by 1")
ggplot(res, aes(x=ORDER_DATE, y=CUSTNUM)) + geom_bar(stat="identity")
绘制出的图形如下,
关于使用R调用ggplot2绘制不同图形的命令语法在此不作详细介绍,读者有兴趣可以网上查找相关资料,这里我就简单的调用几个命令绘制不同类型的图形吧~