Hive 我们如何在星型模式的配置单元中进行bucketing

Hive 我们如何在星型模式的配置单元中进行bucketing,hive,parquet,bucket,Hive,Parquet,Bucket,在配置单元中,使用星型模式模型的最佳实践是什么 假设我有一个三维的事实 f_测试: customer_key, vendor_key, country_key, measures d_customer d_vendor d_country 您将如何使用上述用例?基于钥匙和事实的铲斗尺寸组合铲斗(客户、供应商、国家) 请提供最佳做法方面的建议。Bucketing用于提高查询性能,因此在不知道用户将如何查询数据的情况下,无法推荐如何对数据进行Bucketing。例如,如果事实表的大多数查询是按

在配置单元中,使用星型模式模型的最佳实践是什么

假设我有一个三维的事实

f_测试:

customer_key,
vendor_key,
country_key,
measures


d_customer
d_vendor
d_country
您将如何使用上述用例?基于钥匙和事实的铲斗尺寸组合铲斗(客户、供应商、国家)


请提供最佳做法方面的建议。

Bucketing用于提高查询性能,因此在不知道用户将如何查询数据的情况下,无法推荐如何对数据进行Bucketing。例如,如果事实表的大多数查询是按客户属性进行的,则按客户键进行Bucketing是有意义的

除非您的DIM中有大量数据,否则可能不值得使用它们,例如,我假设国家只有约200条记录

不幸的是,这是使用Hive/Impala/等作为分析平台的主要限制之一,因为通过表设计提高性能的范围非常有限,即只能以一种方式对表进行分区/存储,因此只能支持一种查询模式。在您的示例中,如果事实表由客户和供应商平等地查询,则无法提高这两种查询类型的性能,您只需依靠平台的“马力”来处理查询

与传统的数据库相比,如果需要的话,您可以添加一个新的索引来支持查询