首页 > 开发 > 综合 > 正文

[译] 使用Using Data Quality Services (DQS) 清理用户数据

2024-07-21 02:48:34
字体:
来源:转载
供稿:网友
[译] 使用Using Data Quality Services (DQS) 清理用户数据

SQL Server 2012 Data Quality Services (DQS)  允许你使用自己的知识库来清洗数据. 在本文中我会展示一个简单示例.

使用DQS清理步骤如下:

A. 建立DQS 知识库 B. 建立DQS项目然后根据知识库清理数据

在SQL Server database中用下面脚本创建样本数据:

CREATE TABLE MyCustomers   (       CustomerID INT,       CustomerName NVARCHAR(255),       City NVARCHAR(32),       PRovince NVARCHAR(32),       LastUpdate DATETIME  ) INSERT INTO MyCustomers  VALUES      (1, 'Consolidate Co Ltd', 'Miami', 'FL','2013-01-01'),                      (2, 'Consolidation Company Ltd', 'New York', 'NY','2013-01-01'),                      (3, N'什锦的件', 'LA', 'CA','2013-01-01'),                      (4, 'Chop-suey Chinese', 'Los Angeles', 'CA', '2013-03-03'),                     (5, 'Big Cheese, The', 'Redmond', 'WA', '2013-02-02'),                     (6, 'THE BIG CHEESE', 'Chicago', 'Il','2013-02-02'),                     (7, 'To Be Filled Later', 'Redmond', 'Wash.', '2013-01-01')
A. 建立DQS 知识库

1. 先运行SQL Server 2014 Data Quality Server Installer 安装DQS

注: DQS只能安装在企业版或者商业智能版的SQL 上

image

安装完毕以后引擎新增的DQS_MAIN数据库,其中新增了三个Role,如果你要让其他用户访问DQS,那么必须赋予他们其中一个Role才可以访问DQS

image

2.装好以后启动 Data Quality Client.

image

3. 点击 New Knowledge Base.  Name字段输入 MyCustomerKB, 确定 Domain Management已经被选中,然后点击 Next

image

4. 点击 Create Domain 图标.

image

5. 弹出框里面 Domain Name写 CustomerName .  还有一个可选项  Format Output to . 可以选成 Capitalize.

image

6. 重复相同的步骤创建 City 和 State域(暂且叫域吧,不知道官方翻译成什么) .

image

7. 选择 City 域, 点击 domain values 标签. 在这个界面,你可以输入所有有效值或者无效值.

        • 点击 Add new domain value 图标.输入一个正确值, 比如Los Angeles,然后回车. 
        • 点击 Add new domain value 图标.输入一个无效值, 比如United States, 点击 Type 列的下拉框,然后选择黄色感叹号(yellow triangle, 无效值)  (这里有三个类型. 正确,无效和错误; 无效 (invalid) 表示该值在本域中无效,但是可能在另外一个域中有效. 例如 United States 不是city 域的有效值,但是它是country的有效值 ; 错误(error)则表示完全不正确). 你可以指定正确的值来修正无效或者错误值. 否则这些值会在清理过程中被标记为无效 (invalid).
        • 点击 Add new domain value 图标. 输入一个同义词LA,然后按回车. 选中 "LA" 和 "Los Angeles" 右击然后选择设置成同义词 (Set as Synonyms).

image

注意:默认情况下, DQS 包含一个 DQS_NULL 有效值, 你可以把它的类型改为无效, 比如你想标记缺失值.

接着改变主导值,右击Los Angeles并选择 Set as Leading during .

image

    • city域最终显示如下:

image

 

8. 选择 State 域 ,点击 domain values 标签. 在这个步骤.我们用通过表格导入值.

  • 从http://www.stateabbreviations.us/获取米国洲的缩写列表. 拷贝前三列到Excel然后保存为 csv 文件.
  • 点击import values 图标的下拉尖头,选择 import valid values from excel. ..balabala….

    image

      • 导入后结果如下. DQS自动把第一列作为主导值,后面的列作为同义词.  (这个DQS 一上来就让我看到Bug…我用的是SQL 2014 . 比如说有一行数据MarylandMd.MD    其中Maryland 并没有成为Md. 和MD的主导值)

    image

9. 选择 CustomerName 域,然后点击Term-Based Relations 标签. DQS允许你域值里面定义术语,并使他们标准化. 例如公司名称常包括 “corp”,当出现他的变种(比如 "Microsoft Corp" 或者 "Microsoft Corporation")的时候你可以使用DQS 标准化域值中的术语,在这个步骤中,我们将定义两个术语:

      • 点击 Add new relation 图标
      • 添加”co”值,并设置正确值为"Company" 回车继续.
      • 添加 "ltd" 值,并设置正确值为"Limited" . 
      • 完成后显示如下,然后点击Finish 按钮 .

    image

10. 点击 Publish 按钮 button继续.

image

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表