问题标签 [r-dbi]

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 投票
1 回答
96 浏览

r - 为会话保持与数据库的连接打开或在有用时连接到它

我在 R 中使用我与 RMySQL(和 DBI)连接的 MySQL 数据库。

我有一个函数可以在用户需要时动态读取 SQL 表(并将它们作为 R 对象导入)。他可以经常读表还是很长时间不向数据库发送查询,我不知道。

唯一允许的 SQL 操作是读取表(SELECT *,无条件)。

实际上,每次我需要读取一个新表然后关闭连接时,我都会打开一个新连接。但我正在寻找一些建议和最佳实践。

我精确地创建了一个连接函数作为“单例”,以避免并行打开到同一个数据库的两个连接。

重复向数据库发送连接请求是不是很糟糕?(即使之前的连接已关闭)我可以让 SQL 连接长时间打开,即使没有交互?

0 投票
2 回答
2273 浏览

mysql - 如何将闪亮应用程序中的反应输入值插入 MySQL 数据库?

我用 R 的闪亮包创建了一个在线实验。假设我有 3 个反应值,称为"toss"、"decision" 和 " rating"
此外,我在 Amazon Web 服务 RDS 上启动了一个MySQL数据库。版本是MySQL 5.6.22
我成功地将非反应值(如时间戳)发送到 MySQL 数据库。所以我认为问题是在 Server.R 代码中找到与 MySQL 对话的代码的位置。对于非反应性值,当代码在反应性服务器功能之外(之前)时,它可以完美地工作。但是对于反应值,我想它应该在某个地方。

我试过这段代码:

这样,我不会收到错误消息。所以也许错误在insert into-code中。

此外,我不确定我使用的软件包是否适合此目的。我尝试了很多东西。每当我通过将反应值排除在 SQL 引用之外来添加反应值时,它就会停止工作。我开始认为 RMySQL 缺少该功能。手册中没有任何内容insert into

有没有人能发现我犯的错误?

0 投票
1 回答
122 浏览

sql - hHw 通过 R 将系统函数传递给 MonetDB?

使用MonetDB.R,我想运行这个命令,但我不想打开 mclient。有没有通用的方法来做到这一点?

0 投票
0 回答
1992 浏览

r - ?tcpKeepAlive=true 和 RPostgres

我的 redshift 服务器的建议 url?tcpKeepAlive=true附加了一个,所以它看起来像

现在,该RPostgres::dbConnect函数具有签名

那个男人dbConnect

...- 描述附加连接选项的其他名称-值对,如http://www.postgresql.org/docs/9.4/static/libpq-connect.html#LIBPQ-PARAMKEYWORDS中所述

但是,我能看到的最接近我正在寻找的连接选项是

  • keepalives

    控制是否使用客户端 TCP keepalive。默认值为 1,表示开启,但如果不需要保活,您可以将其更改为 0,表示关闭。对于通过 Unix 域套接字建立的连接,此参数将被忽略。

  • keepalives_idle

    控制 TCP 应向服务器发送 keepalive 消息的不活动秒数。零值使用系统默认值。对于通过 Unix 域套接字建立的连接,或者如果禁用了 keepalives,则忽略此参数。它仅在 TCP_KEEPIDLE 或 TCP_KEEPALIVE 套接字选项可用的系统和 Windows 上受支持;在其他系统上,它没有影响。

  • keepalives_interval

    控制应该重新传输未被服务器确认的 TCP keepalive 消息的秒数。零值使用系统默认值。对于通过 Unix 域套接字建立的连接,或者如果禁用了 keepalives,则忽略此参数。它仅在 TCP_KEEPINTVL 套接字选项可用的系统和 Windows 上受支持;在其他系统上,它没有影响。keepalives_count

而且我不确定如何使用这些来模仿?tcpKeepAlive=true...的效果

我想我可以做类似的事情

但我想知道我需要为 、 和 选择x什么yz

0 投票
1 回答
87 浏览

r - dbListConnections & MonetDB - 连接了哪个用户?

感谢 MonetDB.R 库,我将 MonetDB 与 R 一起使用。

我似乎无法使用dbListConnections

我得到:

我应该假设dbListConnections在 MonetDB.R 中没有实现吗?

我的挑战是尝试使用 R 和 Shiny Server Pro 实现多连接应用程序:了解在给定时间和哪个用户建立了哪些连接会很有用。

是否有其他方法可以确定连接的用户?

顺便说一句,我也尝试使用查询:

但两者都返回NULL ...

0 投票
1 回答
688 浏览

