SQL Server のことなら SQL Quality SQL Server パフォーマンス チューニング、コンサルティング、アドバイス、相談、定期診断、トレーニング

ホーム > 技術情報 > SQL Server 2012 自習書 DWH 関連の新機能

SQL Server 2012 自習書シリーズ (HTML 版)
新機能編 No.3「DWH(データ ウェアハウス)関連の新機能」

松本美穂と松本崇博が執筆した SQL Server 2012 自習書シリーズの「新機能編 No.3 DWH 関連の新機能」の HTML 版です。 日本マイクロソフトさんの Web サイトで Word または PDF 形式でダウンロードできますが、今回、HTML 版として公開する許可をいただきましたので、ここに掲載いたします。[2014年12月26日]

目次へ | 前のページへ | 次のページへ

4.3 DQS(Data Quality Services)によるデータ クレンジング処理

◆ DQS(Data Quality Services)によるデータ クレンジング処理

それでは、DQS を利用したデータ クレンジングを試してみましょう。

1.まずは、次のようにデータベース(DQStest)とテーブル(取引先マスター)を作成して、クレンジング対象のデータを INSERT しておきます。

CREATE DATABASE DQStest
go
USE DQStest
CREATE TABLE 取引先マスター
取引先コード    nvarchar(10PRIMARY KEY
 ,取引先名    nvarchar(60)
go
INSERT INTO 取引先マスター VALUES('TR001''日本マイクロソフト株式会社')
INSERT INTO 取引先マスター VALUES('TR002''マイクロソフト日本株式会社')
INSERT INTO 取引先マスター VALUES('TR003''日本マイクロソフト()')
INSERT INTO 取引先マスター VALUES('TR004''dummy1')
INSERT INTO 取引先マスター VALUES('TR005''dummy2')
INSERT INTO 取引先マスター VALUES('TR006''dummy3')
INSERT INTO 取引先マスター VALUES('TR0333''dummy4')
INSERT INTO 取引先マスター VALUES('XX011',  'dummy5')
go
SELECT FROM 取引先マスター

00080

2.次に、「SQL Server 構成マネージャー」ツールを利用して、[SQL Server ネットワークの構成]の["インスタンス名" のプロトコル](既定のインスタンスの場合は MSSQLSERVER)に表示される「TCP/IP」プロトコルが有効化されていることを確認します(Developer エディションを利用している場合は、既定で無効化されているので、有効化します)。

00081

3.次に、データ クレンジングのルール作成を行うために、「Data Quality Client」ツールを起動します。このツールは、[スタート]メニューの[すべてのプログラム]→[Microsoft SQL Server 2012]→[Data Quality Services]から起動することができます。

00082

4.Data Quality Client」ツールが起動したら、DQS サーバーの名前(画面は SERVER1)を入力して、[接続]ボタンをクリックします。

00083

DQS サーバーへの接続が完了すると、以下のようにホームページが表示されます。

00084

◆ ナレッジ ベースの作成

DQS では、ナレッジ ベースという単位で、クレンジングのための各種ルールを作成します。

1.ナレッジ ベースを作成するには、次のように[新しいナレッジ ベース]をクリックします。

00085

2.新しいナレッジ ベース]ページが表示されたら、[名前]へ「KB取引先」など任意の名前を入力して、[アクティビティの選択]で「ナレッジ検出」を選択し、[作成]ボタンをクリックします。

00086

ナレッジ検出を選択することで、既存のデータをもとにクレンジングのためのルールを作成していくことができます。

3.次の[マップ]ページでは、[データソース]に「SQL Server」、[データベース]と[テーブルまたはビュー]には、前の手順で作成したデータベース(DQStest)とテーブル(取引先マスター)を選択します。

00087

なお、データソースには「Excel」を選択することもできるので、Excel シート内のデータをもとにルールを作成していくことも可能です。

4.次に、[マッピング]セクションで、[基になる列]で「取引先コード」列を選択し、[ドメインの作成]ボタンをクリックします。

00088

DQS では、ドメインという単位でルールを作成します。[ドメインの作成]ダイアログが表示されたら、[ドメイン名]へ任意の名前(列名と同じ名前など)、[データ型]を適宜設定(文字列なら「String」を選択など)、[言語]ではスペル チェックを行いたい言語を選択(日本語は存在しないので、日本語データのみの場合は「その他」を選択)して[OK]ボタンをクリックします。

00089

