Amazon s3 如何从Trino读取S3中的数据片段

Amazon s3 如何从Trino读取S3中的数据片段,amazon-s3,hive,hive-metastore,trino,hive-partitions,Amazon S3,Hive,Hive Metastore,Trino,Hive Partitions,我正在尝试从Trino读取S3中的数据片段。 我所做的就是: 我将所有分区的数据上传到S3中。我有一个指定的avro模式,我把它放在本地系统的文件中 然后,我创建了一个外部配置单元表,指向S3中的数据位置和本地系统文件中的avro模式。 表已创建 然后,通常我可以从Trino查询S3中的数据和分区 Trino>select * from hive.default.my_table; 它只返回列名称 trino>select * from hive.default."my_

我正在尝试从Trino读取S3中的数据片段。 我所做的就是:

我将所有分区的数据上传到S3中。我有一个指定的avro模式,我把它放在本地系统的文件中

然后,我创建了一个外部配置单元表,指向S3中的数据位置和本地系统文件中的avro模式。 表已创建

然后,通常我可以从Trino查询S3中的数据和分区

Trino>select * from hive.default.my_table;
它只返回列名称

trino>select * from hive.default."my_table$partitions";
它只返回分区的名称

您能给我一个解决方案吗?我如何从Trino读取S3中的数据部分


知道我正在使用ApacheHive2,即使我在Hive中查询表以返回表分区,它也会返回Ok并显示任何内容。我认为因为
hive2
我们应该在Hive中使用
MSCK命令

将分区文件夹和文件上传到S3并创建表是不够的,所以应该创建分区元数据。通常,您可以将文件夹不作为分区装入。要将表位置中的所有现有子文件夹装载为分区,请执行以下操作:

使用msck修复表命令:

MSCK [REPAIR] TABLE tablename;
或亚马逊电子病历版本:

ALTER TABLE tablename RECOVER PARTITIONS;
它将在配置单元元存储中创建分区元数据,分区将变为可用


阅读这两个命令的更多详细信息:

您是否为该表注册了分区<上的代码>同步分区元数据
过程可能会对此有所帮助。