amazon-athena - 如何更改由 Glue Crawler 创建的自动检测分区的列名?

标签 amazon-athena aws-glue amazon-kinesis-firehose

我有一个用作 Kinesis Firehose 流目的地的存储桶。

Firehose 使用 yyyy/mm/dd/HH 自动在该存储桶上创建基于日期的前缀格式。

然后我创建了一个爬虫,它会在这个存储桶中搜索数据并将其配置如下:

Crawler configuration

运行爬虫后,它会创建一个具有以下架构的表:

| #   | Column name   | Data type | Key           |
| --- | -----------   | --------- | ------------- |
| 1   | numberissues  | int       |               |
| 2   | group         | string    |               |
| 3   | createdat     | string    |               |
| 4   | companyunitid | string    |               |
| 5   | partition_0   | string    | Partition (0) |
| 6   | partition_1   | string    | Partition (1) |
| 7   | partition_2   | string    | Partition (2) |
| 8   | partition_3   | string    | Partition (3) |

如果我重命名 partition-*给他们正确的同行 year , month , dayhour ,该表已准备好供我使用。

但是,如果爬网程序再次运行,架构会将列名恢复为原始 partition-*。 .

我知道这适用于 Hive 分区模式 year=2018/month=04... ,但我想知道是否可以“提示” Glue 关于分区字段名称。

另一种选择是尝试更改 Firehose 前缀,但我找不到任何表明这是可能的。

最佳答案

在这种情况下,您可以设置“忽略更改并且不更新数据目录”选项。

然后您可以重命名列。这将允许爬虫在下次运行时检测新分区,但保留重命名的名称。

关于amazon-athena - 如何更改由 Glue Crawler 创建的自动检测分区的列名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49699727/

相关文章:

amazon-web-services - Amazon Athena- 查询以字符串形式存储的数字的列

amazon-web-services - 有没有办法查询每个前缀的最新 S3 对象键名?

amazon-web-services - 您可以在 AWS Athena 中拥有架构或文件夹结构吗?

python - Kinesis 是满足我需求的正确工具吗? (以及其他各种问题)

amazon-web-services - 如何解锁 VPC 中 Redshift 集群上的 Kinesis Firehose CIDR/IP?

amazon-web-services - AWS IAM策略-允许来自IP地址并允许Firehose

amazon-web-services - AWS Athena - 由于分区而重复列

amazon-web-services - 从 DynamoDB 表创建数据湖

amazon-web-services - 显示数据引号的 AWS Glue/数据目录

redis - 使用 AWS Glue (python) 从 redis 获取数据