Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >您能使用雅典娜ODBC/JDBC返回结果的S3位置吗?

您能使用雅典娜ODBC/JDBC返回结果的S3位置吗?
EN

Stack Overflow用户
提问于 2018-06-11 13:05:38
回答 2查看 777关注 0票数 0

我一直在使用梅蒂斯包通过R运行雅典娜查询,虽然这对于小型查询很好,但是对于具有非常大的返回数据集(例如,10行的数千行)的查询,似乎还没有一个可行的解决方案。但是,在AWS控制台中运行这些相同的查询时,使用下载链接获取查询结果的CSV文件是快速/简单的。

这让我想到:是否有一种机制可以通过R发送查询,但返回/获取查询结果所在的S3://桶位置,而不是普通的结果对象?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-11-28 11:50:33

正如我在上面的评论中提到的,您可以研究RAthenanoctua包。

这些包使用AWS作为驱动程序连接到AWS雅典娜。这意味着他们还将以@Zerodf提到的类似方法从S3下载数据。它们都使用data.table将数据加载到R中,因此它们非常快速。此外,如果出于某种原因需要,您也可以查询执行ID。

下面是如何使用包的示例:

RAthena

创建与AWS雅典娜的连接,有关如何连接的更多信息,请参见:dbConnect

代码语言:javascript
运行
AI代码解释
复制
library(DBI)
con <- dbConnect(RAthena::athena())

如何查询雅典娜的示例:

代码语言:javascript
运行
AI代码解释
复制
dbGetQuery(con, "select * from sampledb.elb_logs")

如何访问查询ID:

代码语言:javascript
运行
AI代码解释
复制
res <- dbSendQuery(con,  "select * from sampledb.elb_logs")

sprintf("%s%s.csv",res@connection@info$s3_staging, res@info$QueryExecutionId)

夜曲

创建与AWS雅典娜的连接,有关如何连接的更多信息,请参见:dbConnect

代码语言:javascript
运行
AI代码解释
复制
library(DBI)
con <- dbConnect(noctua::athena())

如何查询雅典娜的示例:

代码语言:javascript
运行
AI代码解释
复制
dbGetQuery(con, "select * from sampledb.elb_logs")

如何访问查询ID:

代码语言:javascript
运行
AI代码解释
复制
res <- dbSendQuery(con,  "select * from sampledb.elb_logs")

sprintf("%s%s.csv",res@connection@info$s3_staging, res@info$QueryExecutionId)

总结

然而,当这些包从s3中的查询输出下载数据时,这些包应该可以完成您想要做的事情--我不认为您需要转到查询执行ID来执行相同的过程。

票数 1
EN

Stack Overflow用户

发布于 2018-06-12 05:20:03

你可以看看Cloudyr项目。它们有一个套餐,它处理为AWS创建签名请求。然后,您可以启动一个查询,轮询AWS,直到查询完成(使用QueryExecutionID),并使用aws.s3下载结果集。

您还可以使用系统()使用AWS CLI命令执行查询、等待结果并下载结果。

例如:您可以在命令行上运行以下命令以获得查询结果。

$ aws athena start-query-execution --query-string "select count(*) from test_null_unquoted" --execution-context Database=stackoverflow --result-configuration OutputLocation=s3://SOMEBUCKET/ --output text XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

得到query-execution-id之后,就可以检查结果了。

$ aws athena get-query-execution --query-execution-id=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX --output text QUERYEXECUTION select count(*) from test_null_unquoted XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX QUERYEXECUTIONCONTEXT stackoverflow RESULTCONFIGURATION s3://SOMEBUCKET/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.csv STATISTICS 104 1403 STATUS 1528809056.658 SUCCEEDED 1528809054.945

查询成功后,您可以下载数据。

$ aws s3 cp s3://stack-exchange/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.csv

编辑:--您甚至可以将这些命令转换为一个一行(这里是Bash示例),但是我相信您可以在powershell中做同样的事情。

$ eid=`aws athena start-query-execution --query-string "select count(*) from test_null_unquoted" --query-execution-context Database=SOMEDATABASE--result-configuration OutputLocation=s3://SOMEBUCKET/ --output text --output text` && until aws athena get-query-execution --query-execution-id=$eid --output text | grep "SUCCEEDE D"; do sleep 10 | echo "waiting..."; done && aws s3 cp s3://SOMEBUCKET/$eid.csv . && unset eid

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50806014

复制
相关文章
jdbc fetchsize_jdbc和odbc的关系
commons-dbutils是Apache组织提供的一个开源JDBC工具类库,封装了针对于数据库的增删改查操作
全栈程序员站长
2022/09/22
3660
ODBC与JDBC比較
   在学习J2EE的JDBC过程中,刚见到JDBC就立即联想到了ODBC,并且我们能够肯定他们之间有必定的关系。開始学它的时候还是认为有点晕,于是就查了非常多资料,与比較熟悉的ODBC进行了比較。
全栈程序员站长
2022/01/29
2.1K0
PaddleOCR C++(三)---动态库返回识别结果及矩形位置
《PaddleOCR C++学习笔记(二)》尝试做图像的分割,结果都效果不明显,所以这篇我们从OCR识别这里来处理,将返回的识别字符和对应的识别矩形框都显示出来,用于区分识别的效果。
Vaccae
2021/07/30
2.1K1
PaddleOCR C++(三)---动态库返回识别结果及矩形位置
Spring Boot 使用WebAsyncTask异步返回结果
在Spring Boot中(Spring MVC)下请求默认都是同步的,一个请求过去到结束都是由一个线程负责的,很多时候为了能够提高吞吐量,需要将一些操作异步化,除了一些耗时的业务逻辑可以异步化,我们的查询接口也是可以做到异步执行。
猿天地
2018/07/25
3.7K0
ODBC 安装/使用/编程
  主要讲解ODBC API, 以mysql为例, 从配置到安装, 再到具体的编程, 以期对ODBC有个初步的认识.
