技术 | 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连接EsgynDB导入并查询数据


//安装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)  


如何使用ggplot2对查询数据实现可视化


//引用类库

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

相关文章