级别: 初级 Dan Callahan, 执行 IT 专家, IBM
2009 年 8 月 20 日 在包含有敏感数据的环境中,不仅需要屏蔽传统的关系数据库中的数据,还需要屏蔽可能用于测试场景的文本文件。客户需要持续地向供应商、外部测试员,甚至是内部测试员发送文件,这些文件包含的数据可能受到法规的制约。在本文中,学习如何通过使用 IBM® InfoSphere™ Federation Server 为文本文件中的数据创建一个传统的关系表(别名)来去除文本文件中的隐私数据的身份,然后使用 IBM Optim™ Data Privacy Solution 应用数据隐私算法。
简介
IBM Optim 为流线化测试数据的管理提供一个解决方案,从而更快、更轻松地创建能够反映端到端业务流程的适当测试数据库。这个解决方案可以通过 Data Privacy Solution 进行扩展,后者提供强大的数据转换功能,通过屏蔽私密的公司数据让您可以在应用程序测试中安全地使用它们。这些转换的应用范围非常广泛,从简单的数据屏蔽到针对复杂数据元素(比如信用卡号、邮件地址和身份识别号)的预打包转换算法。
在带有敏感数据的环境中,不仅需要屏蔽传统的关系数据库中的数据,还需要屏蔽可能用于测试场景的文本文件。客户需要持续地向供应商、外部测试员,甚至是内部测试员发送文件,这些文件包含的数据可能受到法规的制约。
本文向您展示如何结合使用 Optim Test Data Management Solution and Data Privacy 和 InfoSphere Federation Server 实现这个目标。为此,您需要使用 Optim Open Data Manager 将文本文件数据映射到表中,然后这些表被定义为 ODBC 数据源,并且 InfoSphere Federation Server 可以通过 ODBC 包装器访问它们。如图 1 所示:
图 1. 使用 InfoSphere Federation Server 中间件访问文本文件
本文描述的步骤包括:
- 确认您满足先决条件。您需要具有 Optim Test Data Management 和 Data Privacy Option,支持的最低版本为 7.1。Optim Open Data Manager 需要 5.0.1 或更新版本,InfoSphere Federation Server 需要 9.5 或更新版本。您还需要一个 Optim 文本文件许可。
- 定义需要屏蔽的 文本文件 (delim1.txt) 和随后的输出文件 (delim2.txt),从而使 Optim 可以通过 Optim Open Data Manager 访问它们。
- 将文件定义为 ODBC 数据源,以使 InfoSphere Federation Server 可以访问它们。
- 将数据源定义到 InfoSphere Federation Server,包括 ODBC 包装器、别名和用户映射。
- 提取数据、定义屏蔽算法,并在屏蔽后将其插入到新的输出文件 (delim2.txt)。在这个例子中的屏蔽使用 Optim 内部的一个简单函数 (substring),但是仅当这些文件带有关系表时才可以使用完整的屏蔽功能。
确认满足先决条件
Optim Test Data Management and Privacy 需要使用 7.1 版本,Attunity 需要使用 5.0.1 版本,InfoSphere Federation Server 需要使用 9.5 版本。
- 启动 Optim 并单击 Help > About Optim...:
图 2. Optim 版本级别验证
将显示版本号和级别:
图 3. Optim 版本级别
- 启动 Attunity Studio 并单击 Help > About Attunity
Studio…:
图 4. 验证 Attunity 的版本级别
将显示版本号和级别:
图 5. Attunity 的版本级别
为了对文本文件使用 Attunity,您需要适当的文本文件许可文件,因此按照以下步骤进行注册:
- 在 Windows 提示符中,输入:
cd C:\Program Files\Attunity\Server\bin |
- 然后输入:
nav_util register OptimFLAT06-15-09.txt |
- 最后会显示 OK。
要查看 InfoSphere Federation Server 的级别,请通过 DOS 命令提示符输入命令 db2licm –l,返回的结果如下所示:
- Product name: "InfoSphere Federation Server"
- License type: "CPU"
- Expiry date: "Permanent"
- Product identifier: "wsfs"
- Version information: "9.5"
根据 Optim 定义文本文件以使用 Attunity Studio File-Table Mapping
在很多情况下都需要屏蔽文本文件数据。为了利用 Optim Data Privacy Solution 中的各种算法,文件必须是可以访问的,就像访问带有列的关系表那样。然后,您可以在 Optim 工具中选择需要屏蔽的列,并利用 Optim 提供的功能和算法。
在这个小节中,使用 Attunity Studio 定义需要屏蔽的文本文件 (DELIM1.txt) 和输出文件 (DELIM2.txt)。在这个例子中,文本文件仅包含一行:
- 打开 Attunity Studio 开始定义文本文件。默认的视图是 Configuration,如果没有显示,请单击菜单选项 Window >
Show view > Configuration:
图 6. Attunity 配置屏幕
- 展开 localhost,右键单击 NAV,然后选择 Edit
Binding:
图 7. Edit Binding
- 将 DELIM 添加到您的数据源,并按下组合键 CTRL + S 或单击 NAV Window 选项卡保存设置,然后关闭编辑窗口(如果文件没有进行界定,而仅是平面的,那么类型应该为
type="ADD-FLAT")。
图 8. 添加数据源
- 在 Configuration 视图中,右键单击 DELIM 数据源,然后选择 Edit metadata:
图 9. 编辑元数据
- 展开 DELIM 数据源,然后右键单击 Tables 并选择 New table:
图 10. 创建表
- 右键单击该表,然后输入
DELIM1 作为表名,然后单击 Finish:
图 11. 新表向导
文件描述面板将显示在右边。
- 单击下一个面板上的 Browse 按钮,选择您的文件名,并选择作为分隔符和引号的特殊字符。(在这个例子中,我们选择逗号作为分隔符)。
图 12. 表参数向导
- 在面板的底部选择 Columns 选项卡。
- 在右上角单击 Insert 按钮,并填写表的第一列的列名(例如 COL1),然后单击 OK:
图 13. 表列向导
- 展开数据类型并向下滚动,直到找到您需要的数据类型。
- 选择 varstring 作为第一列的数据类型,它包含 “DAN”:
图 14. 表属性向导
- 接下来,您需要选择一个长度。在表示尺寸的列中滚动,并选择 10 作为长度。
- 单击 Down 按钮,然后单击 Insert 按钮,并对所有列重复该操作。
图 15. 表属性向导
现在,我们复制一个 DELIM1 的副本,称之为 DELIM2。
- 为此,您需要将定义导出到一个 XML 文件。在 Metadata explorer 中,右键单击 Tables,然后选择 Export
XML definitions...:
图 16. 表副本向导
- 填写文件名 (DELIM12) 或单击 Browse 选择一个不同的默认目录(默认目录为 C:\Program Files\Attunity\Studio),然后单击 Finish 保存导出的文件:
图 17. 表副本向导
- 在 Windows Explorer,转到 C:\Program Files\Attunity\Studio 并使用 Microsoft® Notepad 打开文件:
图 18. Windows
Explorer > Notepad
- 复制粘贴 DELIM1 表,并在复制行将其名称更改为 DELIM2:
图 19. Notepad
- 将文件保存为 DELIM12,以表明 DELIM1 和 DELIM2 表都位于该文件中。
- 在 Attunity Studio 中回到 Metadata explorer 以导入该文件。右键单击 Tables 然后选择 Import XML
definitions…:
图 20. 导入 XML 定义
- 找到该文件,并将文件类型更改为 *.*,然后在 DELIM12 文件中单击 Open。
- 单击 Finish 导入第二个表的定义:
图 21. 完成 XML 导出
DELIM2 表将显示在 DELIM1 表的下方:
图 22. 显示表向导
在进入下一步之前,使用 NAV_UTIL 测试到主数据源的连接。确保您能够从主 DELIM1 和副表进行选择。DELIM2 是空的,但您能够看到它。使用 nav_util 工具按照以下说明进行测试:
- 转到 c:\Program Files\Attunity-5.0\bin(或其他安装目录)。
- 输入
nav_util execute
DELIM:
图 23. 列表输出
- 输入
select * from DELIM1;:
图 24. 选择 DELIM1 输出
定义 ODBC 数据源
现在,我们已经为定义 ODBC 数据源做好准备,完成定义之后,InfoSphere Federation Server 就可以访问它们了。
- 转到 Start > Control Panel >
Administrative Tools > Data Sources
(ODBC)。
- 高亮显示 System DSN,然后单击 Add…:
图 25. ODBC Data Source Administrator
- 高亮显示 Attunity Connect Driver,然后单击 Finish:
图 26. Attunity Connect Driver
- 在第一个屏幕中填入名称 (DELIM),然后单击 Next:
图 27. Attunity DSN 属性
- 采用默认配置,然后单击 Next:
图 28. Attunity Binding
- 勾选复选框 Select default data source 和 Single,然后单击省略号 (...) 按钮选择数据源:
图 29. Attunity Extended Properties
- 单击加号 (+) 展开数据源,然后高亮显示您的数据源 (DELIM) 并单击 OK:
图 30. 浏览查找数据源
- 单击 OK 完成该步骤:
图 31. ODBC Administrator > Finish
将数据源定义到 InfoSphere Federation Server
现在,让我们将两个分隔文件定义到 InfoSphere Federation Server。(本文假设在进入下一步之前 InfoSphere Federation Server 已经安装并且正常运行)。然后,您将把这些文件与 ODBC 包装器关联起来,从而让 InfoSphere Federation Server 能够使用 ODBC 从这些文件提取数据或向其中插入数据。
- 在 DB2 Control Center 展开您的数据库和 Federation Objects,然后单击并选择 Create Wrapper:
图 32. Control Center
- 选择 ODBC 包装器类型,然后为您的包装器填入名称 (DELIM):
图 33. Create Wrapper
- 单击 Settings 选项卡。
- 将 DB2_FENCED 的值更改为 “Y”,然后单击 OK 保存设置:
图 34. 包装器设置
- 展开该包装器并右键单击 Server Definitions,然后选择 Create...:
图 35. 创建服务器定义
- 然后,您可以看到一些服务器,并选择您所需的服务器。单击 Discover… 按钮:
图 36. 创建服务器定义
- 对于当前选择的对象,取消选择所有复选框,然后选择所需的数据源:
图 37. 服务器选择
- 单击 Properties… 按钮,然后单击 Settings 选项卡。
- 确保勾选 PUSHDOWN 和 DB2_MAXIMAL_PUSHDOWN 复选框,将其作为服务器并将 “N” 值改为 “Y”:
图 38. 服务器设置
- 现在,您需要将本地用户 ID 映射到在 Attunity Studio 中使用的 NAV 用户 ID。从 Object 视图右键单击 User Mapping,然后选择 Create:
图 39. 创建用户映射
- 单击希望用于本地登录的用户,并通过单击向右箭头 (>) 按钮将其移动到第二个面板,然后单击 Settings 选项卡:
图 40. 用户定义
- 现在,在 Settings 文件夹中,填充将用于 Attunity 的用户 ID 和密码。在这个例子中,用户 ID 和密码都为 “nav”:
图 41. 用户设置
- 单击 OK 完成设置。
- 现在,您需要创建别名。右键单击 Nicknames,然后选择 Create...:
图 42. 创建别名
- 单击 Add,然后填充远程模式 (public) 和远程表名 (DELIM1),完成之后单击 OK:
图 43. 添加第一个别名
- 重复相同的步骤为 DELIM2 添加第二个别名:
图 44. 添加第二个别名
创建别名的其他方法
您还可以使用 Discovery 查找和创建别名。
- 右键单击 Nicknames 然后选择 Create 。
- 单击右边的 Discover...。
- 图 45 显示了这个步骤的屏幕截图,从该处可以填写用户 ID(nav)和密码(nav):
图 45. 发现别名
- 完成之后单击 OK。
- 检查您需要定义的别名,然后单击 OK:
图 46. 选择别名
提取数据并去除身份信息
在这个小节中,使用 IBM Optim 定义一个提取文件(使用访问定义文件),然后使用定义的屏蔽算法从 DELIM1 提取数据,并将数据从提取文件插入到 DELIM2。
- 启动 Optim。
- 选择 Options > Product…:
图 47. 启动 Optim
- 输入您的 Optim 密码(optim),然后选择 OK:
图 48. Optim 密码
- 单击 Database。
- 勾选复选框 Allow OPTIM PK/Rels on DB Views,然后单击 OK。(选择 Allow Primary Keys and Relationships
on Database Views 允许 Optim 访问数据库中的视图)。
图 49. Optim 数据库选项
- 要开始提取过程,请选择 File > New
> Extract:
图 50. 开始提取
- 填充 Description 字段(对于记住它的用途很有用),为新的提取文件指定一个名称,为访问定义选择 Named 单选按钮,并输入一个访问定义名称,然后单击访问定义编辑器的图标(跑步者图标右边第二个;图 51 已圈出):
图 51. Extract Request Editor
- 单击 Start Table 浏览列表:
图 52. 浏览 Start Table
- 高亮显示您的主分隔文件表 (DELIM1),单击 Select,然后关闭访问定义,并保存:
图 53. 选择 start 表
- 单击跑步者图标按钮提取数据。
- 如果没有出现 NO RUNSTATS 消息屏幕,请单击 Proceed。您应该会看到类似于图 54 的屏幕,它包含来自表的统计数据:
图 54. 统计数据报告
- 关闭提取窗口,并将提取名称保存为 DELIM11。
- 为了使用屏蔽进行插入,请选择 File > New
> Insert 并填充以下关于插入的字段:
- Description:插入 delim22
- Source File:DELIM11.xf(原文件就是刚才提取的文件)
- Control File:Text1.cf
- Table Map Name:DB2ADMIN.DELIM22(表映射是新的,您将编辑它)
图 55. 插入请求
- 通过单击表映射编辑器图标(跑步者图标往右第二个)编辑表映射。表映射用于定义您将如何屏蔽列。您可以在 Optim 的基础函数中进行选择(例如 SUBSTRING),或使用用于屏蔽信用卡号的更复杂算法。
图 56. Insert Request Editor
- 使用限定符和新的列映射填充表映射。
- 填充 Column Map ID 和列映射名(在 Column Map 或 “LOCAL” 下),然后右键单击列映射并选择 Open Column Map。确保将目标表更改为新的表 (DELIM2)。
图 57. Table Map Editor
- 通过在包含 COL3 的字段中输入下面的内容可以屏蔽列 3:
SUBSTR(COL3,1,5)
图 58. 屏蔽列
- 关闭并保存列编辑器,然后关闭表映射编辑器。
- 单击跑步者图标对第二个分隔文件执行插入:
图 59. 运行插入请求
应该会出现一个统计数据屏幕,详细显示插入的内容:
图 60. 插入统计数据
- 从第二个分隔文件选择,或通过浏览找到该文件,看看是否发生了屏蔽。(注意,列映射的子字符串简化了输出)。
C:\flat>type delim2.txt
"DAN","222","PRINC" |

 |