Note: スペル チェックに使用する言語
スペル チェックに使用する言語には、日本語を選択することができませんが(日本語のスペルチェックはできない)、次のように[言語]で[英語]を選択して、英語のデータがあった場合には、スペル ミスを検出することができるので、入力ミスやイレギュラーなデータを検出するのに大変役立ちます。
00090

取引先名」列についても、取引先コードと同じようにドメインを作成します。

00091

5.ドメインの作成が完了したら[次へ]ボタンをクリックして、次のページへ進みます。

00092

6.次の[検出]ページでは、[開始]ボタンをクリックします。

00093

これにより、SQL Server 上の「取引先マスター」テーブルへアクセスして、データを取得し、取得が完了すると、次のように表示されます。

00094

データ件数や一意なデータ件数などが表示されます。確認後、[次へ]ボタンをクリックします。

7.次の[ドメインの値の管理]ページでは、[ドメイン]セクションで「取引先コード」が選択されていて、右ペインに「取引先マスター」テーブルの「取引先コード」列の値が表示されていることを確認します。

00095

8.次に、[ドメイン]セクションで[取引先名]をクリックして、右ペインに「取引先名」列の値が表示されることを確認します。

00096

9.次に、間違っているデータである「マイクロソフト日本株式会社」と「日本マイクロソフト()」、正しいデータである「日本マイクロソフト株式会社」の 3つを Ctrl キーを押しながら選択し、右クリックして、[シノニムとして設定]をクリックします。

00097

これにより、この 3つのデータをシノニム(同一データ)と見なすことができるようになります。

00098

ただし、このままでは、先頭に設定されたデータが間違っている値(マイクロソフト日本株式会社)なので、これを正しいデータへ修正する必要があります。

10.シノニムの先頭の値を変更するには、次のように正しいデータ(日本マイクロソフト株式会社)を右クリックして、[先頭として設定]をクリックします。

00099

これで、間違ったデータを正しいデータへ変更できるようになります。

11.シノニムの設定が完了したら、次のように[完了]ボタンをクリックします。

00100

12.これにより、作成したナレッジ ベースを DQS サーバーへパブリッシュするのかどうかを尋ねられるので、[パブリッシュ]ボタンをクリックします。

00101

パブリッシュが完了すると、次のようにダイアログが表示されるので、[OK]ボタンをクリックします。

00102

以上でナレッジ ベースの作成が完了です。

◆ ドメイン ルールの追加

次に、作成したナレッジ ベースへドメイン ルールを追加してみましょう。ドメイン ルールを利用すると、文字列の長さが正しいかどうかをチェックしたり(たとえば取引先コード5桁かどうかをチェックしたり)、正規表現を利用したデータのチェックを行ったりすることができます。

1.ドメイン ルールを追加するには、次のように[最近利用したナレッジ ベース]から作成したナレッジ ベース(画面は KB取引先)をクリックして、[ドメイン管理]をクリックします。

00103

2.ドメイン管理]ページが表示されたら、次のように[ドメイン]セクションで「取引先コード」が選択されていて、右ペインには[ドメイン プロパティ]タブが表示されていることを確認します。

00104

このタブでは、ドメインに設定したデータ型(画面は String)などを確認できます。

3.次に、[ドメイン]セクションから「取引先名」をクリックして、右ペインで[ドメインの値]タブを開きます。

00105

このタブでは、シノニムの設定などを確認/変更することができます。

4.次に、[ドメイン]セクションで「取引先コード」をクリックして、右ペインで[ドメイン ルール]タブを開きます。

00106

このタブでは、ドメイン ルールを設定することができます。

◆ 文字列の長さをチェックするドメイン ルールの作成

ここでは、取引先コードの "長さ" が 5文字であるかどうかをチェックするためのドメイン ルールを作成してみましょう。

1.ドメイン ルールを作成するには、次のように[新しいドメイン ルールを追加]ボタンをクリックします。

00107

名前]には、「長さが5文字」など任意のドメイン ルール名を入力して、[ルールの作成]セクションでは、[長さが次の値と等しい]を選択して、「5」と入力します。これで、取引先コードの "長さ" が 5文字であるかどうかをチェックすることができます。設定後、[すべてのルールを適用]ボタンをクリックします。

2.これにより、次のように「この操作はドメイン "取引先コード" の値に影響します」と表示されて、「無効な値」が 1個増加した主旨のメッセージが表示されることを確認できます。

00108

