impala-将现有表格转换为Parquet格式

6ojccjat  于 2021-06-26  发布在  Impala
关注(0)|答案(1)|浏览(504)

我有一个有分区的表,我使用avro文件或文本文件创建并插入到表中。
一旦table做好了,有没有办法转换成Parquet地板。我是说我知道我们可以说 CREATE TABLE default.test( name_id STRING) PARTITIONED BY ( year INT, month INT, day INT ) STORED AS PARQUET 最初创建表本身时。
在我的用例中,我首先必须使用文本文件。这是因为我希望避免每次插入或更新时在分区文件夹中创建多个文件。我的表有大量的插入和更新,这导致性能下降。有没有一种方法可以在创建表并插入数据后转换为parquet?

agxfikkp

agxfikkp1#

您可以在hdfs格式的数据上创建一个表,该表可以存储为文本、avro或任何格式。
然后可以使用以下方法创建另一个表:

CREATE TABLE x_parquet LIKE x_non_parquet STORED AS PARQUET;

然后可以将压缩设置为类似snappy或gzip的值:

SET PARQUET_COMPRESSION_CODEC=snappy;

然后,您可以从非Parquet表中获取数据,并将其插入到新的Parquet表中:

INSERT INTO x_parquet select * from x_non_parquet;

现在,如果您想节省空间并避免混淆,我会自动执行此操作以接收任何数据,然后删除原始的非Parquet格式。这将帮助您的查询运行得更快,并减少数据占用的空间。

相关问题