我正在尝试在我的星型模式中使用一个bucket map连接来进行查询。我有一些小维度表和一个大事实表。我会:
通过fk键存储事实表
通过id键确定铲斗尺寸
但是如果我尝试bucket一个没有任何分区的表,在插入数据之后,我只能在表文件夹中看到一个文件(num\u files:1)。
CREATE TABLE user_dimension (
id STRING,
...
name STRING)
CLUSTERED BY (id) INTO 24 BUCKETS;
>> OK
INSERT INTO TABLE user_dimension
SELECT id, name
FROM datasource;
>> Table user_dimension stats: [num_partitions: 0, num_files: 1, num_rows: 478, total_size: 36497, raw_data_size: 36019]
2条答案
按热度按时间c8ib6hqw1#
设置数据时,请确保
在插入数据之前。
(如果您的维度表非常小,您可能只需要使用常规的map join,而不需要bucketing。当您需要连接两个大表时,bucketing是合适的。)
kcugc4gi2#
即使不在配置单元表上进行分区,也可以进行bucketing。