Impala - 将现有表格转换为镶木地板格式

时间:2014-10-14 16:10:03

标签: text-files avro parquet impala

我有一个包含分区的表,我使用avro文件或文本文件来创建并插入到表中。

表格完成后,有没有办法转换成实木复合地板。 我的意思是我知道我们可以在创建表格时最初说CREATE TABLE default.test( name_id STRING) PARTITIONED BY ( year INT, month INT, day INT ) STORED AS PARQUET 在我的用例中,我最初必须使用文本文件。这是因为我想避免每次插入或更新时在分区文件夹中创建多个文件。我的表具有非常多的插入和更新,这会导致性能下降。 在创建表格并插入数据后,有没有办法可以转换为镶木地板?

1 个答案:

答案 0 :(得分:11)

您可以在hdfs中创建数据表,可以存储为text,avro或任何格式。

然后您可以使用以下方法创建另一个表:

CREATE TABLE x_parquet LIKE x_non_parquet STORED AS PARQUET;

然后,您可以将压缩设置为snappy或gzip:

SET PARQUET_COMPRESSION_CODEC=snappy;

然后,您可以从非镶木桌子获取数据并将其插入新的镶木地板桌子中:

INSERT INTO x_parquet select * from x_non_parquet;

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