0

我在工作中有这个要求,想就如何解决这个问题提出一些建议:

我支持一个拥有一些数据 (DB2) 的小组,我们小组希望这些数据是合成的/没有任何可识别的数据。问题是我们拥有的一些数据也与我无法控制的不同组的一些(DB2)表动态连接。

在这种情况下,我该如何实现一定程度的数据屏蔽/合成数据生成?

我的场景的一个简单的基本示例如下:

我的 DB2 数据:

员工编号 - 姓名 - 电子邮件

我的源表(我无法控制):

员工编号 - 姓名 - 地址

我的系统想要显示某人的地址而不将其存储在本地。所以现在如果我只是混淆了员工编号等数据而我的地址来源没有,那么我就无法获得地址(连接不起作用)。

那么除了说执行一些基本的算术运算并希望在加入时反过来做同样的事情之外,还有什么办法吗?这听起来不像是上帝的方法。

有什么建议么?

{为标记 oracle 道歉,但我想听到尽可能多的想法}

4

1 回答 1

0

您可以散列员工编号。它会影响连接的性能,因为它不能在连接上使用索引(除非你让其他团队在表达式上添加索引)

例如

 SELECT M.Hashed_Employee_Number
 ,      S.Address
 FROM        SourceTable S
 INNER JOIN  MyTable M
 ON HASH8(S.Employee_Number) = M.Hashed_Employee_Number

(当然总是有哈希冲突的机会)

于 2018-07-26T09:44:35.843 回答