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

use*_*851 5 text-files avro impala parquet

我有一个有分区的表,我使用avro文件或文本文件来创建和插入表.

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

Ray*_*Ray 13

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

然后你可以使用以下方法创建另一个

CREATE TABLE x_parquet LIKE x_non_parquet STORED AS PARQUET;
Run Code Online (Sandbox Code Playgroud)

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

SET PARQUET_COMPRESSION_CODEC=snappy;
Run Code Online (Sandbox Code Playgroud)

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

INSERT INTO x_parquet select * from x_non_parquet;
Run Code Online (Sandbox Code Playgroud)

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