我已经基于源表的自然键创建了维度的主键。
CAST(CONCAT('DIM_',NVL(A.CD1,'TEXT')))||'。'|| A.YEAR AS VARCHAR(255))
最终,我将使用代理键作为主键。由于我将基于维度的当前主键(DimKey)将事实与维度联接,因此我必须在事实的联接条件中应用类似的逻辑。
尺寸:
CREATE OR REPLACE VIEW DimTable1
AS
select
CAST(CONCAT('DIM_', NVL(A.CD1,'TEXT')) || '.' || A.YEAR AS
VARCHAR(255)) as Year_Key,
Year_CD
from base_table a
事实:
SELECT
B.Year_Key,
A.Col1,
B.Year_CD
FROM Table1 A
LEFT JOIN DimTable1 B
ON CAST(CONCAT('DIM_', NVL(A.CD1,'TEXT')) || '.' || A.YEAR AS
VARCHAR(255))=B.Year_Key
我想知道是否有什么方法可以避免在事实表的联接中进行硬编码,因为我将更改Dim表以使用代理键。