对接AWS Glue与S3的Trino DB如何配置忽略无关JSON文件
问题根因
AWS Glue爬网程序配置的文件忽略规则仅在爬网采样、生成表结构阶段生效,不会将过滤规则写入元数据。Trino对接Glue元存储时,默认会扫描表绑定S3路径下所有可识别格式的文件,不会继承Glue爬网的忽略规则,因此会将同目录下的JSON文件识别为表数据读取。
可落地配置方案
全局连接器配置(推荐,全表生效)
编辑Trino的Hive连接器配置文件,默认路径为etc/catalog/hive.properties,添加指定忽略文件后缀的配置项:# 填写需要跳过的文件后缀,多个值用逗号分隔 hive.s3.file-ignore-extensions=.json保存配置后重启Trino集群所有节点的Trino服务即可生效,后续所有通过该连接器查询S3存储的Hive表,都会自动跳过指定后缀的文件。
若使用350之前的Trino旧版本,对应参数名替换为
hive.s3.skip-files-with-suffix,配置逻辑一致。单表属性配置(无全局修改权限时使用)
若没有连接器配置修改权限,可以直接在Trino中执行SQL给目标表单独设置忽略规则,仅对当前表生效:ALTER TABLE <你的目标库名>.<你的目标表名> SET PROPERTIES 'file_ignore_extensions' = '.json';执行完成后该表查询时就会自动跳过目录下的.json后缀文件。
长期架构优化
不建议将非数据类文件(如元数据说明文件、临时文件)存放在表绑定的S3数据目录下,后续可调整目录结构,将metafile.json这类文件移动到表数据路径外的独立目录,从根源上避免扫描到非数据文件,无需额外配置过滤规则。
注意事项
Glue爬网程序侧配置的排除规则不会同步给Trino,不要仅依赖Glue侧的过滤配置,必须在Trino侧通过连接器参数或表属性设置过滤规则才能生效。
内容的提问来源于stack exchange,提问作者kater169
相关产品推荐
相关产品推荐

