2014年1月22日 星期三

設計 Master Data Services (MDS)

Master Data Services

Master Data Services(MDS)主要用途就是要用來執行主要資料管理(Master Data Management, MDM)。 主要資料指的是單位組織對其非交易之資料進行探索與定義,以便匯編成一份可維護的主要清單。 成功的 MDM 方案可產生可靠的集中式資料,以利資料分析,以便導出更好的商業性決策。

也就是說,MDS 主要用來維護一個精確且集中式的資料(即主要資料),確保整個組織的所有應用程式都能夠共同參考這一份資料。 例如:ERP, HMS, CRM 等不同系統,他們都必參照到"人"的資料,就可以透過 MDS 建立一份人的主要資料,以便當做這些應用程式的中央資料單位。 或者像郵遞區號,通常也都是當做主要資料。

MDM 專案一般包含內部商業程序的評估與重組,以及 MDM 技術的實作。 只要透過適當的訓練,大部分商務使用者應該都可以實作 Master Data Services 方案。 此外,您還可以使用 MDS 管理任何網域(domain);它不是單指管理客戶、產品或帳戶的清單。 首次安裝 MDS 時,它不包含任何網域的結構,但您可以經由建立模型來定義所需要的網域。

Defining Master Data

什麼是主要資料

管理主要資料

MDM Challenges

Installing MDS

Master Data Services 包含在 SQL Server 之中,但僅支援 64-bit 版本。 請參考 MSDN:SQL Server 2012 版本支援的功能

MDS 架構

MDS 的組成份子

在安裝 MDS 前,我們先瞭解一下 MDS 架構。該架構可為四個部分:

  1. 主要資料(Master Data):主要資料與MDS系統物件是分開儲存的。
  2. MDS系統物件(MDS System Object):MDS系統物件包含 system tables 、 programmatic objects ( such as system stored procedures and functions).
  3. MDS服務(MDS service):負責執行 MDS 方案中的業務邏輯和資料存取。
  4. 主資料管理員(Master Data Manager):提供使用者或管理員操作的網頁程式。

新增主資料的方法

你可以使用以下方式來新增主要資料

  • 在「Master Data Manager」中手動建立。
  • 使用 Excel 的「MDS 增益集
  • 由現有資料庫「匯入」到 staging 資料表。

有了主要資料,你可以在 MDS 中建立「訂閱檢視(subscription views)」,以便將 MDS 資料匯出至訂閱系統。 其他應用程式則可以由訂閱檢視檢視 Master Data Services 資料庫中的已發行資料。

安裝 MDS

完整的 MDS 服務安裝過程,除了要安裝 MDS 服務程式外,也必須建立用來管理主資料的「主資料管理員網站」,還有建立 MDS 資料庫。 而且為了正確執行這些功能,你還得啟用特定的 Windows 功能,建立特定的 Windows 使用者角色。 整個程序可為三個步驟:

安裝前工作

因為主資料管理員(Master Data Manager)是 IIS 底下的一個 Web 程式,所以你必須先確認與 IIS 相關的服務是否已安裝啟動。 而且這個網站採用 Windows 認證,所以你也必須為這個網站建立必要的 Windows 角色。 還有這個網站是使用 Microsoft Silverlight 5 製作,所以你的電腦也必須包含 Silverlight 的執行環境。

帳戶和權限

你必須建立一個角色,以便設定執行權限給適當的使用者。

必要的服務

MDS 網站需要以下角色服務:

  • Web 管理工具
    • IIS Management Console
  • WWW 服務
    • 一般 HTTP 功能
      • HTTP Errors
      • Default Document
      • Static Content
      • Directory Browsing
    • 安全性
      • Windows Authentication
      • Request Filtering
    • 應用程式開發功能
      • ASP.NET
      • .NET Extensibility
      • ISAPI Extensions
      • ISAPI Filters
    • 狀況及診斷
      • HTTP Logging
      • Request Monitor
    • 效能特性
      • Static Content Compression

必要的功能

  • NET Framework 3.0 or 3.5 Features
    • WCF Activation
    • HTTP Activation
    • Non-HTTP Activation
  • Windows Process Activation Service
    • Process Model
    • .NET Environment
    • Configuration APIs

安裝作業

安裝後工作

