在配置单元中,什么是星型模式模型的最佳实践?假设我有一个三维的事实f\U测试:
customer_key, vendor_key, country_key, measures d_customer d_vendor d_country
您将如何使用上述用例?基于钥匙和事实的铲斗尺寸复合铲斗(客户、供应商、国家/地区)?请就最佳做法提出建议。
9jyewag01#
bucketing用于提高查询性能,因此在不知道用户将如何查询数据的情况下,不可能推荐如何对数据进行bucketing,例如,如果事实表的大多数查询都是按客户属性进行的,那么按客户密钥进行bucketing是有意义的。除非你的DIM中有大量的数据,否则很可能不值得去做,例如,我假设这个国家只有大约200条记录。不幸的是,这是使用hive/impala/etc作为分析平台的主要限制之一,因为通过表设计提高性能的范围非常有限,即只能以一种方式对表进行分区/存储,因此只能支持一种查询模式。在您的示例中,如果事实表是由客户和供应商平等地查询的,则无法提高这两种查询类型的性能,您只能依靠平台的“马力”来处理查询。与传统的数据库相比,如果需要的话,您可以添加一个新索引来支持查询
1条答案
按热度按时间9jyewag01#
bucketing用于提高查询性能,因此在不知道用户将如何查询数据的情况下,不可能推荐如何对数据进行bucketing,例如,如果事实表的大多数查询都是按客户属性进行的,那么按客户密钥进行bucketing是有意义的。
除非你的DIM中有大量的数据,否则很可能不值得去做,例如,我假设这个国家只有大约200条记录。
不幸的是,这是使用hive/impala/etc作为分析平台的主要限制之一,因为通过表设计提高性能的范围非常有限,即只能以一种方式对表进行分区/存储,因此只能支持一种查询模式。在您的示例中,如果事实表是由客户和供应商平等地查询的,则无法提高这两种查询类型的性能,您只能依靠平台的“马力”来处理查询。
与传统的数据库相比,如果需要的话,您可以添加一个新索引来支持查询