Database Presto:如何从s3读取在子文件夹中分区的整个bucket?
我需要使用presto从s3读取“bucket-a”中的整个数据集。但是,在bucket中,数据按年份保存在子文件夹中。所以我有一个看起来像这样的桶: Bucket-a>2017>数据 Bucket-a>2018>更多数据 Bucket-a>2019>更多数据 以上所有数据都是相同的表,但以这种方式保存在s3中。请注意,bucket-a本身没有数据,只是在每个文件夹中 我要做的是将bucket中的所有数据作为单个表读取,并将一年作为列或分区添加 我试过这样做,但没有成功:Database Presto:如何从s3读取在子文件夹中分区的整个bucket?,database,amazon-web-services,amazon-s3,presto,partition,Database,Amazon Web Services,Amazon S3,Presto,Partition,我需要使用presto从s3读取“bucket-a”中的整个数据集。但是,在bucket中,数据按年份保存在子文件夹中。所以我有一个看起来像这样的桶: Bucket-a>2017>数据 Bucket-a>2018>更多数据 Bucket-a>2019>更多数据 以上所有数据都是相同的表,但以这种方式保存在s3中。请注意,bucket-a本身没有数据,只是在每个文件夹中 我要做的是将bucket中的所有数据作为单个表读取,并将一年作为列或分区添加 我试过这样做,但没有成功: CREATE TABL
CREATE TABLE hive.default.mytable (
col1 int,
col2 varchar,
year int
)
WITH (
format = 'json',
partitioned_by = ARRAY['year'],
external_location = 's3://bucket-a/'--also tryed 's3://bucket-a/year/'
)
而且
CREATE TABLE hive.default.mytable (
col1 int,
col2 varchar,
year int
)
WITH (
format = 'json',
bucketed_by = ARRAY['year'],
bucket_count = 3,
external_location = 's3://bucket-a/'--also tryed's3://bucket-a/year/'
)
所有这些都不起作用
我见过有人使用presto将分区写入s3,但我正试图做的恰恰相反:从s3中读取已经作为单个表拆分在文件夹中的数据
谢谢。如果您的文件夹遵循配置单元分区文件夹命名约定(
year=2019/
),您可以将该表声明为已分区并仅使用
现在,您的文件夹不符合约定,因此您需要使用
system.register\u partition
过程将每个文件夹单独注册为一个分区(将在Presto 330中提供,即将发布)。(替代注册分区
的方法是在Hive CLI中运行适当的添加分区
。非常适合我。非常感谢你。