问题标签 [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.
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 类型的对象不支持扫描范围查询。
amazon-web-services - Amazon S3 选择查询:当我们查询不存在的键时,列值在 CSV 输出中左移
我有一个 S3 格式的 JSON 文件:
当我查询时
我在 CSV 输出中得到以下信息:
我了解正确的查询如下:
这会给我输出
但是通过查询一个不存在的列,为什么值 e 被转移以显示 C1 列下面的值而不是 E 列?
如果我查询不存在的列,我在 Amazon AWS 中找不到任何有关该行为的文档。
输出为:
有什么办法吗??
1.当JSON源中不存在时,从列标题中隐藏D??
2. 或者,将对应于列标题 D 的字段留空??
sql - S3选择查询不识别数据
我生成一个数据帧,将数据帧作为 CSV 文件写入 S3,然后对 S3 存储桶中的 CSV 执行选择查询。根据查询和数据,我希望看到“4”和“10”打印,但我只看到“4”。由于某种原因,S3 没有看到“10”。
它适用于日期之间的过滤。
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'
我的参数是:
amazon-web-services - 查询 S3 对象上的数据
尝试使用 S3-Select 查询 json 文件上的数据
有人可以根据 WHERE contact_name='User 1' 的条件帮助使用 s3 select 获得所需的输出。
以下是我们尝试过的查询,
在上面的查询中,我们对 group_id 进行了硬编码,我们可以在下面获取
但在我们的案例中,groupid 是动态的,所以我不理解。如何处理?
sql - 是否可以在 S3 Select 中执行嵌套查询?
我正在尝试执行以下类型的查询:
SELECT * FROM (SELECT * FROM s3object s WHERE ..)
但我收到以下错误:
Invalid Data Source type.
那么 S3 Select 是否支持嵌套查询或者我错过了什么?
amazon-web-services - 是否可以将第二行视为 S3 Select 中 .csv 文件的标题?
是否可以将文件的第二行.csv
视为标题并跳过 S3 Select 中的第一行?
- 例子:
我的文件结构如下:
现在我想跳过
并查询
这有可能吗?
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
amazon-web-services - Parquet 文件上的 S3 SELECT 不返回任何记录
该代码不返回任何行。我已经使用 Athena 验证了数据文件和查询,它返回了多行。该resp['Payload']
对象没有名为 的属性Records
。我见过很多使用 CSV 文件的示例,但没有关于 Parquet 文件的帖子。
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
.