|
结束语
基于生产数据的高质量测试数据是测试策略的重要组成部分。然而,有意或者无意地将隐私数据用于测试可能会带来严重的后果。Optim Test Data Management 和 Data Privacy Option 的结合提供了一个优秀的解决方案,它不仅能够生成足以反映业务对象的适当测试数据库,而且还能够使用各种算法去除隐私数据的身份信息。
本文展示了如何使用 InfoSphere Federation Server 将文本文件映射到表来扩展这些功能,从而可以通过 Optim Test Data Management 和 Data Privacy Solution 的强大功能提取文本文件中的隐私数据并去除其身份识别信息。
致谢
特别感谢 Tim Smith 和 Kathy Zeidenstein 为本文提供技术指导并进行了编辑。
参考资料 学习
获得产品和技术
讨论
关于作者  | 
|  | Dan Callahan 是 Information Management 团队中关注 DB2 的高级认证 IT 专家,他研究所有运行 DB2 以及与 DB2 集成的产品和平台。他于 1987 年作为 MVS 系统程序员/数据库分析员加入 IBM,现在主要关注 DB2 for Linux, UNIX, and Windows 以及任何与 DB2 集成的产品。他还在中国和德国讲授关于 Information Management 软件产品组合的各种主题。 |
对本文的评价
|