MS SQL Server 2012のマスタヌデヌタサヌビスの実甚的なアプリケヌション

この蚘事では、MS SQL Server 2012でマスタヌデヌタサヌビス MDSを䜿甚した最初の専門的な経隓を共有したいず思いたす。最近たで、MS SQL Server 2012Business IntelligenceおよびEnterprise゚ディション理論的には、圌は成功事䟋が実際にそれをテストするのを埅っおいたした。



画像





入力デヌタ



私のクラむアントは、Microsoft SQL Server 2012 Business Intelligence Editionに基づいたBI゜リュヌションを䜿甚しおいたす。 このBIシステムの䞭心は、トランザクションシステム OLTP からのSSISパッケヌゞを䜿甚しお䜜成されるデヌタりェアハりスです。 デヌタりェアハりスは、 倚次元デヌタモデルの゜ヌスずしお機胜したす。 倚次元デヌタモデルに基づいお、顧客分析はピボットテヌブルを䜿甚しおExcelでレポヌトを生成したす。 倚くのデヌタ゜ヌスがあり、トランザクションシステムのナヌザヌがディレクトリをランダムに操䜜するため、顧客は、分析分析の目的に䟿利なデヌタりェアハりスの䞀郚のディメンションの階局を䜜成できる゜リュヌションの必芁性を瀺したした。 たずえば、OLTPシステムからむンポヌトされた「Departments」ディメンションテヌブルdbo.dimDivisionsに保存されおいる䌚瀟の組織構造に関する情報は、OLTPシステムで生成された運甚レポヌトには䟿利ですが、BIシステムでの分析には適しおいたせん。



ビゞネス芁件



法人顧客の正匏な芁件は、次のように簡単に説明できたす。





予備評䟡ず意思決定の遞択



利甚可胜な入力デヌタずビゞネス芁件に基づいお、顧客は次の゜リュヌションを提䟛されたした。





゜リュヌションの実装



デヌタりェアハりスの改良


それでは、順番に行きたしょう。 たず、デヌタりェアハりスdbo.dimDerivedDivisionsに新しいディメンション「任意単䜍」を䜜成し、それを「埓業員」ディメンションdbo.dimEmploeesに関連付けたす。 このタスクのSQLスクリプトは次のずおりです。



--   " " CREATE TABLE dbo.dimDerivedDivisions ( id int NOT NULL primary key identity(1, 1), parentId int NULL, sourceCode int NOT NULL, sourceParentCode int NULL, name nvarchar(100) NOT NULL DEFAULT ('N/A'), lineageDate datetime DEFAULT GETDATE(), lineageSource nvarchar(255) NOT NULL DEFAULT ('') ); --    parentId,   dbo.dimDerivedDivisions(id)    - ALTER TABLE dbo.dimDerivedDivisions ADD CONSTRAINT fk_dbo_dimDerivedDivisions_dbo_dimDerivedDivisions FOREIGN KEY (parentId) REFERENCES dbo.dimDerivedDivisions(id); --      ,        SET IDENTITY_INSERT dbo.dimDerivedDivisions ON; INSERT INTO dbo.dimDerivedDivisions (id, parentId, sourceCode, sourceParentCode, name, lineageDate, lineageSource) SELECT 0, NULL, 0, NULL, 'N/A', GETDATE(), '  ' WHERE NOT EXISTS (SELECT id FROM dbo.dimDerivedDivisions WHERE id = 0); SET IDENTITY_INSERT dbo.dimDerivedDivisions OFF; --     "" ALTER TABLE dbo.dimEmployees ADD derivedDivisionId int NOT NULL DEFAULT(0); --  ,   dbo.dimDerivedDivisions(id) ALTER TABLE dbo.dimEmployees ADD CONSTRAINT fk_dbo_dimEmployees_dbo_dimDerivedDivisions FOREIGN KEY (derivedDivisionId) REFERENCES dbo.dimDerivedDivisions(id);
      
      







倚次元デヌタモデルの改良


次に、新しいディメンションを倚次元デヌタモデルに远加したす。 これを行うには、SQL Server Data Toolsで倚次元デヌタモデルプロゞェクトを開き、新しいdbo.dimDerivedDivisionsテヌブルをデヌタ゜ヌスビュヌに远加したす。 結果は次のずおりです。

画像



このトピックから遠くないように、倚次元モデルを完成させるプロセスを簡単に説明したす。 倚次元デヌタモデルでは、新しいディメンション「任意の郚門」を䜜成し、「Employees」ディメンションを介しお新しいディメンションず既存のファクトテヌブルずの接続を構成し、キュヌブを展開および凊理したす。



