Amazon s3 在S3中的现有ORC文件上使用Presto

Amazon s3 在S3中的现有ORC文件上使用Presto,amazon-s3,hive,presto,orc,metastore,Amazon S3,Hive,Presto,Orc,Metastore,我想将Presto配置为在AWS S3中查询ORC文件。根据文档,必须配置配置单元元存储。此元存储将收集表的所有模式。既然我有现有的ORC文件,有没有办法用应该嵌入到ORC文件中的现有表的方案自动填充这个元存储 提前感谢您的帮助 这是完全可能的,但如果ORC写入程序与Trino()不兼容,则有时可能会失败()。这不太可能,但应该注意 第一步是能够获得正确的模式。您可以通过使用uber和meta命令打印出orc模式来实现这一点。请参阅更多: 创建表之后,您应该能够开始查询,除非您的表中有分区。如果

我想将Presto配置为在AWS S3中查询ORC文件。根据文档,必须配置配置单元元存储。此元存储将收集表的所有模式。既然我有现有的ORC文件,有没有办法用应该嵌入到ORC文件中的现有表的方案自动填充这个元存储


提前感谢您的帮助

这是完全可能的,但如果ORC写入程序与Trino()不兼容,则有时可能会失败()。这不太可能,但应该注意

第一步是能够获得正确的模式。您可以通过使用uber和
meta
命令打印出orc模式来实现这一点。请参阅更多:

创建表之后,您应该能够开始查询,除非您的表中有分区。如果是这种情况,那么您将需要同步配置单元元存储(或者可能是文件元存储),以将现有分区位置添加到元存储

假设上面的
nationkey
列上有一个分区,则
CREATE TABLE
语句如下所示:

CREATE TABLE hive.default.customer (
   custkey BIGINT,
   name VARCHAR,
   address VARCHAR,
   phone VARCHAR,
   acctbal DOUBLE,
   mktsegment VARCHAR,
   comment VARCHAR,
   nationkey BIGINT
) WITH (
  partitioned_by = ARRAY['nationkey']
);
CALL system.sync_partition_metadata('default', 'customer', 'ADD');
然后,您将希望同步可以使用完成的

这将看起来像这样:

CREATE TABLE hive.default.customer (
   custkey BIGINT,
   name VARCHAR,
   address VARCHAR,
   phone VARCHAR,
   acctbal DOUBLE,
   mktsegment VARCHAR,
   comment VARCHAR,
   nationkey BIGINT
) WITH (
  partitioned_by = ARRAY['nationkey']
);
CALL system.sync_partition_metadata('default', 'customer', 'ADD');
还有(当Trino仍然被称为PrestoSQL时)