当前位置: 首页 > 知识库问答 >
问题:

使用Avro文件批量复制到Amazon Redshift中的异常处理

沈华晖
2023-03-14

我正在尝试将S3中的avro文件加载到红移的表中。其中一个Avro文件的格式不正确。问题是,当copy命令尝试加载该文件时,它会引发异常,并且不会为正确的文件运行copy。如何跳过格式错误的文件并复制正确的文件?这是我加载文件的代码:

COPY tmp.table
FROM 's3://{BUCKET}/{PREFIX}'
IAM_ROLE '{ROLE}' 
FORMAT AVRO 's3://{BUCKET}/{AVRO_PATH}'

我得到的错误是:

  code:      8001
  context:   Cannot init avro reader from s3 file Incorrect Avro container file magic number 
  query:     19308992
  location:  avropath_request.cpp:438
  process:   query0_125_19308992 [pid=23925]

共有1个答案

宋鸿云
2023-03-14

您可以预处理s3://{BUCKET}/{PREFIX}文件,并仅使用具有正确格式/模式的Avro文件创建清单文件。Redshift无法为您执行此操作,将尝试处理s3://{BUCKET}/{PREFIX}路径上的所有文件。

 类似资料:
  • 使用Java8。 为了获得最佳性能,我尝试用复制文件,但很快发现它不支持汉字。例如: 代码打算从jar复制一个文件,但它抛出了一个异常(a“我的" 文件夹已提前创建): 问题是鎴戠殑" 甚至连一个中国人都看不懂,所以我正在寻找一个解决办法来处理汉字。 我也尝试了FileChannel,但失败了,意识到它用于直接文件,而不是在一个jar中的文件。我该怎么做?

  • 步骤1:从数据库中加载10条记录。(Tasklet负责该工作) 步骤2:使用提交间隔=1的ItemReader、ItemProcessor、ItemWriter实现配置了面向块的处理 据我所知,对于每一个记录 > 我的问题是假设它处理了六条记录,而现在在ItemProcessor实现中的第7条记录出现了异常,它尝试回滚,但由于事务处于未知状态而无法回滚 即使它不能回滚第7条记录的tx,它也不会处理

  • 我有以下代码,它基于今天的日期创建一个文件夹,并将文件从一个文件夹移动到新的文件夹。我有以下代码: 此代码创建一个文件夹,但不将任何文件复制到新创建的文件夹。正在将文件从FTP服务器复制到新文件夹。请建议一些复制这些文件的更改。 谢谢!

  • 我知道匹配模式解析器,这是Spring批处理提供的。我需要关于如何构造批处理作业的帮助,以便它可以读取循环中的记录类型5和记录类型6。

  • 本文向大家介绍使用BAT批处理在RAR压缩文件中批量添加文件的方法,包括了使用BAT批处理在RAR压缩文件中批量添加文件的方法的使用技巧和注意事项,需要的朋友参考一下 代码如下: 代码解释: echo on 回显开启 %%f 为参数 ()内为参数内容 代表该目录下所有的rar和zip文件 winrar.exe 从winrar安装目录中拷贝 maxgo.cn.html 要添加的文件 将此代码写入tx

  • 我正在尝试在批处理文件中定义和使用变量。看起来应该很简单: 我得到的输出如下: 这是怎么回事?为什么我的变量没有被回声?