1

如何從關係源填充Dim_tbls?加載維度表後的邏輯

這些例子表給出:

tbl_sales: id_sales, fk_id_customer, fk_id_product, country, timestamp 
tbl_customer: id_customer, name, adress, zip, city 
tbl_product: id_product, price, product 

我的目標是讓這些屬性進入啓動模式。我遇到的問題是加載維度表的邏輯。我的意思是,我會將什麼數據加載到Dim_Product中?所有tbl_product產品?但是,我怎麼知道有多少銷售是用特定的產品完成的?

分析我想這樣做是:

How many people bought product x. 
How many sales are made from city x. 
How many sales were made between Time x and y. 

示例數據:

tbl_sales: id_sales | fk_id_customer | fk_id_product | country | timestamp 
       1 |  2  |  1  | UK | 19.11.2013 10:23:22 
       2 |  1  |  2  | FR | 20.11.2013 06:04:22 

tbl_customer: id_customer | name | adress | zip | city 
         1 | Frank|Street X| 211 | London 
         2 | Steve|Street Y| 431 | Paris 

tbl_customer: id_product| Price | product 
         1 | 100,00| Hammer 
         2 | 50,00| Saw 
+0

是的。正如我所說,這只是一個例子。 – user2428207

回答

2

讓我們先從一個非常簡單的星型架構模型;例如,我假定您不必擔心處理維度屬性的更改。

factSales
DateKey 
    CustomerKey 
    ProductKey 
    Counter (=1; this is a factless fact table) 

dimDate
DateKey 
    Date 
    Year 
    Quarter 
    Month 
    ... 

dimCustomer
CustomerKey 
    Name 
    Address 
    Zip 
    City 

dimProduct
ProductKey 
    Name 
    Price (if it changes, you need move it to factSales) 

有多少人購買了產品x。

SELECT DISTINCT CustomerKey 
FROM factSales 
WHERE ProductKey IN (SELECT ProductKey 
         FROM dimProduct 
         WHERE Name = 'Product X') 

有多少銷售是從X市制造。

SELECT SUM(Counter) 
FROM factSales 
WHERE CustomerKey IN (SELECT CustomerKey 
         FROM dimCustomer 
         WHERE City = 'City X') 

時間X和Y之間了多少銷售取得。

SELECT SUM(Counter) 
FROM factSales 
WHERE DateKey IN (SELECT DateKey 
        FROM dimDate 
        WHERE Date BETWEEN DateX AND DateY) 
+0

好吧,到目前爲止我明白了。但是,我將如何從上面的示例中加載表格(請參閱編輯後的末尾)。我不明白我們如何將數據分解到dim/fact表中。例如日期..好的,我現在在Dim表中記錄了日期,但是模式如何知道銷售何時完成?順便說一下:在我的數據模型中,將來不會有數據發生變化。 – user2428207

+1

事實表包含對'dimDate'(列DateKey')的引用,所以您需要加入這兩個表以確定銷售日期。你的例子非常簡單,所以事務表和維度維度+ dimDate的1:1映射應該預先填入你感興趣的時期的所有日期。從維度開始 - 加載屬性從您的表(包括自然鍵)並生成代理鍵('CustomerKey','ProductKey'等)。然後加載事實表 - 使用查找從維度獲取適當的鍵。 –

+0

我強烈推薦[尺寸建模權威指南](http://www.amazon.com/The-Data-Warehouse-Toolkit-Dimensional/dp/1118530802)書或至少[核心尺寸建模技術]( HTTP://www.kimballgroup。COM /數據倉庫,商業智能,資源/金博爾的技術/三維建模的技術/)。 –