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

0

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

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

profile picture
EXPERTE
gefragt vor 5 Monaten14 Aufrufe
1 Antwort
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
EXPERTE
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen