问题标签 [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.
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 :(
amazon-web-services - AWS S3 删除尚未访问的文件
我正在编写一个服务,它会截取大量 URL 并将它们保存在公共 S3 存储桶中。
由于存储成本,我想定期清除上述存储桶并删除过去 X 天内未访问的每个屏幕截图。
“访问”是指通过 GET 请求下载或获取。
我查看了文档,发现有很多方法可以为 S3 对象定义过期策略,但是一旦文件被外部访问,就找不到将文件“标记”为已读的方法。
有没有办法在没有代码的情况下定义定期清除(仅限 AWS 规则/服务)?API 是否允许这样做,或者我是否需要开始实施外部解决方法?
amazon-s3 - S3 在 CSV 文件上选择 - 如何匹配子字符串
我有一个 CSV 文件上传到 S3 存储桶。我想返回与字段的子字符串匹配的行Display
。什么是正确的 SELECT 语法?
这将返回 0 行:
"select * from s3object s where 'substring' in s.Display LIMIT 100"
谢谢你的帮助!
amazon-s3-select - botocore.exceptions.ClientError:调用 SelectObjectContent 操作时发生错误(InvalidTextEncoding)
通过python执行下面的代码时
我收到类似的错误
回溯(最近一次通话最后):
我在 boto3 中搜索了 Invalid text Encoding 但找不到。你能帮我检查一下吗?
提前致谢
curl - 如何使用 cURL 从亚马逊 S3 存储桶中删除文件
我试图从托管在我客户的内部存储中的 s3 存储桶中删除一个文件s3.fidapp.org
。我使用了下面的命令,但它没有用。我正在低于错误。
查找signingKey的脚本
删除脚本
我使用相同的命令将文件上传到 S3 存储桶,替换DELETE
为PUT
.
如果我遗漏任何内容或者我必须更改命令中的任何内容,请告诉我。
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]
amazon-s3 - 如何获得 s3 选择查询以返回单个行
像这样结构化的数据
以下选择查询
返回整个 JSON 文档,我希望它只返回一行,即
我已经尝试了查询的几种变体
它只返回 1 条记录,但它是错误的记录。
什么都不返回。
关于我做错了什么的任何想法?
amazon-s3 - AWS S3 Select 跳过结果集中的缺失值
我正在尝试使用S3 Select读取镶木地板文件,但是当数据包含缺失值时遇到问题 - 从 S3 select 返回的结果会跳过所有缺失值,从而无法解析输出。python和boto3的可重现示例:
即,所有缺失值都被简单地跳过。
有没有办法获得适当编码的缺失值的结果?
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 错误响应。也许我需要修改身份验证参数,因为我正在更改内容和内容类型。我是在这里疯狂追逐还是这样的事情可能有效?
有没有更简单的方法?还是完全不受支持?
amazon-s3 - 如何 s3-选择镶木地板文件内部数组中的所有数据
我在 s3 上有镶木地板文件,需要使用 S3 Select 进行查询。Parquet 文件是从带有内部数组的 JSON 文件生成的。S3 Select 查询可以获得第一个数组,但如果我尝试查询内部数组中的记录,则无法返回 ID。说它是无效的数据源
我尝试了什么:
json结构
询问
期望从查询中获取所有 id,因此应该返回 Id 1 和 2。