r - 如何使用 RSQLite 从数据库中检索大量数字?(缓冲区溢出?)

我有一个包含各种令牌和频率计数的数据库。当我尝试使用 RSQLite 从 R 中检索这些时,我得到的负数较低,因此可能存在缓冲区溢出问题。如果我在说 sqliteman 中打开数据库并手动查询它,则数据会正确返回,所以它必须与 DBI 或 RSQLite 有关。

有没有办法通过 RSQLite 检索非常大的整数/浮点值而没有这个问题?

这是一个最小的例子:

我得到的输出如下:

我在 32 位 Windows 7 上使用 RStudio 0.98.501(R 版本 3.0.2),如果这完全相关的话。

编辑:请注意,SQLite 3 对内存和请求处理中的所有值使用 64 位整数。如以下评论中建议的那样,使用 BIGINT 代替 INT 会产生相同的溢出问题。

0 投票
0 回答
396 浏览

r - rsqlite_query_send:无法执行1:无法打开数据库文件

我遇到了这个奇怪的数据库连接问题RSQLite,我需要以某种方式解决。我已经在下面的链接中记录了如何重现此问题:

https://github.com/rstats-db/RSQLite/issues/101

这是数据库连接

我曾尝试关注SQLite用户遇到unable to open database file错误的其他基于 stackoverflow 的问题,但他们都说您必须明确设置完整的文件路径 - 这也没有帮助。

如果有人可以帮助诊断我遇到此错误的原因以便我可以解决它,我将不胜感激。

0 投票
1 回答
561 浏览

r - 如何管理 R & MonetDB 中的模式?

我最近问了一个类似的问题,更适合 dplyr。

请参阅dplyr 和 monetdb - 查询 schema.table 的适当语法?

由于 dplyr 和 MonetDB(根据上面的@Hannes Mühleisen 回复)没有适当的方法来管理模式,我决定使用 MonetDB.R / DBI 本机函数。

同样在这种情况下,结果也存在一些问题:目前,MonetDB.R 似乎只能正确管理每个数据库的一个模式。

让我们看一些代码。我创建了两个模式,并在每个模式中创建了相同的表名(标准 sql 实践)。然后我尝试将数据写入每个。

在这个阶段,我应该有两个名称相同但具有两个不同模式的表。dbListTables 证实了这一点(很高兴看到模式,但我可以没有它):

但是,一旦我尝试使用与以前使用的查询相同的查询写入 mytable,灾难!

此时数据库处于混乱状态并要求回滚事务。

让我们尝试使用 overwrite=FALSE,看看是否有什么不同:

我击中了母矿脉append=true

后一个序列似乎可以正常工作并将数据加载到 bar 模式中而没有问题。但是你是否使用(像我通常那样)csvdump=TRUE你会得到另一个错误:

我总是可以避免使用csvdump,但我需要写大表......

我也尝试过copy_to& dplyr,但我也遇到了错误。

毫不奇怪,看到csvdump我也遇到了类似错误的问题monetdb.read.csv:如果在另一个模式中存在同名表时尝试加载 csv,则会出现错误。

难道我做错了什么?有没有更好的方法来做事?这是一个错误吗?

欢迎任何帮助。

0 投票
1 回答
1418 浏览

mysql - R SQL:从 MySQL 中提取数据以获取数据框中已经存在的 id 列表

我在 R 中有一个数据框,其中包含先前查询的输出。不幸的是,我不能直接在 SQL 中执行此操作,因为它太慢了,所以我使用 data.table 包。data.table 包的输出是一个包含 50,000 个 ID 的数据框。我需要从数据库中提取每个 id 的所有记录。

通常,我会做类似的事情,

但这行不通。另一种方法是在 for 循环中执行 50,000 个查询,但我认为必须有更有效的方法来执行此操作。

最有效的方法是什么?

0 投票
1 回答
1845 浏览

java - 如何将 client_protocol 传递给 R 中的 JDBC 驱动程序?

我正在尝试HiveServer2使用dplyr.spark.hive包连接,但我发生了一个错误,我无法将用户名传递给dbConnect函数,这可能是我收到关于NULL client_protocol.

有谁知道如何解决这个问题或如何传递user/usernamedbConnect驱动程序所在的函数JDBC

这个beeline请求对我来说很好

但是这个 R等价物没有:

编辑 1

我尝试使用不同.jar的连接方式(如评论中所建议的那样),看起来之前的问题已经解决了(我可能用错了.jar),但现在我收到一条错误消息,告诉我连接未配置: