问题标签 [amazon-s3-select]

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 回答
1250 浏览

c# - 使用 AWS S3 SELECT 将 CSV 数据导入 SQL 表的奇怪结果

我已经用 C# 编写了一个 AWS 状态机,以将来自 S3 Bucket 的 CSV 文件中的数据加载到 SQL Server 数据库表中,但是我在表中得到了非常奇怪的数据。

两个主要功能如下,第一个获取响应负载,第二个将其分解为可以插入的行。

下一部分只是一段代码,它获取有效负载并将其放入字符串列表中,以便每一行都可以插入到数据库中

当我将数据提取记录到 CloudWatch 日志或类似文件时,数据看起来是正确的。这是 CSV 的原始格式(我尝试了不同的内容类型、text/csv、text/plain、UTF8 等,没有任何更改。我什至尝试了一个用逗号分隔的文本文件,同样的问题)。

这是登录到 CloudWatch 或其他任何地方时数据的样子。

但是,当我检查结果表时,数据 - 每个字符 - 在它和下一个字符之间都有一个空格?

我在这里失去理智。这可能是什么原因造成的?我以前从未见过它。有趣的是,如果我在 SQL Management Studio 的“结果到网格”中查看数据,其中包含间隔数据的列显示为空白?但是当我以文本查看结果时,我可以看到记录,但它们中有这些空格?我在这里失去理智。我试过了。

一旦 S3 对象位于存储桶中,就在 S3 对象上设置不同的内容类型元数据(列出了我在本文前面尝试过的内容类型)。

将对象写入 S3 时设置不同的内容类型(例如,使用 PowerShell s3 写入对象)。

尝试将文件保存为与 csv 具有相同“内容”的文本文件,而不是将其保存为实际的 csv。

没变。

有人可以帮忙吗?网上没有太多关于 AWS S3 SELECT :(

0 投票
2 回答
726 浏览

amazon-web-services - AWS S3 删除尚未访问的文件

我正在编写一个服务,它会截取大量 URL 并将它们保存在公共 S3 存储桶中。
由于存储成本,我想定期清除上述存储桶并删除过去 X 天内未访问的每个屏幕截图
“访问”是指通过 GET 请求下载或获取。

我查看了文档,发现有很多方法可以为 S3 对象定义过期策略,但是一旦文件被外部访问,就找不到将文件“标记”为已读的方法。

有没有办法在没有代码的情况下定义定期清除(仅限 AWS 规则/服务)?API 是否允许这样做,或者我是否需要开始实施外部解决方法?

0 投票
2 回答
368 浏览

amazon-s3 - S3 在 CSV 文件上选择 - 如何匹配子字符串

我有一个 CSV 文件上传到 S3 存储桶。我想返回与字段的子字符串匹配的行Display。什么是正确的 SELECT 语法?

这将返回 0 行:

"select * from s3object s where 'substring' in s.Display LIMIT 100"

谢谢你的帮助!

0 投票
1 回答
2311 浏览

amazon-s3-select - botocore.exceptions.ClientError:调用 SelectObjectContent 操作时发生错误(InvalidTextEncoding)

通过python执行下面的代码时

我收到类似的错误

回溯(最近一次通话最后):

我在 boto3 中搜索了 Invalid text Encoding 但找不到。你能帮我检查一下吗?

提前致谢

0 投票
0 回答
1279 浏览

curl - 如何使用 cURL 从亚马逊 S3 存储桶中删除文件

我试图从托管在我客户的内部存储中的 s3 存储桶中删除一个文件s3.fidapp.org。我使用了下面的命令,但它没有用。我正在低于错误。

查找signingKey的脚本

删除脚本

我使用相同的命令将文件上传到 S3 存储桶,替换DELETEPUT.

如果我遗漏任何内容或者我必须更改命令中的任何内容,请告诉我。

0 投票
1 回答
836 浏览

python - 如何为使用的 EventStream 创建一个模拟,但 S3 Select API 用于基于 S3 Select 查询获取内容?

我正在为使用 boto3 的 s3 客户端函数“select_object_content”从 S3 存储桶读取对象的函数创建单元测试。我想要模拟的回应是

Payload 是一个 EventStream 对象,它被创建为 EventStream(self, raw_stream, output_shape, parser, operation_name) 并接受 4 个参数。我将 raw_stream 作为用 'utf-8' 编码的字节字符串,但我无法找到有关如何分配其他参数的更多信息。

我正在使用 MagicMock 来模拟 s3_client.select_object_content。

我希望能够将 athena 结果(作为 CSV 保存在 S3 中)作为流传递,并确保代码具有单元测试来处理某些场景。

编辑:我可以使用以下结构模拟响应:

我的模拟函数的返回类型是 Dict[str, Any]

0 投票
1 回答
338 浏览

amazon-s3 - 如何获得 s3 选择查询以返回单个行

像这样结构化的数据

以下选择查询

返回整个 JSON 文档,我希望它只返回一行,即

我已经尝试了查询的几种变体

它只返回 1 条记录,但它是错误的记录。

什么都不返回。

关于我做错了什么的任何想法?

0 投票
1 回答
275 浏览

amazon-s3 - AWS S3 Select 跳过结果集中的缺失值

我正在尝试使用S3 Select读取镶木地板文件,但是当数据包含缺失值时遇到问题 - 从 S3 select 返回的结果会跳过所有缺失值,从而无法解析输出。python和boto3的可重现示例:

即,所有缺失值都被简单地跳过。

有没有办法获得适当编码的缺失值的结果?

0 投票
0 回答
320 浏览

amazon-s3 - 我可以生成一个包含 s3-select 表达式的预签名 s3 url 吗?

我将大型数据集存储在 s3 中,并希望创建预签名的 url 以分发给想要从数据集中下载选定列的客户。(java) sdk 似乎没有提供预先打包的方法来执行此操作。

亚马逊有没有明确声明将 s3 select 与预签名的 url 一起使用?我通过谷歌搜索或浏览文档找不到任何东西。

挥舞着,我向 sdk 生成的带有 XML 请求正文(https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectSELECTContent.html)的 s3 选择的预签名 url 发送了一个请求,但是我取回 SignatureDoesNotMatch 错误响应。也许我需要修改身份验证参数,因为我正在更改内容和内容类型。我是在这里疯狂追逐还是这样的事情可能有效?

有没有更简单的方法?还是完全不受支持?

0 投票
1 回答
586 浏览

amazon-s3 - 如何 s3-选择镶木地板文件内部数组中的所有数据

我在 s3 上有镶木地板文件,需要使用 S3 Select 进行查询。Parquet 文件是从带有内部数组的 JSON 文件生成的。S3 Select 查询可以获得第一个数组,但如果我尝试查询内部数组中的记录,则无法返回 ID。说它是无效的数据源

我尝试了什么:

json结构

询问

期望从查询中获取所有 id,因此应该返回 Id 1 和 2。