微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用于 Ion 格式的 Athena DDL?

如何解决用于 Ion 格式的 Athena DDL?

我正在尝试使用 Athena 查询 Ion format 中由最近添加的 DynamoDB 备份导出到 S3 功能生成的一些文件

这是一种非常愚蠢的格式,基本上是字符串 $ion_1_0 后跟 json。前面未加引号的 $ion_1_0 字符串使数据无效的 json

我尝试使用来自 here 的 Ion Serde:

CREATE EXTERNAL TABLE mydb.mytable (
`myfields` string,...
)
ROW FORMAT SERDE 'com.amazon.ionhiveserde.IonHiveSerDe'
LOCATION 's3:/.../dynamodb-export/AWSDynamoDB/01608775578817-a6944d97/data/'
TBLPROPERTIES ('has_encrypted_data'='true');

但是得到了这个:

失败:执行错误,从 org.apache.hadoop.hive.ql.exec.DDLTask 返回代码 1。无法验证 serde:com.amazon.ionhiveserde.IonHiveSerDe

更新

其实格式比我想象的还要差一点。字段名称不加引号。所以即使去掉 $ion 前缀,它也不是完全有效的 json。

解决方法

ION 是一种开源文本格式,它是 JSON 的超集。您是否尝试过用胶水转换 ION 文件? ION 是支持的格式选项之一(用于输入):https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-format.html

此 QLDB 研讨会在其示例中使用 ION,您可以探索 cloudformation 模板/yaml 或部署工作流并深入挖掘它创建的爬虫和作业以获得一些想法:https://qldb-immersionday.workshop.aws/en/lab3/task3.html

查看 ION 食谱以获取更多信息:https://amzn.github.io/ion-docs/guides/cookbook.html

规格:https://amzn.github.io/ion-docs/docs/spec.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。