问题标签 [rjdbc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
644 浏览

oracle - 比较 r 中的数据库连接性能

我们的组织广泛使用 oracle 数据库——我们将数十万条记录提取到 r 中,然后执行统计。我们几乎一直在使用 RODBC 包,但我刚刚让 rOracle 工作,现在我想知道哪个包“更好”。

有没有人知道可以在 R 中连接到 oracle 的各种方式之间的任何基准测试/测试/比较?我一直在搜索,发现http://guyharrison.squarespace.com/blog/2011/5/20/rjdbc-20-performance-improvements.html,这表明 ROracle 与 RJDBC 非常相似,但我没有没有找到任何与 roracle 和 rodbc 相关的东西。在这里的评论中提出了一个类似的问题——加速 sqlFetch() ——但那里没有真正的答案。

我打算自己做一些测试,但我不确定我是否对自己的基准测试能力有信心。如果我发现任何重要的东西,我会在这里发帖。

0 投票
2 回答
252 浏览

r - 从索引值列表中查询 RJDBC

我正在尝试执行查询或表单:

在使用 RJDBC 的 Oracle 数据库上。我有一个数据框,其中 x 和 y 列标识。我找不到有关如何为数据框中的各个值生成和执行查询的任何详细信息。

我的数据框是以下形式:

所以我需要一种方法来生成并顺序运行三个不同的查询,然后将结果收集到一个数据框中。

在 R 中是否有一种优雅的方法可以做到这一点?我知道我可以使用一些paste魔法来构建单个查询,但是如何运行它们并将结果返回到数据框?

谢谢哈桑

0 投票
6 回答
13705 浏览

r - 在 Mac/Linux 上从 R 连接到 MS SQL Server

我正在尝试从 Mac/Linux 上的 R 连接到 Microsoft SQL Server,但我遇到了 RJDBC 问题。当我下载了 Microsoft 的驱动程序和 JTDS 时,以下行均不起作用:

每个都返回以下错误消息:

我怀疑问题可能与错误的 Java 版本有关:我的默认 java 是

但我的机器上也安装了 Java 1.6。我安装了 SquirrelSQL,它使用 JTDS 驱动程序连接到 MS SQL Server 没有任何问题;SquirrelSQL 运行的 Java 版本是 1.7.0.11。

我运行R CMD javareconf了以下结果:

并再次删除/安装了 RJDBC 和 rJava 包,但仍然没有任何效果。

我想我现在被困住了,因为我对 Java/RJDBC 及其交互不是很熟悉。搜索google发现有几个人有类似的问题但没有解决方案。

任何关于如何使 JDBC 行为的提示,或任何其他从 R 连接到 MS SQL Server 的方式,将不胜感激!

更新 1。好吧,第一条语句现在似乎可以工作了——我正在建立一个连接,并且可以毫无问题地查询数据库。不确定是什么解决了问题 - 可能我需要重新启动我的 mac/R 会话。第二条语句仍然不起作用,并显示相同的错误消息。

0 投票
1 回答
823 浏览

macos - jtds 和 rjdbc 类路径 - .jfindClass 中的错误

我正在尝试使用 jtds 驱动程序连接到 SQL 服务器以进行 JDBC 连接,但 RJDC 中的 JDBC 调用不断返回错误消息。我在 Mac OSX 中使用 R

'.jfindClass(as.character(driverClass)[1]) 中的错误:找不到类'

当我使用 Microsoft 的 JDBC 驱动程序时,我能够成功创建连接,但对于我的一生,我无法弄清楚为什么根本找不到 jtds JDBC 驱动程序的类路径。

以下脚本调用适用于 Microsoft JDBC 驱动程序 drv <- JDBC("com.microsoft.sqlserver.jdbc.SQLServerDriver","/Library/Java/Extensions/sqljdbc4.jar", "'")

不起作用的 jtds 调用是 drv <- JDBC("net.sourceforge.jtds.jdbc.Driver","/Library/Java/Extensions/jtds-1.3.0-dist/jtds-1.3.0.jar", "'")

如果您知道我正在犯的潜在错误,有人可以说明一下吗

0 投票
0 回答
577 浏览

r - 如何实现可从 JVM 内的多个 R 会话访问的内存数据库?

我正在编写一个在单个 JVM 中生成多个 R 会话的程序。我需要在这些会话之间共享数据,并且我现在正在将文件 (RData/txt) 写入磁盘。我做了一些阅读,发现内存数据库是正确的方法,并且将注意力集中在 H2 上。我下载并安装了 RH2 包,文档说它包含一个 H2 实例——我不需要单独安装一个。

所以我继续尝试创建我的数据库:

并得到一个错误:

我阅读了这个StackOverflow 问题,并尝试了:

我浏览了文档,但没有太大帮助。我检查了我的驱动程序,它给出了:

如何继续从 R 中创建数据库?另外,是否可以在不同的会话之间共享这个数据库?

更新:我切换到 RJDBC 和 RH2 的旧实例,但结果相同。

0 投票
1 回答
85 浏览

r - R: RJDBC: changing parts of a query via the R console

I suspect this is very simple but couldn't work out how do it, nor find an answer on the internet. I have a table T in a data warehouse which I want to query through the R console e.g.

However, I become unstuck as query('01/01/2013') returns:

whereas I actually want it to return:

Thanks for any help. Cheers

0 投票
0 回答
462 浏览

r - 从矩阵到数据帧的 R 转换 - utf-8 编码丢失

:)) 所以,我使用 JDBC 连接到数据库