全栈程序员站长
2022/09/06
3K0
ODBC 安装/使用/编程
Future,带返回执行结果的线程使用方式
FutureTask是Future的一种实现方式. private final int count; public Counter(int count) { this.count = count; } public void get() throws InterruptedException { // 假设执行一些耗时的操作 Thread.sleep(3000); System.out.println("counter:" + count); } long start = Sys
用户1215919
2018/02/27
1.1K0
mybatis返回结果处理
当查询的记录条数是多条的时候,必须使用集合接收。如果使用单个实体类接收会出现异常。如果返回的是一条记录可以用集合接收
一个风轻云淡
2023/10/15
2400
mybatis返回结果处理
返回结果的 HTTP 状态码
返回结果的 HTTP 状态码.png 返回结果的 HTTP 状态码 状态码的职责 当客户端向服务器端发送请求时,描述返回的请求结果 状态码的大致分类 1XX 信息性状态码 · 接收的请求正在处理 2XX 成功状态码 · 请求正常处理完毕 3XX 重定向状态码 · 需要进行附加操作以完成请求 4XX 客户端错误状态码 · 服务器无法处理请求 5XX 服务器错误状态码 · 服务器处理请求出错 2XX 成功 200 OK 表示从客户端发来的请求在服务器端被正常处理了 204 No Content 该状态码代表服
李才哥
2021/02/21
2.4K0
返回结果的 HTTP 状态码
Jmeter系列(31)- 获取并使用 JDBC Request 返回的数据
Applu to 选中 Jmeter Variable Name to use,因为要从 Jmeter Variables 中拿到 result_mobile 变量进行提取
小菠萝测试笔记
2020/06/29
2.8K0
Jmeter系列(31)- 获取并使用 JDBC Request 返回的数据
Jdbc executeUpdate 返回值
原文地址:http://nkadun.iteye.com/blog/1435333
全栈程序员站长
2022/11/01
1.4K0
【JDBC】IDEA连接数据库,执行查询操作,返回结果集并输出。
(点击进入专栏) 【1】idea添加mysql-jar包 【2】使用IDEA连接数据库,执行增删改操作。 【3】IDEA连接数据库,执行查询操作,返回结果集并输出。
.29.
2022/11/15
2.8K0
【JDBC】IDEA连接数据库,执行查询操作,返回结果集并输出。
ROI标注的使用鼠标标注图像位置并返回坐标。
1、点击[Matlab] 2、点击[新建] 3、点击[函数] 4、点击[编辑器] 5、点击[运行] 6、点击[保存] 7、点击[命令行窗口] 8、按<Enter>键 9、点击[图片]
裴来凡
2022/05/28
1.2K0
ROI标注的使用鼠标标注图像位置并返回坐标。
mybatis返回结果类型(resulttype返回list)
这样设置返回类型为resultClass=”java.util.HashMap”,查询时执行queryForList
全栈程序员站长
2022/08/01
5.7K0
SpringBoot统一返回结果
在后台开发时,控制台得到的数据格式会有不同,这时我们需要设置统一返回结果,方便我们分析数据以及对数据进行管理。
算法与编程之美
2022/05/23
9370
SpringBoot统一返回结果
mybatis返回对象_存储过程不能返回结果
在更多的了解mybatis后发现不单单通过实体类可以直接返回数据,还可以直接返回一个Map结果集(resultType=”java.util.Map”) ,如果是多条数据则返回一个List<Map<String, Object>>结果集。
全栈程序员站长
2022/11/09
1.8K0
mybatis返回对象_存储过程不能返回结果
C#中使用Oracle存储过程返回结果集
Oracle中可以使用游标(Cursor)对数据集进行操作,但在存储过程输出参数中直接使用Cursor错误,此时的Cursor应该是一个定义游标的关键字并非类型,所以先要定义一个包,在包中声明全局的自定义游标类型,如:
张果
2022/05/09
1.1K0
使用ActionFilterAttribute 记录 WebApi Action 请求和返回结果记录
在asp.net mvc 中 webapi 和 mvc 处理消息是两个不同的管道,Asp.net mvc 和 webapi 为我们提供的 ActionFilterAttribute 拦截器,通过 重写 OnActionExecutingAsync,来 拦截action的请求消息,当执行OnActionExecutingAsync完成以后才真正进入请求的action中,action运行完后又把控制权给了 OnActionExecutedAsync ,这个管道机制可以使我们用它来轻松实现 权限认证、日志记录 ,跨域以及很多需要对全局或者部分请求做手脚的的功能。
yaphetsfang
2020/07/30
4.9K0
使用ActionFilterAttribute 记录 WebApi Action 请求和返回结果记录
使用.net通过odbc访问Hive
在 写入数据到Hive表(命令行) 这篇文章中,我们通过命令行的方式和hive进行了交互。但在通常情况下,是通过编程的方式来操作Hive,Hive提供了JDBC和ODBC接口,因为公司的数据处理程序是使用.net开发并运行在windows server上的,因此这篇文章将介绍如何通过ODBC来访问Hive。
张子阳
2018/09/29
4.2K0
Impala 高性能、低延迟的大数据查询引擎
Impala是对现有大数据查询工具的补充,不能替代基于Hive的MapReduce批处理任务框架(适用于耗时长的批处理任务,例如ETL等)。
WindWant
2020/09/10
4710
S3 简单使用
S3 全名是 Simple Storage Service,简便的存储服务。amazon (S3) 是一个公开的服务,Web 应用程序开发人员可以使用它存储数字资产,包括图片、视频、音乐和文档。S3 提供一个 RESTful API 以编程方式实现与该服务的交互。可以通过 Amazon S3 随时在 Web 上的任何位置存储和检索的任意大小的数据。
用户4945346
2023/01/11
2.9K0

相似问题

通过JDBC连接R中的S3雅典娜

20

S3 /雅典娜查询结果位置和“无效的S3文件夹位置”

222

没有找到jdbc odbc DSN吗?

13

您能通过Flex使用亚马逊S3吗?

35

jdbc odbc连接

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文