我有一个平面文件资源,这些资源被提取到事实和维度中。一些维度也来自数据库资源。转换过程是根据需要设置的(如果有新的/更新的平面文件)。问题是,某些数据引用不存在或基于数据库资源的维度不匹配,因此事实的外键 id 值设置为默认值(如果没有匹配数据,则为零)。
如果所述维度(数据库资源)已更新,我如何对事实执行更新?这种场景的最佳实践/例程是什么?
这是示例插图
Flatfile source product list (db source)
-------------------------------- ------------------------------
| product name | year | volume | | prodcode | name |
-------------------------------- ------------------------------
| apple | 2020 | 1000 | | 001 | apple |
| watermelon | 2020 | 2000 | | 002 | mango |
-------------------------------- ------------------------------
事实/维度
production_fact dim_product
------------------------------- ---------------------------
| fk_product| fk_date| volume | | id | prodcode | name |
------------------------------- --------------------------|
| 2 | d001 | 1000 | | 1 | n/a | n/a |
| 1 | d001 | 2000 | | 2 | 001 | apple |
------------------------------- | 3 | 002 | mango |
---------------------------
如果要更新产品列表(003 西瓜),我应该用新值替换 dim_product row#1 吗?