系統安裝完之後,你必須使用「MDS Configuration Manager」來建立「主資料管理員網站」,以及建立「MDS 資料庫」。

1.執行 MDS 組態管理員

2.在 MDS 組態管理員中建立 MDS 管理員網站及 MDS 資料庫。

建立 MDS 資料庫。

建立主資料管理員網站

3.瀏灠主資料管理員網站。

建立 MDS 模型

A Master Data Services model is a container for all master data objects. One model typically covers one master data business area. When you create an MDS model, you should create all of the objects needed for a specific business area. For example, when you create a model for products, you should include in the model all related data, as well as product subcategories and product categories.

MDS 模型(Models)

模型 是 Master Data Services 中用來將資料分組的邏輯結構。 你可以使用一個或多個模型,通常習慣依不同的業務區域將主要資料組織成不同的模型,讓相類似的資料可以群組在一起。 主要資料通常以四種方式分類:人員、位置、東西、概念(people, places, things, concepts)。 例如,您可以建立一個 Product 模型來容納與產品相關的資料,或是建立一個 Customer 模型來容納與客戶相關的資料。

模型包含下列物件:

  • 實體(Entities)
  • 屬性和屬性群組(Attributes and attribute groups)
  • 明確和衍生階層(Explicit and derived hierarchies)
  • 集合(Collections)

下圖顯示模型中物件之間的關聯性。

上圖模型說明:

  • Product 模型包含二個實體: Product 和 Subcategory.
  • Product 實體包含以下屬性:Code、Name、Weight...。
  • 部份屬性是domain-based
    也就是該屬性值是參考其他實體,例如上圖中連接 Product 和 Subcategory 這二個實體的 Code 屬性,就是 domain-based 屬性。 這個 domain-based 的 Code 屬性是 Subcategory 的鍵值(key)。
  • 在 MDS 中,每個實體都必須包含二個固定名稱的屬性:CodeName
  • 模型包含實體。
  • 實體包含屬性、明確階層和集合。
  • 屬性可以包含在屬性群組中。
  • 當實體做為另一個實體的屬性時,就會有網域屬性(Domain-based attributes)。

MDS 物件(Objects)

實體(Entities)

最基本的 MDS 物件就是實體,一個實體表示真實世界中的一件事或是一個概念,它是商務中感興趣的東西。 你可以想像成:實體就像資料表,而屬性就像資料表的欄位。

In an MDS model :

  • The central entity in a model is typically also a starting point in navigation for end users.
  • the central entity is called a base entity, and other entities relate to this central entity.
  • Entities have attributes. Each entity must have at least two attributes, the Name and Code attributes.
  • Values for the Code attribute must be unique within an entity, Code is like a key of an entity.
  • There are three types of attributes:
    • Free-form :這個類型的屬性,允許屬性值可以任意輸入,例如任意的文字、數字、日期或連結。
    • Domain-based :這個類型的屬性,表示屬性值是由其他實體擴展來的,也就是只允許正確地輸入某個實體的 key 值。
    • File :這個類型的屬性,,表示使用檔案來儲存實體的文件或影像屬性。

屬性(Attributes)

屬性(Attributes)

屬性也是 Entity 中的物件。 您可以將屬性視為實體資料表中的資料行,有時也稱為實體的成員。 屬性值則是用來描述成員的值。

屬性群組(Attribute Groups)

若實體有很多個屬性,你可以將任意的幾個屬性組織成「屬性群組(Attribute Groups)」,這樣在 Master Data Manager WebAPP 中顯示時,就可以使用 Tab 來分組顯示不同組別的屬性。

網域屬性(Domain-based Attributes)

設定成「網域(Domain-based)」類型的屬性,就稱為網域屬性。 表示屬性值是由其他實體擴展來的,也就是其值必須是其某個實體的成員,這種設定可以防止使用者輸入錯誤的資料,相當於關連資料庫中的條件約束。

網域屬性關聯性是衍生階層的基礎。

階層(Hierarchies)

在 MDS 中,你可以建立「階層」。 階層是一個樹狀的結構,通常是用來將實體成員分組,以利資料的匯總與分析。 例如,你可以使用商品的種類和尺寸建構一個階層,那麼你就可以由這個樹狀階層由上往下找到你要的資訊。

