我有两个相同的数据库,有两个相同的表。源数据库的表有数据,目标数据库的表没有数据。
两个数据库中的表都命名为
testt
。
源数据库中的数据现在是什么样子
id name
----------
1 tim
2 bob
3 john
我希望
testt
表格在迁移后是什么样子:
id name
---------------------------
1 0wg9jg-wjeigwg-jieg
2 jwigj-iwjgw-ijgg
3 wjeoiweg-wjegiweg-jei
我只需要对目标数据库上
name
中的testt
列的内容进行哈希处理(或者任何uuid都可以)。
我的尝试:
{
"rules": [
{
"rule-type": "selection",
"rule-id": "1",
"rule-name": "SelectTable",
"object-locator": {
"schema-name": "public",
"table-name": "testt"
},
"rule-action": "include"
},
{
"rule-type": "transformation",
"rule-id": "2",
"rule-name": "HashNameColumn",
"rule-target": "column",
"object-locator": {
"schema-name": "public",
"table-name": "testt",
"column-name": "name"
},
"rule-action": "transform",
"expression": "sha256($column)",
"rule-description": "hasing on the name column"
}
]
}
当我在 AWS 控制台上使用它时,它只会给出超级通用无效表达式错误。
任何帮助将不胜感激!谢谢。
您无法以这种方式直接编辑现有列。您必须使用临时数据库并首先将其散列到新列中,然后将其传回。这里解释得很好:https://blog.saeloun.com/2021/11/21/pii-removal-aws-dms/