我在工作中有此要求,并想就如何解决这个问题提出一些建议:
我支持一个有一些数据(DB2)的小组,我们的小组希望该数据是合成的/没有任何可识别的数据。问题在于,我们拥有的某些数据还会与我无法控制的另一组中的某些(DB2)表动态连接在一起。
在这种情况下,我该如何实现一定水平的数据屏蔽/合成数据生成?
这里是我的情况的一个简单的简单例子:
我的DB2数据:
员工编号-名称-电子邮件
我的源表(我不控制):
员工编号-名称-地址
我的系统希望显示某人的地址而不将其存储在本地。因此,现在,如果我只是混淆员工编号之类的数据,而我的“地址”来源却没有,那么我就无法获取该地址(联接将不起作用)。
那么,除了说要执行一些基本的算术运算之外,还有什么方法希望在加入时相反地做同样的事情吗?只是听起来不像是上帝的方法。
有什么建议吗?
{对标记oracle表示歉意,但我想听到尽可能多的想法}
答案 0 :(得分:0)
您可以对员工编号进行哈希处理。因为它不能在连接上使用索引,所以会影响连接的性能(除非您让另一个团队在表达式上添加索引)
例如
SELECT M.Hashed_Employee_Number
, S.Address
FROM SourceTable S
INNER JOIN MyTable M
ON HASH8(S.Employee_Number) = M.Hashed_Employee_Number
(当然,总是存在哈希冲突的机会)