现有列中的 AWS DMS 哈希列内容

问题描述 投票:0回答:2

我有两个相同的数据库,有两个相同的表。源数据库的表有数据,目标数据库的表没有数据。

两个数据库中的表都命名为

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 控制台上使用它时,它只会给出超级通用无效表达式错误。

任何帮助将不胜感激!谢谢。

sql amazon-web-services sqlite aws-dms
2个回答
0
投票

您似乎正在使用未记录的函数。我打赌你可以用

hash_sha256(x)
来代替。请参阅 hash_sha256()


0
投票

您无法以这种方式直接编辑现有列。您必须使用临时数据库并首先将其散列到新列中,然后将其传回。这里解释得很好:https://blog.saeloun.com/2021/11/21/pii-removal-aws-dms/

© www.soinside.com 2019 - 2024. All rights reserved.