Hadoop 如何在我目前的建筑中使用拼花地板?

Hadoop 如何在我目前的建筑中使用拼花地板?,hadoop,hive,parquet,Hadoop,Hive,Parquet,我当前的系统就是这样设计的 日志解析器将以TSV格式每5分钟解析一次原始日志,并输出到HDFS。我用HDFS中的TSV文件创建了配置单元表 从一些基准测试中,我发现拼花地板可以节省多达30-40%的空间使用。我还发现,从Hive0.13开始,我可以用拼花文件创建HiveTable。我想知道我是否可以转换TSV到拼花地板文件 非常感谢您的建议。是的,在Hive中,您可以通过从一个表插入到另一个表来轻松地从一种格式转换为另一种格式 例如,如果TSV表定义为: CREATE TABLE data_ts

我当前的系统就是这样设计的

日志解析器将以TSV格式每5分钟解析一次原始日志,并输出到HDFS。我用HDFS中的TSV文件创建了配置单元表

从一些基准测试中,我发现拼花地板可以节省多达30-40%的空间使用。我还发现,从Hive0.13开始,我可以用拼花文件创建HiveTable。我想知道我是否可以转换TSV到拼花地板文件


非常感谢您的建议。

是的,在Hive中,您可以通过从一个表插入到另一个表来轻松地从一种格式转换为另一种格式

例如,如果TSV表定义为:

CREATE TABLE data_tsv
(col1 STRING, col2 INT)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t';
CREATE TABLE data_parquet
(col1 STRING, col2 INT)
STORED AS PARQUET;
以及拼花地板桌,定义如下:

CREATE TABLE data_tsv
(col1 STRING, col2 INT)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t';
CREATE TABLE data_parquet
(col1 STRING, col2 INT)
STORED AS PARQUET;
您可以使用以下方法转换数据:

INSERT OVERWRITE TABLE data_parquet SELECT * FROM data_tsv;
或者,您可以通过以下方式跳过拼花地板表DDL:

CREATE TABLE data_parquet STORED AS PARQUET AS SELECT * FROM data_tsv;