技术 | EsgynDB 集成R实现数据可视化
R语言是一种自由软件编程语言与操作环境,主要用于统计分析、绘图、数据挖掘。R内置多种统计学及数字分析功能,这些功能可通过安装包(Packages)增强。RJDBC包是R语言中用来在DBI接口基础上实现的JDBC接口,它使得我们可以使用JDBC接口方式来读写数据库。它需要预先设置Java环境,并找到对应数据库的JDBC Driver。
EsgynDB基于开源的Apache Trafodion,Apache Trafodion是一款SQL on Hadoop的SQL引擎,支持标准的JDBC、ODBC接口。结合R中的RJDBC包,可以让R直接通过JDBC连接的方式访问Trafodion数据库,并可以通过执行SQL的方式操作Trafodion中的数据。本文通过实验环境演示如何使用R通过JDBC访问Trafodion并执行Trafodion中的SQL语句实现查询及数据可视化。
1.安装EsgynDB 2.3企业版集群环境
2.安装R x64 3.4.2 Windows版
3.安装RJDBC包(使用JDBC连接EsgynDB)
4.准备EsgynDB 2.3对应的JDBC驱动包(jdbcT4-2.3.0.jar)
5.安装ggplot2包(数据可视化)
//安装RJDBC及ggolot2工具包
install.packages("RJDBC",dep=TRUE)
install.packages("ggplot2")
//引用类库
library(RJDBC)
library(ggplot2)
//创建Trafodion数据库连接
//1. drv 驱动
//2. 数据库连接地址
//3. 用户名
//4. 密码
drv <- JDBC("org.trafodion.jdbc.t4.T4Driver", "C:\\jdbcT4-2.3.0.jar",identifier.quote="`")
conn <- dbConnect(drv, "jdbc:t4jdbc://192.168.0.16:23400/:", "zz", "zz")
//将ggplot2自带的mpg数据集导入Trafodion
//由于mpg中两列包含关键字可能导致默认建表失败,手动修改对应字段名称
names(mpg)[names(mpg)=="year"]="year1"
names(mpg)[names(mpg)=="class"]="class1"
dbWriteTable(conn, "seabase.mpg", mpg)
//统计总行数
dbGetQuery(conn, "select count(*) from seabase.mpg ")
//列出前5行
dbGetQuery(conn, "select * from seabase.mpg limit 5 ")
//关闭数据库连接
dbDisconnect(conn)
//引用类库
library(RJDBC)
library(ggplot2)
//创建Trafodion数据库连接
drv <- JDBC("org.trafodion.jdbc.t4.T4Driver", "C:\\jdbcT4-2.3.0.jar",identifier.quote="`")
conn <- dbConnect(drv, "jdbc:t4jdbc://192.168.0.16:23400/:", "zz", "zz")
//结果集
res <- dbGetQuery(conn, "select * from seabase.mpg ")
//以下分别绘制不同类型的图表
//条形图
ggplot(res, aes(CLASS1)) + geom_bar(aes(fill=DRV))
//箱形图
ggplot(res, aes(CLASS1,HWY)) + geom_boxplot(fill = "white", color = "darkgreen", outlier.shape=21, outlier.size=4, outlier.stroke = 1,outlier.color = "blue", outlier.fill = "orange")
//散点图
ggplot(res, aes(CTY, HWY)) + geom_point(aes(color = DRV, size=CYL), shape=19, alpha=0.5)
//直方图
ggplot(res, aes(CTY, fill=DRV)) + geom_histogram(bins=20)
//关闭数据库连接
dbDisconnect(conn)
本文简述了如何通过R语言的JDBC访问Trafodion数据库,并在Trafodion数据库中执行SQL语句查询及可视化应用的实验环境演示。
Trafodion(在威尔士语中意为“事务”)构建于Hadoop的可扩展性、弹性和灵活性之上,是个Apache Hadoop上同时支持事务型和分析型数据库系统(OLTP/OLAP)的开源解决方案,目前正被应用于中国移动、中国电信、国家电网、易鲸捷、Millersoft、Webroot等公司。
来源 https://mp.weixin.qq.com/s/i4tVOI4t2gak6vgeJztxKw
相关文章