您可以在任何可以安装R和Java的计算机上使用纯R脚本和标准SQL访问Elasticsearch数据。您可以使用适用于Elasticsearch的CData JDBC驱动程序和RJDBC软件包来处理R中的远程Elasticsearch数据。通过使用CData驱动程序,您可以利用为经过行业验证的标准编写的驱动程序来访问流行的开源数据R语言。本文介绍如何使用驱动程序对Elasticsearch执行SQL查询,并通过调用标准R函数可视化Elasticsearch数据。
您可以通过运行多线程Microsoft R Open或运行与BLAS / LAPACK库链接的open R来匹配多线程和托管代码的驱动程序性能增益。本文使用Microsoft R Open 3.2.3,它预先配置为从CRAN存储库的2016年1月1日快照安装软件包。此快照确保了可重复性。
要使用该驱动程序,请下载RJDBC软件包。安装RJDBC软件包后,以下行加载软件包:
library(RJDBC)
您将需要以下信息才能作为JDBC数据源连接到Elasticsearch:
cdata.jdbc.elasticsearch.ElasticsearchDriver
。DBI函数(例如 dbConnect
和dbSendQuery
)提供了用于在R中写入数据访问代码的统一接口。使用以下行初始化可以向Elasticsearch的CData JDBC驱动程序发出JDBC请求的DBI驱动程序:
driver < - JDBC(driverClass = “ cdata.jdbc.elasticsearch.ElasticsearchDriver”,classPath = “ MyInstallationDir \ l ib \ c data.jdbc.elasticsearch.jar”,identifier.quote = “ '”)
您现在可以使用DBI函数连接到Elasticsearch并执行SQL查询。使用该dbConnect
函数初始化JDBC连接 。以下是典型的JDBC连接字符串:
conn < - dbConnect(driver,“ Server = 127.0.0.1; Port = 9200; User = admin; Password = 123456;”)
设置要连接的服务器和端口连接属性。要进行身份验证,请设置“用户”和“密码”属性,PKI(公钥基础结构)属性或两者。要使用PKI,请设置SSLClientCert,SSLClientCertType,SSLClientCertSubject和SSLClientCertPassword属性。
数据提供程序使用X-Pack Security进行TLS / SSL和身份验证。要通过TLS / SSL进行连接,请在Server值前加上“https://”。注意:必须在X-Pack上启用TLS / SSL和客户端身份验证才能使用PKI。
连接数据提供程序后,X-Pack将根据您配置的域执行用户身份验证和授予角色权限。
驱动程序将Elasticsearch API建模为关系表,视图和存储过程。使用以下行检索表列表:
dbListTables(conn)
您可以使用该 dbGetQuery
函数执行Elasticsearch API支持的任何SQL查询:
orders < - dbGetQuery(conn,“ SELECT Orders.Freight,Customers.ContactName FROM Customers INNER JOIN Orders ON Customers.CustomerId = Orders.CustomerId”)
您可以使用以下命令在数据查看器窗口中查看结果:
View(orders)
您现在可以使用CRAN存储库中提供的任何数据可视化包来分析Elasticsearch数据。您可以使用内置条形图功能创建简单的条形图:
par(las=2,ps=10,mar=c(5,15,4,2))
barplot(orders$Freight, main="Elasticsearch Orders", names.arg = orders$OrderName, horiz=TRUE)
原文标题《Analyze Elasticsearch Data in R》
作者:Jerd Johnson
译者:Sonia
不代表云加社区观点,更多详情请查看原文链接
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。