取引先コード列には、「TR0333」という長さが 6文字のデータがあるため、ルールに違反したデータ(無効な値)が 1件あるという主旨のメッセージです。[はい]ボタンをクリックして、ダイアログを閉じます。

3.続いて、次のように[ドメイン ルールが正常に適用されました]と表示されれば、ドメイン ルールの作成が完了です。[OK]ボタンをクリックして、ダイアログを閉じます。

00109

◆ ドメイン ルールのテスト/影響分析

作成したドメイン ルールは、実際にルールが正しく設定されているかどうかをテストすることができます。これも試してみましょう。

1.まずは、次のように[ドメインの値に対するドメイン ルールの影響を分析します]ボタンをクリックします。

00110

これにより、先ほどと同様のダイアログが表示されて、「無効な値」が 1個増加した主旨のメッセージが表示されることを確認できます。このボタンでは、既存のデータをもとに、ルールを満たしたデータとそうでないデータが何件あるかをチェックすることができます。

2.次に、[テスト データについて選択したドメイン ルールを実行します]ボタンをクリックします。

00111

3.次のように[ドメイン ルールのテスト]ダイアログが表示されたら、[テスト データの追加]ボタンをクリックして、[取引先コード]へ「TR123」と「TR1234」を追加します。

00112

4.テスト データを追加したら、次のように[テストの実行]ボタンをクリックします。

00113

TR123」は 5文字のデータなので、有効(緑のチェックマーク)、「TR1234」は 6文字のデータなので、無効(警告マーク)が表示されて、ドメイン ルールが正しく動作していることを確認することができます。確認後、[閉じる]ボタンをクリックしてダイアログを閉じます。

◆ 正規表現を利用したドメイン ルールの追加

ドメイン ルールでは、正規表現を利用することもできます。これも試してみましょう。

1.まずは、[新しいドメイン ルールを追加]ボタンをクリックして、新しいドメイン ルールを追加します。

00114

名前]には、「先頭がTRで始まる」など任意のドメイン ルール名を入力して、[ルールの作成]セクションでは、[値が正規表現と一致します]を選択して、「TR[0-9]*」と入力します。これで、取引先コードが "TR" で始まって、その後に任意の数値0~9)が複数回の文字であるかどうかをチェックすることができます。設定後、[すべてのルールを適用]ボタンをクリックします。

2.この操作はドメイン "取引先コード" の値に影響します」ダイアログが表示されると、「無効な値」が 1個増加した主旨のメッセージが表示されることを確認できます。

00115

取引先コード列には、「XX011」という TR で始まらないデータがあるので、ルールに違反したデータ(無効な値)が 1件あるという主旨のメッセージです。[はい]ボタンをクリックして、ダイアログを閉じます。

3.次のように[ドメイン ルールが正常に適用されました]と表示されれば、ドメイン ルールの作成が完了です。[OK]ボタンをクリックして、ダイアログを閉じます。

00116

4.続いて、作成したドメイン ルールをテストするために、[テスト データについて選択したドメイン ルールを実行します]ボタンをクリックします。

ドメイン ルールのテスト]ダイアログが表示されたら、次のように[テスト データの追加]ボタンをクリックして、[取引先コード]へ「TR111」と「AA123」を追加します。

00117

テスト データの追加後、[テストの実行]ボタンをクリックすると、「TR111」は TR で始まるので、有効(緑のチェックマーク)、「AA123」は TR で始まらないので、無効(警告マーク)が表示されて、ドメイン ルールが正しく動作していることを確認できます。

確認後、[閉じる]ボタンをクリックしてダイアログを閉じます。

5.ドメイン管理]ページへ戻ったら、右下の[完了]ボタンをクリックします。

00118

作成したナレッジ ベースを DQS サーバーへパブリッシュするのかどうかを尋ねられたら、[パブリッシュ]ボタンをクリックします。

以上でドメイン ルールの追加が完了です。

目次へ | 前のページへ | 次のページへ

事例1

SQLQualityは執筆とセミナーを通じて技術の啓蒙やエンジニアの育成支援も行っています
最新刊
SQL Server 2016 の教科書
SQL Server 2016 の教科書(ソシム)

弊社オリジナル制作の
SQL Server 2016 自習書も
マイクロソフトのサイトで公開中!
ダウンロードはこちら
セミナー風景
セミナー風景

