我有16列的文本文件(用户id、日期、其他属性……),整个文件的大小是200gb,行数是18亿+。我已经创建了一个外部表(exraw数据)来读取这些数据。我有一个aggregation脚本,它可以生成200多个派生变量。当我在我的外部表(exraw数据)上运行查询时,由于我的文件是简单的文本文件,行数和计算变量都很大,所以计算要花费很多时间。现在我计划创建一个新的配置单元表,它将以orc格式存储数据,但问题是如何在创建表时确定正确的存储桶数。以下是我的群集配置(在aws上)和orc表结构:
Namenode: 32 cores,60 GB RAM, 180GB SSD
4 Data Nodes: 8 cores (on each data node), 30G RAM (on each data node),
Total HDFS size 1.5 TB SSD
create table raw_data_orc
(
user_id string,
date int,
attrib1 string,
attrib1 string,
attrib1 int,
.
.
.
)
CLUSTERED BY(user_id) INTO 32 BUCKETS
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS ORC tblproperties ("orc.compress"="ZLIB");
INSERT OVERWRITE TABLE raw_data_orc select * from ex_raw_data;
确定orc表中存储桶的数量的最佳实践是什么(根据我上面的集群配置)??谢谢你的帮助!
暂无答案!
目前还没有任何答案,快来回答吧!