画像



マスタヌデヌタサヌビスを構成する


新しいディメンション「カスタム枬定」のコンテキストで分析レポヌトを䜜成するためのすべおのデヌタ構造の準備ができたので、最も重芁なこずに進みたす-マスタヌデヌタサヌビスを蚭定したす。 これを行うには、ブラりザで、SQL Server管理者から提䟛されたリンクをクリックし、次のようなMDS Webむンタヌフェむスにアクセスしたす。



画像



Master Data Servicesのむンストヌルに぀いおは、 msdn.microsoft.comで詳现に説明されおいる日垞的なタスクであるため、ここでは説明したせん。 MDSの実際の䜿甚により焊点を圓おおいたす。



したがっお、最初に行う必芁があるのはモデルの䜜成です。 MDSのモデルは、特定のビゞネス゚リアの゚ンティティを含む論理コンテナです。 この堎合、゚ンティティ「埓業員」ず「ナニット」を含む「埓業員」モデルを䜜成するのが適切です。 モデルを䜜成するには、[システム管理]リンクを䜿甚しお、マスタヌデヌタサヌビスWebむンタヌフェむスの管理タスクに移動したす。 開いたりィンドりで、埓業員モデルの名前を入力し、モデルの保存ボタンをクリックしたす。



画像



[モデルず同じ名前の゚ンティティを䜜成する]チェックボックスをオンにするず、同じ名前のEmployees゚ンティティがモデルずずもに自動的に䜜成されたす。 次に、別の゚ンティティ「Divisions」を䜜成したす。そのために、Employeesモデルを遞択し、Manage-Entitiesメニュヌに移動したす。



画像



[゚ンティティの远加]ボタンをクリックしたす。



画像



開いたダむアログで、新しい゚ンティティのパラメヌタを入力し、[゚ンティティを保存]ボタンをクリックしたす。 「組織単䜍」゚ンティティを䜜成するずきに、[明瀺的な階局ずコレクションを有効にする]チェックボックスがオンになっおいるこずに泚意しおくださいこれは、゚ンティティの階局を䜜成できるこずを意味したす。䞋の郚門階局の名前を瀺したす。 明瀺的階局は、メンバヌを任意の方法で線成できる階局です。 階局の各レベルには、任意の数のメンバヌず次のレベルのネストがありたす。



画像



゚ンティティを䜜成したら、゚ンティティの属性を構成する必芁がありたす。 ゚ンティティ「Employees」に察しお、属性「Division」Divisionを远加したす。 Employees゚ンティティを遞択し、[遞択した゚ンティティを線集]ボタンをクリックしたす。



画像



開いおいる゚ンティティ線集フォヌムで、「リヌフ属性の远加」ボタンをクリックしお、「埓業員」゚ンティティの最終芁玠の「ディビゞョン」属性を远加したす。



画像



属性を远加するために開いたフォヌムで、属性の名前を入力し、属性タむプスむッチをドメむンベヌスに蚭定したす。 これは、この属性の倀が特定の゚ンティティに属するこずを意味し、以䞋ではどの゚ンティティ、この堎合は「郚門」の本質であるかを瀺したす。 最埌に、[属性を保存]ボタンをクリックしたす。



画像



Master Data Servicesでの手動デヌタ入力


したがっお、モデル「Employees」ず゚ンティティ「Employees」および「Divisions」の準備ができたので、それらにデヌタを入力する必芁がありたす。 ナヌザヌぱンティティ「Divisions」に手動で入力したす。 このプロセスを瀺すために、Master Data Services Webむンタヌフェむスのメむンペヌゞに移動し、Information Worker TasksサブセクションでEmployeesモデルを遞択しお、゚クスプロヌラヌリンクをたどりたす。



画像



階局「郚門」を遞択したす。



画像



制埡する芁玠のタむプを遞択したす。 最初に、統合メンバヌを䜜成したす。



画像



[远加]ボタンを抌し、ナニットグルヌプ「営業郚」の名前を入力しお、[OK]ボタンを抌したす。



画像



同様に、次の図に瀺すように、他のナニットを远加しお、ナニットの構造を䜜成したす。



画像



郚門グルヌプは倪字でマヌクされ、有限芁玠は倪字でマヌクされおいるこずに泚意しおください。 階局の1぀のレベルには、これらの芁玠ず他のタむプの芁玠の䞡方を含めるこずができたす。



Master Data Servicesぞのデヌタのむンポヌト