在使用 SQL 查询从数据库中提取信息后,我遇到了问题,即 data.frame 中的字符未使用正确的 Encoding 进行编码,因此我编写了一个小脚本将 data.frame 中的信息保存到矩阵并相应地对其进行编码。

这工作得很好,我只是不明白:为什么 data.frame 中的字符没有以正确的格式显示?以下是它在 data.frame 中的外观示例:

并作为矩阵

0 投票
2 回答
884 浏览

sql - 为每个请求创建与 MS SQL 数据库的新 RJDBC 连接是否存在性能/其他缺点?

我想了解通过 RJDBC (重新)使用与 MS SQL 数据库的 SQL 连接的最佳实践是什么。

我可以想象三种可能的情况:

  1. 将连接存储在全局变量中,初始化一次,在代码中随处使用
  2. 为每个请求创建一个新连接
  3. 做一些更复杂的事情,例如预先填充一个开放连接池,并根据需要(重新)使用池中的连接。

我在一个有几十个客户端的闪亮应用程序中使用我的代码,如果我使用方法 1,我担心会发生不好的事情。所以我使用方法 2,使用下面的代码为每个请求创建一个新连接。

我可以看到这种方法的一些潜在缺点:性能、对数据库资源征税等。但我可能过于谨慎,因为 R 是单线程的,即使在闪亮的使用场景中也是如此?

所以我的具体问题是:

A. 我可以在我闪亮的应用程序中通过 RJDBC 安全地使用与 MS SQL 数据库的单一连接吗?

B. 在上面的场景 2 中是否有任何真正的缺点(内存泄漏、性能等)?



PS 相关:如何在 R 包中管理数据库连接

0 投票
3 回答
2149 浏览

r - 尝试连接到 Hive 服务器时出现 RJDBC 错误:org.apache.thrift.TApplicationException:方法名称无效:“执行”

我一直在尝试使用 RJDBC 包将 R(在本地机器上)与 Hive(服务器)连接,并且看到错误:

.jcall(drv@jdrv, "Ljava/sql/Connection;", "connect", as.character(url)[1], 中的错误:java.sql.SQLException: org.apache.thrift.TApplicationException: 方法名无效: '执行'

我直接将服务器上运行的 jar 复制到我的本地机器上,这不应该是驱动程序版本的问题。我也尝试过使用早期版本的 RJDBC 包,但也没有用。

我真的很感激任何想法/建议。

我的脚本:

#

hive_connection <-函数(主机名,端口,lib_dir,hive_jars){库(RJDBC)库(DBI)库(rJava)库(Rserve)

# lib_dir: 包含 jar 和驱动程序的目录 hive_class_path <- file.path( lib_dir, hive_jars )

drv <- JDBC( 'org.apache.hadoop.hive.jdbc.HiveDriver', classPath= hive_class_path, "`" ) 服务器 <- sprintf( 'jdbc:hive://%s:%s', 主机名, 端口)

返回(dbConnect(驱动器,服务器,'hive','hive'))}

conn <- hive_connection('hostname',9083,'lib_dir', list.files('lib_dir'))

0 投票
0 回答
606 浏览

c# - 从 R 将数据写入 Oracle DB 服务器

我正在尝试开发一个起诉 R.NET 的简单 R 应用程序;从 Oracle DB 服务器获取数据,进行一些修改并将结果写入新列。

我正在使用 RJDBC 连接到 Oracle 数据库服务器。

我找不到将数据从 R DataFrame 写入 Oracle Server 的方法。我试过了

但它给了我“方法 getTables with signature (Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/sql/ResultSet; not found”错误

下面是我的代码

谢谢你的帮助,