可以在可以安装 r 和 Java 的任何计算机上使用纯 r 脚本和标准 SQL 访问 Elasticsearch 数据。可以使用 CData JDBC 驱动程序 Elasticsearch 和 RJDBC 包来处理 R 中的远程 Elasticsearch 数据。通过使用 CData 驱动程序, 您可以利用为业界认证的标准编写的驱动程序, 以使用流行的开源 R 语言访问您的数据。本文演示如何使用驱动程序执行 SQL 查询, 通过调用标准 R 函数来 Elasticsearch 和可视化 Elasticsearch 数据。
安装 R
通过运行多线程的 Microsoft R 或运行与 LAPACK 库链接的 open r, 可以使驱动程序的性能增益与多线程处理和托管代码匹配。本文使用 Microsoft R Open 3.2.3, 它是预配置的, 以安装莓存储库的2016年1月1日快照中的软件包。此快照可确保重现性。
加载 RJDBC 包
要使用驱动程序, 请下载 RJDBC 包。安装 RJDBC 包后, 下面的行加载包:
library(RJDBC)
连接到 Elasticsearch 作为 JDBC 数据源
您将需要以下信息以作为 JDBC 数据源连接到 Elasticsearch:
- 驱动程序类: 将此设置为
cdata.jdbc.elasticsearch.ElasticsearchDriver
。 - 类路径: 将其设置为驱动程序 JAR 的位置。默认情况下, 这是安装文件夹的 lib 子文件夹。
DBI 函数, 例如 dbConnect
和, 为 dbSendQuery
编写数据访问代码提供了一个统一的接口. 使用下面的行初始化一个 DBI 驱动程序, 它可以使 JDBC 请求 Elasticsearch 的 CData jdbc 驱动程序:
driver <- JDBC(driverClass = "cdata.jdbc.elasticsearch.ElasticsearchDriver", classPath = "MyInstallationDir\lib\cdata.jdbc.elasticsearch.jar", identifier.quote = "'")
现在, 您可以使用 DBI 函数连接到 Elasticsearch 并执行 SQL 查询。使用函数初始化 JDBC 连接 dbConnect
。下面是典型的 JDBC 连接字符串:
conn <- dbConnect(driver,"Server=127.0.0.1;Port=9200;User=admin;Password=123456;")
设置要连接的服务器和端口连接属性。若要进行身份验证, 请设置用户和密码属性、PKI (公钥基础结构) 属性, 或两者兼而有之。要使用 PKI, 请设置 SSLClientCert、SSLClientCertType、SSLClientCertSubject 和 SSLClientCertPassword 属性。
数据提供程序使用 X 包安全性来进行 TLS/SSL 和身份验证。要通过 TLS/SSL 进行连接, 请使用 “https://” 将服务器值前缀。注意: 必须在 X 包上启用 TLS/SSL 和客户端身份验证才能使用 PKI。
连接数据提供程序后, X 包将根据您配置的领域执行用户身份验证并授予角色权限。
架构发现
驱动程序将 api 模型 Elasticsearch 为关系表、视图和存储过程。使用以下行检索表列表:
dbListTables(conn)
执行 SQL 查询
可以使用该 dbGetQuery
函数执行 Elasticsearch API 支持的任何 SQL 查询:
orders <- dbGetQuery(conn,"SELECT Orders.Freight, Customers.ContactName FROM Customers INNER JOIN Orders ON Customers.CustomerId=Orders.CustomerId")
可以使用以下命令在数据查看器窗口中查看结果:
View(orders)
绘制 Elasticsearch 数据
现在, 您可以使用莓存储库中可用的任何数据可视化包分析 Elasticsearch 数据。arg = 订单 $ OrderName, 水平移动 = TRUE)