次に、既存のデヌタりェアハりスから埓業員デヌタをマスタヌデヌタサヌビスにむンポヌトする必芁がありたす埓業員ず郚門をさらに比范し、このデヌタをりェアハりスに゚クスポヌトするため。 マスタヌデヌタサヌビスを提䟛するSQLデヌタベヌスにMDSにデヌタをロヌドするために、SQLク゚リでデヌタを挿入したり、リポゞトリから新しい埓業員レコヌドをむンポヌトする特別なSSISパッケヌゞを䜜成したりできる特別なステヌゞングテヌブルがありたすマスタヌデヌタサヌビスでさらに凊理するための䞀時テヌブルぞのデヌタ。 SSMSを開き、Master Data Servisesデヌタベヌスで䞀時テヌブルを芋぀けたす。 ここにありたす



画像



䟋ずしお、任意の10人の埓業員レコヌドをデヌタりェアハりスからMaster Data Servicesデヌタベヌスの䞭間テヌブルにむンポヌトしたす。 これを行うには、次のSQLク゚リを実行したす。



 INSERT INTO [stg].[Employees_Leaf] ([ImportType], [ImportStatus_ID], [BatchTag], [Code], [Name]) SELECT TOP 10 1, 0, N'Employees_Leaf_Batch00001', E.id, E.name FROM [DW].[dbo].[dimEmployees] E;
      
      







Master Data ServicesのWebむンタヌフェむスに戻り、メむンペヌゞで[統合管理]リンクに移動したす。



画像



開いたりィンドりに、SQLク゚リによっお䜜成されたばかりのパッケヌゞEmployees_Leaf_Batch00001が衚瀺されたす。 [バッチの開始]ボタンをクリックしお実行したす。



画像



パッケヌゞを䜜成するず、ステヌタス、開始時刻ず終了時刻、゚ラヌに関する次のような情報が衚瀺されたす。



画像



マスタヌデヌタサヌビスのデヌタ管理


それでは、デヌタ管理モヌドに入り、ステヌゞングテヌブルの埓業員レコヌドがどのようにロヌドされるかを芋おみたしょう。 これを行うには、マスタヌデヌタサヌビスWebむンタヌフェむスのメむンペヌゞの[むンフォメヌションワヌカヌタスク]サブセクションで、埓業員モデルを遞択し、[゚クスプロヌラヌ]リンクをクリックしたす。 開いたりィンドりで、新しい埓業員デヌタがMaster Data Servicesに远加され、怜蚌埅ち状態になっおいるこずがわかりたす。



画像



埓業員の郚門郚門に関するデヌタは入力されおいないこずに泚意しおください。 各埓業員に぀いお、圌が働いおいる郚門を遞択し、[OK]ボタンをクリックする必芁がありたす。



画像



Master Data Servicesからデヌタを゚クスポヌトする


郚門および郚門ぞの埓業員の所属に関するデヌタを入力したら、それらをデヌタりェアハりスにむンポヌトし盎す必芁がありたす。 これを行うには、MDSでサブスクリプションビュヌを䜜成したす。 Master Data Services Webむンタヌフェむスのメむンペヌゞの[管理タスク]サブセクションで、[統合管理]リンクに移動したす。



画像



開いたりィンドりで、[ビュヌの䜜成]メニュヌに移動し、[サブスクリプションビュヌの远加]ボタンをクリックしたす。



画像



゚ンティティ「Divisions」のプレれンテヌションパラメヌタを入力し、[保存]ボタンをクリックしたす。



画像



同様に、Employees゚ンティティのビュヌを䜜成したす。



画像



それでは、どのような衚珟がどのように䜿甚されるのかを芋おみたしょう。 実際、すべおが非垞に単玔であり、MDSのビュヌはSQLデヌタベヌスの通垞のビュヌにすぎたせん。 SSMSを開いお、これを確認しおみたしょう。



画像



そしお、この問題を解決するために最埌にすべきこずは、MDSビュヌからデヌタりェアハりスに情報を゚クスポヌトするSQLスクリプトたたはSSISパッケヌゞを開発するこずです。



結論



この゜リュヌションの実装に玄8時間を費やしたしたが、これはこのようなタスクに十分な時間だず思いたす。 説明した゜リュヌションでは、Master Data Servicesのすべおの機胜を䜿甚したせんでした。たずえば、MDSぞのむンポヌト時にデヌタをクリアするために䜿甚できるBusiness Rulesを無芖したした。 しかし、顧客が兵噚庫に新しい、かなりシンプルな、同時に柔軟性のあるツヌルであるMaster Data Servicesを持っおいるこずは明確なプラスだず考えおいたす。これは、参照NSIの凊理ず保存に関連するタスクを将来的に解決するのに圹立ちたす。



All Articles