我想暂时使用hive对hdfs上的文件执行一些操作,所以我不想使用内部表。但我的数据是如此巨大,例如1TB,所以我担心外部表的性能。 所以我问一下这个问题 hive中table和extenal表之间的性能差异。
答案 0 :(得分:0)
您可以创建配置单元外部表并使用它们。我没有注意到内部和外部表的性能有任何重大差异。
为了提高性能,您可以创建由hive管理的ORC(文件格式)表。
Create ORC table:
CREATE TABLE IF NOT EXISTS <orc_table_name>(
<col name> <type>)
COMMENT 'comments'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS ORC;
然后插入ORC表:
INSERT OVERWRITE TABLE <orc_table_name> SELECT * FROM <external_table_name>;
答案 1 :(得分:0)
我所经历的外部和内部表性能之间的差异是
内部表占用更多 CPU 时间
外部表占用的 CPU 时间减少约 40%