AWS Firehose无法将JSON转换为ORC

时间:2019-07-15 19:24:54

标签: amazon-web-services json aws-cloud9

我正在使用Kinesis Firehose将JSON字节记录转换为S3存储桶中的ORC文件,可以使用Athena进行查询。 Firehose具有AWS Glue的Athena表架构。

要将文件插入Firehose,我有一个文件,其中每一行都是JSON对象。 python脚本逐行读取文件,创建json并将其放入流中

with open('./test.json', 'r') as f:
    alldata = f.readlines()
for line in alldata:
    jsonraw = json.loads(line)
    jdict = json.dumps(jsonraw)
    jbytes = jdict.encode('utf-8')
   client.put_record(DeliveryStreamName="my-stream", Record={'Data': jbytes})

有时Firehose成功转换记录,有时: "DataFormatConversion.MalformedData","lastErrorMessage":"Data does not match the schema."

我想找出为什么某些JSON失败。我尝试过:

  1. 我将JSON错误之一放入了验证器。这是有效的json。
  2. 我创建了一个新的S3存储桶和一个新的Athena表,该表具有与ORC表完全相同的架构,但该表查询JSON。然后,我使用失败的JSON之一制作了一个新文件,并上传到S3。雅典娜很好地询问了Firehose无法读取的同一JSON对象。因此,JSON确实与Athena模式匹配得足以可查询。

我对如何理解错误并找到解决方案的想法不多了。我还能尝试什么?

0 个答案:

没有答案