【问题标题】:Export R results to vertica DB将 R 结果导出到 vertica DB
【发布时间】:2014-08-05 06:34:35
【问题描述】:

我有一个表,应该存储它执行的分析结果。 RVertica 的连接已完成,并且还能够从 vertica 表中提取数据,但无法将我的分析结果存储到 Vertica 表。
有人可以帮助如何通过 RODBC 通过 R 命令在 Vertica 中插入记录吗?
这是我在 Oracle 中尝试过的代码:

     install.packages("RODBC")
library("RODBC")  
channeldev<-odbcConnect("Dev_k", uid="krish", pwd="****", believeNRows=FALSE)
odbcGetInfo(channeldev)
dataframe_dev<- sqlQuery(channeldev, "
 SELECT input_stg_id
 FROM
 k.input_stg WHERE emp_ID=85
and update_timestamp > to_date('8/5/2013 04.00.00','mm/dd/yyyy HH24.MI.SS')")
dataframe_dev

sqlSave(channeldev,dataframe_dev,tablename="K.R2_TEST",append=TRUE)
sqlUpdate(channeldev, dataframe_dev, tablename="K.R2_TEST",index="INPUT_STG_ID")

【问题讨论】:

  • 请提供您所尝试的详细信息。重现问题的最小代码示例会很棒。
  • 您应该可以使用RODBC 包来执行此操作。请展示您尝试过的方法以及为什么它不起作用。
  • sqlSave 和 sqlUpdate 都抛出错误。不明白为什么

标签: r oracle vertica


【解决方案1】:

您可以使用与 Oracle 基本相同的 RODBC 命令序列:

  1. 加载 RODBC 库:library(RODBC)
  2. 连接到 Vertica 数据库:odbcConnect()
  3. 保存数据:sqlSave()。出于性能原因,我建议设置fast=TRUE,禁用自动提交并在最后提交事务。

但是,使用带有选项 LOCAL 的 Vertica 批量加载实用程序 COPY:它通过 ODBC 透明地工作,并且比 sqlSave() 快得多

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-16
    • 2013-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多