Načtení tabulek faktů

Dokončeno

Běžná operace načítání datového skladu obvykle načítá tabulky faktů za tabulkami dimenzí. Tento přístup zajišťuje, že dimenze, ke kterým budou fakta souviset, jsou již v datovém skladu přítomny.

Fázovaná data faktů obvykle obsahují obchodní (alternativní) klíče pro související dimenze, takže logika pro načtení dat musí vyhledat odpovídající náhradní klíče. Pokud se datový sklad pomalu mění dimenze, musí být identifikována příslušná verze záznamu dimenze, aby se zajistilo, že se správný náhradní klíč použije ke spárování události zaznamenané v tabulce faktů se stavem dimenze v okamžiku, kdy došlo k faktu.

V mnoha případech můžete načíst nejnovější "aktuální" verzi dimenze; v některých případech ale možná budete muset najít správný záznam dimenze na základě sloupců DateTime, které označují dobu platnosti pro každou verzi dimenze.

Následující příklad předpokládá, že záznamy dimenzí mají přírůstkový náhradní klíč a že by se měla použít nejnovější přidaná verze konkrétní instance dimenze (která bude mít nejvyšší hodnotu klíče).

INSERT INTO dbo.FactSales
SELECT  (SELECT MAX(DateKey)
         FROM dbo.DimDate
         WHERE FullDateAlternateKey = stg.OrderDate) AS OrderDateKey,
        (SELECT MAX(CustomerKey)
         FROM dbo.DimCustomer
         WHERE CustomerAlternateKey = stg.CustNo) AS CustomerKey,
        (SELECT MAX(ProductKey)
         FROM dbo.DimProduct
         WHERE ProductAlternateKey = stg.ProductID) AS ProductKey,
        (SELECT MAX(StoreKey)
         FROM dbo.DimStore
         WHERE StoreAlternateKey = stg.StoreID) AS StoreKey,
        OrderNumber,
        OrderLineItem,
        OrderQuantity,
        UnitPrice,
        Discount,
        Tax,
        SalesAmount
FROM dbo.StageSales AS stg