gpt4 book ai didi

amazon-web-services - 如何在 AWS Glue/Athena 上使用 AVRO 格式

转载 作者:行者123 更新时间:2023-12-05 06:25:42 26 4
gpt4 key购买 nike

我在 Kafka 中有几个主题正在将 AVRO 文件写入 S3 存储桶,我想使用 AWS Athena 对存储桶执行一些查询。

我正在尝试创建一个表,但 AWS Glue 爬虫运行并且没有添加我的表(如果我将文件类型更改为 JSON,它会起作用)。我尝试从 Athena 控制台创建一个表,但它不显示对 AVRO 文件的支持。

关于如何让它发挥作用的任何想法?

最佳答案

我建议手动操作而不是通过 Glue。胶水仅适用于最基本的情况,不幸的是,这超出了范围。

您可以在此处找到有关如何创建 Avro 表的文档:https://docs.aws.amazon.com/athena/latest/ug/avro.html

Avro 表的警告是您需要指定表列和 Avro 架构。这可能看起来很奇怪和多余,但这就是 Athena/Presto 的工作方式。它需要一个模式来知道如何解释文件,然后它需要知道您想要将文件中的哪些属性公开为列(以及它们的类型,可能与 Avro 类型匹配也可能不匹配)。

CREATE EXTERNAL TABLE avro_table (
foo STRING,
bar INT
)
ROW FORMAT
SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
WITH SERDEPROPERTIES ('avro.schema.literal' = '
{
"type": "record",
"name": "example",
"namespace": "default",
"fields": [
{
"name": "foo",
"type": ["null", "string"],
"default": null
},
{
"name": "bar",
"type": ["null", "int"],
"default": null
}
]
}
')
STORED AS AVRO
LOCATION 's3://some-bucket/data/';

请注意 Avro 架构如何在 serde 属性值(单引号)内显示为 JSON 文档 - 格式是可选的,但使此示例更易于阅读。

关于amazon-web-services - 如何在 AWS Glue/Athena 上使用 AVRO 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56761178/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com