階層包含什麼:

  • 每個階層都包含一個或多個成員。
  • 階層中的所有成員都必須來自相同的模型中。
  • 當成員變更或刪除時,階層都會自動更新,以確保資料的正確性。

階層 vs 分類

階層與分類有所不同。 分類會同時根據多個屬性來組織成員,例如同時使用 尺寸、顏色、款式 等三種屬性來組織一台腳踏車。 而階層則一次根據一個屬性來組織成員,例如你每次只能使用一種屬性來組織一台腳踏車,例如先用尺寸,再用顏色,再用款式。

您可以建立多個階層,用來方便檢視成員。而階層大至可分成以下三個類型:

PS. 什麼是 Ragged 和 Level-based 階層

階層是一種樹狀結構,如果葉級成員都位在同一層,就稱為「 Level-based 階層」。如果葉級成員不在同一層,就稱為「 Ragged 階層」。

明確階層(Explicit Hierarchies)

由同一實體內的成員建立的階層稱為「明確階層」。

  • 階層中的成員都來自單一實體的成員。
  • 階層結構是由使用者自行定義而成。
  • 使用合併成員群組其他成員
  • 明確階層可以是不完全的(ragged),也就是階層不固定。

明確階層可分成兩種類型:強制和非強制。

  • 強制明確階層(mandatory explicit hierarchy ):所有分葉成員都必須包括在階層樹狀結構中。
  • 非強制明確階層(non-mandatory explicit hierarchy ):所有分葉成員都是位於系統建立的 [未使用] 節點。

如何加入明確階層

在 MDS 的 [系統管理] 中,你可以直接在實體的編輯功能內,建立明確階層,如下圖:

如何組織明確階層

在 MDS 的 [總管(Explorer)] 中,你可以在[階層]功能中組織明確階層。它分成二部驟來完成:

1. 加入合併成員(Consolidated Member)

「合併成員」是用來將成員分組的物件。你可以自訂結構,而且它的階層允許 Ragged 的。

2. 在階層中移動成員

接著你就可以將成員由[未使用(Unuse)]搬移到適當的「合併成員」之中。

衍生階層(Derived Hierarchies)

由「網域屬性」建立的階層稱為「衍生階層」。

  • 階層中的成員可來自不同實體的成員。
  • 階層結構是由網域屬性之間的關聯性建構而成(domain-base attribute relationship)。
  • 使用某個實體的分葉成員群組另一個實體的分葉成員
  • 永遠包含固定數目的層級 。

衍生階層,如下圖:

在 MDS 中,你必須在管理[選單]中,執行[衍生階層]

下圖中,我們建立一個衍生階層,它的成員包含 Department 和 Employee 實體中的成員。而且它的階層是 Level-based 的。

遞迴階層(Recursive Hierarchies )

遞迴階層是指階層具有遞迴關係,通常這會發生在該「實體」包含自身「網域」屬性的屬性。

下圖中,因為 ParentDeptCode 是 domain 屬性,且參考到本身的實體,所以形成遞迴階層。

集合(Collection)

集合中的成員必須來自單一實體,當你不需要檢視整個完整的階層,又必須依若干特定群進行報告或分析時,這時就可以利用集合來分組。

MDS 提供的功能

在建構 MDS 模型後,它提供許多功能來管理主要資料,以改善資料品質或者移動資料。 例如: 商務規則驗證版本等功能可以用來改善資料品質; 匯入匯出部署模型等功能可以用來移動資料。

商務規則

在 Master Data Services 中,商務規則是用來確保主要資料品質和正確性的規則。 您可以使用商務規則自動更新資料、傳送電子郵件,或啟動商務程序或工作流程。

要使用商務規則,必須完成以下步驟:

  • 建立與發行商務規則
  • 套用商務規則

商務規則是您在[主資料管理員]中,先透過 If/Then 陳述式來建立好商務規則,再將商務規則套用到屬性值, 如果屬性值符合指定的條件,便會執行動作。 可能的動作包含:變更成預設值或變更成其他值,也可以結合電子郵件傳送通知。

驗證

在 Master Data Services 中,會驗證資料以確保其正確性。 其中一部分驗證會自動發生,而另外一部分驗證則會根據管理員建立的商務規則。

沒有留言:

張貼留言