问题标签 [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 回答
1370 浏览

amazon-web-services - AWS S3 Select 中的 SKIP/OFFSET/ScanRange 行

我想知道是否有人想出如何在S3 Select中跳过行?

看起来您可以限制返回的记录数

还有一个请求将 OFFSET/SKIP 添加到 s3api,但它已关闭。

您也可以以字节为单位指定ScanRange,但如果对象被压缩会发生什么?

它是以字节为单位的压缩对象还是未压缩对象?

如果未压缩,S3 Select 如何处理部分记录?

更新:您不能在gzip文件中使用 ScanRange:

botocore.exceptions.ClientError:调用 SelectObjectContent 操作时发生错误 (UnsupportedScanRangeInput):GZIP 类型的对象不支持扫描范围查询。

0 投票
0 回答
172 浏览

amazon-web-services - Amazon S3 选择查询:当我们查询不存在的键时,列值在 CSV 输出中左移

我有一个 S3 格式的 JSON 文件:

当我查询时

我在 CSV 输出中得到以下信息:

我了解正确的查询如下:

这会给我输出

但是通过查询一个不存在的列,为什么值 e 被转移以显示 C1 列下面的值而不是 E 列?

如果我查询不存在的列,我在 Amazon AWS 中找不到任何有关该行为的文档。

输出为:

有什么办法吗??

1.当JSON源中不存在时,从列标题中隐藏D??

2. 或者,将对应于列标题 D 的字段留空??

0 投票
1 回答
226 浏览

sql - S3选择查询不识别数据

我生成一个数据帧,将数据帧作为 CSV 文件写入 S3,然后对 S3 存储桶中的 CSV 执行选择查询。根据查询和数据,我希望看到“4”和“10”打印,但我只看到“4”。由于某种原因,S3 没有看到“10”。

它适用于日期之间的过滤。

0 投票
1 回答
1356 浏览

node.js - 从 AWS S3 Select 获取单个记录时获取 OverMaxRecordSize?

当我尝试使用selectObjectContent函数从 AWS S3 获取任何特定记录时,我收到错误OverMaxRecordSize: The character number in one record is more than our max threshold, maxCharsPerRecord: 1,048,576 。

如果我正在获取 10 条记录,它的工作但如果试图获取其中一条,那么它就会抛出错误。

正如我在 AWS 文档中看到的错误原因是“输入或结果中的记录长度大于 1 MB 的 maxCharsPerRecord”。

请提出任何解决方案或解决方法,因为我的数据是位置数据,其大小可能超过 1 MB。

例如:

工作:select * from s3object s limit 10;

不工作:select * from s3object s where id = '22'

我的参数是:

0 投票
0 回答
46 浏览

amazon-web-services - 查询 S3 对象上的数据

尝试使用 S3-Select 查询 json 文件上的数据

有人可以根据 WHERE contact_name='User 1' 的条件帮助使用 s3 select 获得所需的输出。

以下是我们尝试过的查询,

在上面的查询中,我们对 group_id 进行了硬编码,我们可以在下面获取

但在我们的案例中,groupid 是动态的,所以我不理解。如何处理?

0 投票
1 回答
305 浏览

sql - 是否可以在 S3 Select 中执行嵌套查询?

我正在尝试执行以下类型的查询: SELECT * FROM (SELECT * FROM s3object s WHERE ..)

但我收到以下错误: Invalid Data Source type.

那么 S3 Select 是否支持嵌套查询或者我错过了什么?

0 投票
0 回答
60 浏览

amazon-web-services - 是否可以将第二行视为 S3 Select 中 .csv 文件的标题?

是否可以将文件的第二行.csv视为标题并跳过 S3 Select 中的第一行?

  • 例子:

我的文件结构如下:

现在我想跳过

并查询

这有可能吗?

0 投票
2 回答
660 浏览

sql - s3中的查询头选择nodejs

我正在使用 s3 select 查询和 where 子句从 s3 检索数据。当没有 where 子句时,查询工作正常并返回预期结果。虽然我在使用where子句时,过滤后的数据是正确的,但是对象中的key是表头之后的第一行,而不是表头。

示例:csv 文件

美国广播公司

1 2 3

1 5 6

询问 :select * from s3object s where s._1 = '1' limit 100

预期输出:[{A : 1, B:2, C:3}, {A:1, B:5, C:6}]

实际输出:[{1:1, 2:5, 3:6}]

这是我用来查询的 params 对象:

即使我使用FileHeaderInfo : "USE",我也会得到相同的输出,并将查询更改为select * from s3object s where id = '22' and s.date > '2020-05-01' limit 100

AWS 文档:https ://docs.aws.amazon.com/AmazonS3/latest/API/API_SelectObjectContent.html

0 投票
0 回答
1030 浏览

amazon-web-services - Parquet 文件上的 S3 SELECT 不返回任何记录

该代码不返回任何行。我已经使用 Athena 验证了数据文件和查询,它返回了多行。该resp['Payload']对象没有名为 的属性Records。我见过很多使用 CSV 文件的示例,但没有关于 Parquet 文件的帖子。

0 投票
2 回答
1400 浏览

amazon-web-services - S3 select - 如何通过非标准时间戳比较查询

我正在使用 S3 存储桶,其中数据按 ID 和年/月组织到文件中——这意味着每个 ID 和月一个文件。在每个 (csv.gz) 文件中,每条记录都有一个时间戳,格式为:(YYYY-MM-dd HH:mm:ss注意缺少T)。

现在,在查询数据时,我希望将日期时间粒度支持到秒,因此自然希望在使用 Python 管理数据之前就已经在 S3 中过滤数据。

但是我找不到任何方法来做到这一点。该函数TO_TIMESTAMP不支持用户提供的格式(需要T日期/时间分隔符)并且组合 SUBSTRING 和 CAST ( CAST(SUBSTRING(my_timestamp_column, 1, 10) AS TIMESTAMP)) 会产生The query cannot be evaluated错误。

有没有办法解决?文档指出该函数TO_TIMESTAMP是“TO_STRING 的逆运算”,这并不完全正确,因为后者支持time_format_pattern.