Как избежать жестко закодированных размерных ключей? - PullRequest
0 голосов
/ 04 марта 2019

Я создал первичный ключ измерения, основанный на естественных ключах исходной таблицы.

CAST (CONCAT ('DIM_', NVL (A.CD1, 'TEXT')) || '.' || A.EAR 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, чтобы использовать суррогатный ключ.

...