ロングセラー
ASP.NET でいってみよう  SQL Server 2000 でいってみよう
ASP.NET でいってみよう
第7刷 16,500 部発行
SQL Server 2000 でいってみよう
第12刷 28,500 部発行
SQL Server 2014 CTP2 インメモリ OLTP 機能の概要
SQL Server 2014 CTP2 インメモリ OLTP 機能の概要(Amazon Kindle 書籍)

弊社執筆の
SQL Server 2014 自習書
マイクロソフトのサイトで公開中
目次はこちら

弊社執筆の
SQL Server 2012 自習書
マイクロソフトのサイトで公開中
ダウンロードはこちら
松本美穂のコラム
(公開活動などのお知らせ)

第60回:SQL Server 2017 自習書 No.3「SQL Server 2017 Machine Learning Services」のご案内
第59回:SQL Server 2017 自習書 No.2「SQL Server 2017 on Linux」のご案内
第58回:SQL Server 2017 自習書 No.1「SQL Server 2017 新機能の概要」のご案内
第57回:SQL Server 2017 RC 版とこれまでのドキュメントのまとめ
第56回:「SQL Server 2016 への移行とアップグレードの実践」完成&公開!
第55回:書籍「SQL Server 2016の教科書 開発編」(ソシム)が発刊されました
第54回:「SQL Server 2016 プレビュー版 Reporting Services の新機能」自習書のお知らせ
第 53 回:SQL Server 2016 Reporting Services の新しくなったレポート マネージャーとモバイル レポート機能
第 52 回:SQL Server 2016 の自習書を作成しました!
第 51 回:PASS Summit と MVP Summit で進化を確信!
第 50 回:新しくなった Power BI(2.0)の自習書を作成しました!
第49 回:Excel 2016 の Power Query を使う
第 48 回:新しくなった Microsoft Power BI ! 無料版がある!!
第 47 回:「Microsoft Azure SQL Database 入門」 完成&公開!
第 46 回:Microsoft Power BI for Windows app からの Power BI サイト アクセス
第 45 回:Power Query で取得したデータを PowerPivot へ読み込む方法と PowerPivot for Excel 自習書のご紹介
第44回:「SQL Server 2014 への移行とアップグレードの実践」ドキュメントを作成しました
第43回:SQL Server 2014 インメモリ OLTP 機能の上級者向けドキュメントを作成しました
第42回:Power Query プレビュー版 と Power BI for Office 365 へのクエリ保存(共有クエリ)
第41回:「SQL Server 2014 CTP2 インメモリ OLTP 機能の概要」自習書のお知らせです
第40回: SQL Server 2012 自習書(HTML版)を掲載しました
第39回: Power BI for Office 365 プレビュー版は試されましたか?
第38回: SQL Server 2014 CTP2 の公開
第37回: SQL Server 2014 CTP1 の自習書をご覧ください
第36回: SQL Server 2014 CTP1 のクラスター化列ストア インデックスを試す
第35回: SQL Server 2014 CTP1 のインメモリ OLTP の基本操作を試す
第34回: GeoFlow for Excel 2013 のプレビュー版を試す
第33回: iPad と iPhone からの SQL Server 2012 Reporting Servicesのレポート閲覧
第32回: PASS Summit 2012 参加レポート
第31回: SQL Server 2012 Reporting Services 自習書のお知らせ
第30回: SQL Server 2012(RTM 版)の新機能 自習書をご覧ください
第29回: 書籍「SQL Server 2012の教科書 開発編」のお知らせ
第26回: SQL Server 2012 の Power View 機能のご紹介
第25回: SQL Server 2012 の Data Quality Services
第24回: SQL Server 2012 自習書のご案内と初セミナー報告
第23回: Denali CTP1 が公開されました
第22回 チューニングに王道あらず
第21回 Microsoft TechEd 2010 終了しました
第20回 Microsoft TechEd Japan 2010 今年も登壇します
第19回 SQL Server 2008 R2 RTM の 日本語版が公開されました
第18回 「SQL Azure 入門」自習書のご案内
第17回 SQL Server 2008 自習書の追加ドキュメントのお知らせ
第16回 SQL Server 2008 R2 自習書とプレビュー セミナーのお知らせ
第15回 SQL Server 2008 R2 Reporting Services と新刊のお知らせ
第14回 TechEd 2009 のご報告と SQL Server 2008 R2 について
第13回 SQL Server 2008 R2 の CTP 版が公開されました
第12回 MVP Summit 2009 in Seattle へ参加

技術コミュニティでも活動中