presto java.sql.SQLException: Query failed (#20200901_101014_02189_aqhvn): io.prestosql.spi.type.Sho

有同事在通过presto查询hive数据的时候报如下错误:

presto java.sql.SQLException: Query failed (#20200901_101014_02189_aqhvn): io.prestosql.spi.type.Sho

最初感觉是类型匹配的问题,但校验了下表字段类型没找到问题,感觉好像是元数据被缓存了导致的原因,但不确定,重启了presto再次查询,问题没再出现了。再次跟同事确认了下,之前那张表是否删除后又重建过,得到确定回答,确定了原因。

之前为了提高表查询性能,在/etc/catalog/hive.properties配置了了如下参数:

hive.metastore-cache-ttl=1h
hive.metastore-refresh-interval=1h

表原始元数据缓存一小时,同事之前创建了表,某个字段类型是时间戳类型,后又删除重建,字段为字符串类型,presto查询的时候,两者对应不上导致查询报错。