OLAP 事实 table 条空记录

OLAP fact table empty records

我正在为 olap 查找设计事实 table。目前,我不允许用户 运行 olap 查询,例如自定义维度或切片。我将自己为 运行 特定报告创建查询。

我的问题是关于 table 这些报告的事实。我想避免更新现有记录,而只是为多个维度插入行。例如:

两个插入:

YEAR    AMOUNT
2016    1
2016    1

检查 year=2016 是否存在,而不是一次插入,如果存在则进行一次更新:

YEAR    AMOUNT
2016    2

使用 Upsert 逻辑如下:

插入源 table 与目标 table 的内连接时,在匹配时更新金额字段,否则插入新记录。

insert into target (select * from source s, target t where s.year <> t.year);

Update target T set T.amount = T.amount + S.amount 
from source S where T.year = S.year;

请看:

https://dba.stackexchange.com/questions/138409/fact-table-with-blank-dimensions/138515#138515

我面临的问题是试图将所有事实整合为一个 table。我了解到,最佳做法是针对不同的粒度将事实分解为不同的 table,并将列限制为事实所需的最小值。

插入数据是一项额外的工作,但在检索期间真正得到回报,这是数据库工作的大部分。