原创 6- ABC模型之動因

動因是反應成本消耗的因子,用於成本分攤計算。因動分爲單一動因和複合動因。 比如A,B,C去吃大餐,花費了300元,如果AA制,則每人動因佔1個人,分攤後每人出100元,這就是單一動因,其實這樣還是不太公平,A和B很自律,一直保持好身材,只

原创 5- ABC模型之業務建模

業務建模是最關鍵的一個環節,如何真實的反應業務流程,讓成本更精確的分攤到對應的服務對象上,這個過程需要業務的專家和負責人,業務系統的產品經理、工程師都需要加入進來,並且共同討論和決策,讓業務加入是確定成本的分攤是否合理,各個利益部門是否達

原创 4- ABC模型之業務數據生成

爲了業務數據更真實,理解整個方法論的過程,我們用程序模似了物流的生命週期數據。所有程序代碼和建表腳本,初始數據見https://github.com/blt328/abc_blt 分別如下: 1:機構數據 在源頭機構表我們定義了深圳、廣

原创 1-財務數據解決方案介紹

在接下來的分享裏,我會講解財務數據建模在企業中的應用,以及解決方案。 在企業裏,是很難準確的核算公司產品的成本,主要體現在以下幾點: 1):財務覈算是按科目覈算的,無法覈算到產品上。比如薪酬這個成本在覈算的時候是不能記錄到產品的。 2):

原创 2-物流和快遞行業ABC模型

下圖是一個簡單的快遞物流生命週期,描述了整個快遞物流環節過程,以及主要的作業環節。 快遞路由:客戶寄一個快遞通過收件->支線運輸到中轉場->飛機、陸運、鐵路等->目的地中轉場->派件。 網點類型:每個機構的職責不一樣,相同類型的機構做相

原创 6-dw_元數據管理

元數據是幫助用戶和技術人員對數據倉庫裏的數據理解,可以分爲技術元數據和業務元數據。 技術元數據包含: 1:模型定義 定義數據倉庫裏各各種模型的功能,包括數據的口徑,各個字段的含義,使用範圍,出數時間和頻率。   2:血緣定義 模型裏的

原创 5-dw_星型模型和雪花模型

星型模型:由一個事實表連接多個維度表,圖形顯示像星星一樣,在維度表上存在一定的數據冗餘,如下圖: 在上圖中,我們的客戶維表,對客戶存儲的省、市、縣是有對數據一定的冗餘,爲了解決這個問題,設計出來的雪花模型。 雪花模型:爲了減少數據的冗餘

原创 4-dw_退化維

目前是一個數據爆炸時代,數據量增長很快,很多的一些維度表數據量大到足可以影響到你的報表展示,比如一些企業的客戶維度表,產品維度表等。 我們拿客戶維度表來說,在客戶維度表中,我們有客戶代碼,客戶名稱,月結客戶代碼,月結客戶名稱等,見如下圖:

原创 2-dw_事實表、維度表

事實表:記錄公司的一筆正常的業務數據,需要提供4W,什麼時候(When)在什麼地方(Where)有哪些人(Who)做了什麼事(What)。爲了方便後續分析,在設計事實表的時候,我們應該儘可能的提供詳細的維度信息和度量信息。 比如我們在談一

原创 3-dw_緩慢變化維

上次我們理解了維度表,哪什麼是緩慢變化維呢,比如我們有這樣的一個場景,A客戶在4月份的時候歸屬於X部門,在5月的時候歸屬於Y部門,如果A客戶的銷售額需要體現歸屬部門的變化關係。此時就需要用到緩慢變化維了。如下圖就是對客戶表的一個緩慢變化。

原创 14-oracle_數據庫開發過程

前面基礎知識已經學的差不多了,我們更重要的是如何應用這些基礎知識在工作中,把業務的需求通過這些知識點落地,在學習具體案例之前,怎麼保證我們的開發過程正確,以下幾點是大家在工作中需要經常記住的。 1:理解源頭數據業務含義和格式。    我們

原创 1-dw_數據倉庫

此係列主要是講數據倉庫的實戰。主要包括如下 1:數據倉庫的概念、事實表、維度表、緩慢變化維,退化維。 2:星型模型設計、雪花模型設計。 3:數據倉庫元數據治理。 4:實戰經驗 在公司和企業裏一般會有很多的業務系統,比如像銷售、財務的、人資

原创 13-oracle_數據庫存儲過程和包的開發

一:存儲過程(圖片左邊的procedure目錄): 在數據庫的實際開發過程中,我們不可能每個腳本用人工的方式執行,需要自動的批量提交腳本到數據庫執行,數據庫就提供了像存儲過程這樣的對象,方便開發人員把處理某個功能或報表的邏輯寫到存儲過程

原创 9-oracle_union和union all

Union是對結果集的並集操作,會要求2個集合是要有相同的字段和類型。 Union:對兩個結果集進行並集操作,不包括重複行,同時進行默認規則的排序 Union all:對兩個結果集進行並集操作,包括重複行,不進行排序   Union:我們

原创 10-oracle_表達式

1)關係表達式>,<,>=等 在我們做查詢語句時,經常會在where後面加上關係表達式。返回邏輯爲TRUE的記錄。 select * from t_sales a where a.sales_amt > 5000; 所以結果只返回了銷