Dynamodb的CSV导入任务失败了,但成功创建了表格,并且正确导入了相应数量的数据。

0

【以下的问题经过翻译处理】 非常奇怪的情况: 我在 DynamoDB 控制台中使用“从 S3 导入”功能,从一个 S3 存储桶中导入了一个包含 300 行数据的 CSV 文件。导入状态显示为失败,“一些项目未通过验证检查,未被导入。”当我��� CloudWatch 中检查错误日志时,显示“无法根据给定的模式映射值。其余文件将不被处理。”

然而,输出的 DynamoDB 表成功创建,导入到表中的数据量也正确(300 个项)。除了导入任务失败并收到错误消息之外,一切看起来都正确... 有人能建议这里可能出了什么问题吗?

profile picture
专家
已提问 1 年前23 查看次数
1 回答
0

【以下的回答经过翻译处理】 看起来你在S3中有一个0字节的对象,你认为它是你的文件夹/目录。S3本身不支持文件夹,但是如果你使用S3控制台创建一个文件夹,它会创建一个0字节的S3对象。 当你在Amazon S3中创建一个文件夹时,S3会创建一个0字节的对象,并设置一个以你提供名称的文件夹名作为该对象的键。例如,如果你在你的存储桶中创建一个名为photos的文件夹,Amazon S3控制台将创建一个键为photos/的0字节对象。控制台创建此对象以支持文件夹的概念。

Amazon S3控制台将所有包含“/”字符的对象最后一个(尾随)字符的键名视为文件夹(例如,examplekeyname/)。使用Amazon S3控制台无法上传具有尾随/字符的键名对象。但是,你可以使用AWS CLI、AWS SDK或REST API上传具有尾随/的命名对象。

命名具有尾随/的对象在Amazon S3控制台中显示为一个文件夹。Amazon S3控制台不会显示此类对象的内容和元数据。当你使用控制台复制具有尾随/的对象时,会在目标位置创建一个新文件夹,但不会复制对象的数据和元数据。

按照设计,从S3中导入的功能将扫描给定前缀下的所有S3对象,并尝试读取它们。由于<folder name>/是S3对象,因此我们将其视为数据来处理。

为解决这个问题,尝试不要使用AWS Web控制台创建文件夹,而是直接从CLI或SDK上传你的数据:

aws s3 cp <file> s3://bucket/prefix/to/file.csv。

profile picture
专家
已回答 1 年前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则