您聯名賬戶中的餘額真的算對了嗎?

聯名賬戶作爲常見的金融分析場景,蘊含了複雜的模型關係處理,並不是人人都可以輕鬆算對。本文從介紹關係開始,深入淺出向您介紹如何處理聯名賬戶這種最常見的金融分析場景。

常見的關係

1)一對一關係

最簡單的關係是一對一關係。假設您有一個人的姓名列表和一個身份證號碼列表。每個人有且僅有一個身份證號碼,每個身份證號碼能且僅能對應到一個人。

一對一的關係相對較少,因爲往往給定關係的兩邊都不可能與一個且只有一個對應關係匹配。這是一對一關係的其他示例:

  • 公民和護照的關係(每個人只有一本來自特定國家/地區的護照,每本護照只能供一個人使用。)
  • 國家和國旗的關係(每個國家/地區只有一個國旗,每個國旗僅屬於一個國家/地區。)
  • 配偶關係(每個人只有一個配偶。)

2)一對多關係

一種更復雜(但也更常見)的關係是一對多或多對一關係。例如,如果您有一個藝術品清單和一個博物館清單,則每個藝術品只能一次位於一個博物館中,但是每個博物館可以擁有許多藝術品。

同時類似這樣關係的例子還有很多,例如:

  • 人員地址(每個人可以住在一個地址,但每個地址可以容納一個或多個人。)
  • 主人寵物(每隻寵物都有一個主人,但每個主人可以擁有一個或多個寵物。)
  • 農民設備(每臺農用設備由一個農民擁有,但是每個農民可以擁有許多設備。)

3)多對多關係

最後,實體也可以具有多對多關係。假設您有一個圖書清單和一個作者列表,每本書可能有一個或多個作者,並且每個作者可能寫了多本書。這時就形成了多對多關係。

並且這種關係看似特殊,但是卻很常見,商業活動中存在着許多這類場景,例如:

  • 在醫院場景中,每個醫生會爲多個病人看病,同時病人也會到多個醫生處就診,醫生和病人之間就存在多對多關係;
  • 在零售和快餐場景中,每張訂單關聯多張優惠券,同時優惠券也可以在多個訂單中使用,那麼訂單和優惠券間就存在多對多關係;

在學校場景中,每一名學生會學習很多門課程,同時一門課程會有很多名學生學習,那麼課程和學生之間同樣存在着多對多關係。
像這類多對多關係還有很多,下文將進一步介紹一些典型的多對多關係場景。

聯名賬戶場景

聯名賬戶是一個非常典型的多對多關係的業務場景:該場景中有一個事實表,該表記錄了每個賬戶的每一筆交易明細,同時,又存在賬戶信息、客戶信息和日期信息三張維度表。典型的模型樣例如圖所示。

由於存在聯名賬戶,所以一個賬戶可能對應多個客戶,同時一個客戶又會對應多個賬戶。這就爲分析提出了更高的要求。例如,我們在樣例數據中創建了4個客戶和6個帳戶。每個帳戶都關聯一個或多個客戶,每個帳戶在2005年11月30日的交易金額均1000元。

但是當進行客戶層面的統計時,很容易就能發現,每個客戶交易金額的小計等於屬於其對應賬戶的交易金額的總和,但是對於總計交易金額,由於僅存在6個賬戶,每個賬戶的交易金額均爲1000元,所以總計交易金額爲6000元,並不是各個客戶金額小計的總和。這裏需要對重複計算的賬戶,進行去重計算,這就是多對多關係的特別之處。

實現方式

那麼如何處理這種複雜而常見的多對多關係的模型呢?Kyligence產品提供了MDX數據集的建模能力,能夠輕鬆的支持多對多的分析場景。用戶僅需通過簡單的設置,無需任何代碼即可定義多對多關係。僅需進行如下設置,即可完成一對多對多關係的定義。 

用戶在最終分析時不需要關係底層的數據結構和數據關係,僅需要直接進行拖拽分析即可。

結論

本文介紹了建模時各類表與表間的連接關係,討論了常見的使用場景。並基於聯名賬戶場景詳細的解釋了多對多關係計算的重點。即使在大數據時代的今天,這些複雜的場景仍然隨處可見,是現代OLAP需要具備的高級建模能力。Kyligence產品能夠很好的支持多對多關係,既能夠實現海量數據的快速響應,又能支持OLAP分析所需的各種複雜連接關係。如需瞭解更多,請點擊閱讀原文,查看詳細Demo 視頻。

 

發佈了119 篇原創文章 · 獲贊 11 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章