将数据仓库星形架构映射到HBASE
假设我在数据仓库设置中有一个星型模式。 有一个非常非常长的事实表(想想数十亿到万亿行)和几个低基数维表(想想100维表)。每个事实表都有外键 指向维度表主键的是位图索引。每个维度表主键也被位图索引。这是所有的快速连接。都很标准 假设数据仓库开始显示性能下降。时间到了 事实表越长,从位图联接返回结果的时间越长。业务需求是事实表不断增长(我们不能将超过一年的数据移动到存档存储) 我正在考虑以下解决方案:将数据仓库星形架构映射到HBASE,hbase,data-warehouse,star-schema,dimensional-modeling,aggregates,Hbase,Data Warehouse,Star Schema,Dimensional Modeling,Aggregates,假设我在数据仓库设置中有一个星型模式。 有一个非常非常长的事实表(想想数十亿到万亿行)和几个低基数维表(想想100维表)。每个事实表都有外键 指向维度表主键的是位图索引。每个维度表主键也被位图索引。这是所有的快速连接。都很标准 假设数据仓库开始显示性能下降。时间到了 事实表越长,从位图联接返回结果的时间越长。业务需求是事实表不断增长(我们不能将超过一年的数据移动到存档存储) 我正在考虑以下解决方案: 哈希分区事实表,但这只是暂时搁置了不可避免的增长问题 数据库将物理星型架构数据库划分为多个架构/
是否有人使用配置单元脚本在更新存储有聚合数据的辅助HBASE表中的聚合列数据(即每日聚合事实表、每周聚合事实表、每月聚合事实表)时,从本质上模拟物化视图的行为更改最细粒度的事实数据表?对于通用数据仓库(查询时间非常短)来说,HBase不是一个好选择 任何单个表都只允许您沿一个维度或沿一条路径向下钻取维度(如果您将右组合键设计为右)。 它是不可撤销的,但不是现成的
在Hadoop上提供高性能SQL有几种方法(例如or),但它们无法提供像、、这样的大型并行数据库的性能,而类似的维度将在HBase中定义为keyrow。该值是您的度量值。如果事实表是无事实的,则HBase行中的值可以为null 依靠互联网上的贫乏资源,我认为这个想法是:
**RowKey** **Value**
DimensionA XX
DimensionA:DimensionB XX
DimensionB:DimensionC XX
DimenesionA:DimensionB:DimenesionC: XXX
它适合你的问题吗为什么你考虑HBASE而不是蜂箱?你想用HBASE表做什么?您将如何访问它?你想回答什么样的问题?没有“通用的方法”可以做到这一点,因为HBase没有提供一个通用的类似SQL的机制来查询itCheck-out,所以有很多建议可以将这种数据库设置为分区配置单元表。您将感谢它(几乎)的SQL功能。这很好,但请注意,HIVEQL将导致映射/减少作业,而不是即时结果。您的事实数据更新的频率是多少?更新是到处都有,还是集中在最近几天的数据中?在数据仓库应用程序中更为典型的情况下,配置单元表分区可以走很长的路。一维查询限制意味着我必须根据最频繁的查询条件从具有组合键的起始表构建。这是从关系方式的思维转变,大多数关系设计师不会选择这条道路。基本上,最终得到的是许多表,每个表中都有冗余数据,每个表都有自己的复合键。一个相关的想法是,在HBase中设置表创建优先级的方法是使用最频繁查询的复合键,这些复合键返回不同的结果列集。WHERE子句复合键集是HBase键,SELECT子句列是由上面的复合键维度访问的HBase列。这就颠覆了关系模型。您基本上会设计功能和频率。