使用AWS Glue Crawler时,有时会发现它会改变表的数据结构,这会导致在Athena查询中出现错误。这可能是由于Glue Crawler将数据类型解释为不正确的类型引起的。为了解决这个问题,可以手动定义表的结构,并在Glue Crawler中禁用表结构的自动推断。
以下是示例代码:
CREATE EXTERNAL TABLE table_name
(
col1
string COMMENT 'comment1',
col2
int COMMENT 'comment2'
)
PARTITIONED BY (
partition_col
string
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION
's3://bucket/path/to/table/';
在AWS Glue Crawler中,选择要爬取的数据库和表,并在“配置”选项卡下找到“添加一个新的列类型定义”选项。添加表的架构定义并禁用“推测数据类型”选项。
这些步骤将确保表的结构不会被Glue Crawler错误地解释并导致Athena查询错误。