通过 Impala 的 Parquet 压缩类型

Posted

技术标签:

【中文标题】通过 Impala 的 Parquet 压缩类型【英文标题】:Parquet compression type via Impala 【发布时间】:2016-04-07 07:50:04 【问题描述】:

我们定义了很多 impala 表,并假设我们正在使用 Snappy 压缩。 (镶木地板文件)

然而,没有人真正知道我们在现有表上实际使用的压缩类型。

impala 文档似乎没有指定如何从现有表中获取压缩类型。

有没有办法通过 impala 找到使用的压缩类型?

【问题讨论】:

假设你可以使用DESCRIBE FORMATTED $table_name,但the "Compressed:" field in that result is unreliable: "It typically always shows No, because the compression settings only apply during the session that loads data and are not stored persistently with the table metadata." 同意,在镶木地板上它只会显示“不” 【参考方案1】:

截至目前,Impala 中没有命令可以告诉您存储为镶木地板的表中使用的压缩类型,但有一种变通方法。您可以做的是查看表中的 parquet 文件之一,然后使用 parquet-tools 元命令查看正在使用的压缩。

-- step1) run hdfs dfs -ls to determine the location and name for a parquet file
hdfs dfs -ls /yourTableLocationPath
-- step2) parquet-tools really only works locally right now so you will need to copy the file to a local directory
hdfs dfs -get /yourTableLocationPath/yourFileName /yourLocalPath
-- step3) run parquet-tools meta command
parquet-tools meta /yourLocalPath/yourFileName

parquet-tools 元命令的输出将显示在行组输出下使用的压缩类型。

【讨论】:

以上是关于通过 Impala 的 Parquet 压缩类型的主要内容,如果未能解决你的问题,请参考以下文章

Hive/Impala 中压缩 parquet 文件(例如 gz.parquet)的外部表

Parquet 支持的 Hive 表:Impala 中不可查询的数组列

在 Impala 中使用外部创建的 Parquet 文件

使用 Impala 在 INSERT INTO (Parquet) TABLE 期间对分区键进行排序

parquet和orc

使用 Impala 在 HDFS 中查询 Parquet 文件