我使用的是RDS MariaDB,并且要求拥有可用于分析的从属数据库。我正在寻找AWS Read Replica,但问题是它没有为我提供跳过包含一些敏感信息的少数表和列的复制的规定,而且我们不希望从属DB拥有该信息。
我可以使用AWS只读副本跳过几个表和列的复制吗?或者在AWS Read Replica中,我可以编写可以从副本数据库中删除此信息的AWS Lambda吗?
答案 0 :(得分:2)
答案 1 :(得分:2)
AWS Database Migration Service适用于此用例:
根据常见问题:
Q值。除了一次性数据迁移之外,我还可以使用AWS数据库 用于连续数据复制的迁移服务?
是的,您可以将AWS数据库迁移服务用于两个一次性数据 迁移到基于RDS和EC2的数据库以及连续数据库 数据复制。 AWS数据库迁移服务将捕获更改 在源数据库上并以事务一致的方式应用它们 通往目标的方式。可以从您的数据进行连续复制 以AWS为中心到数据库,反之亦然,复制到 数据中心中的数据库来自AWS中的数据库。持续不断 复制也可以在同源或异构之间完成 数据库。对于正在进行的复制,最好使用 多可用区用于高可用性。
如果您不熟悉AWS DMS,请查看官方文档“Getting Started”页面,然后在下面继续。
使用与源相同的架构创建目标数据库,除了这些您不想填充的表和列。
将源数据库和目标数据库与DMS关联后,您将需要创建一个任务来执行迁移,并使用特定的表映射来排除表并删除列。
使用规则操作排除创建selection rule,并指定要排除的表。迁移所有表的文档示例,但表名以DMS%
开头的表除外:
{
"rules": [
{
"rule-type": "selection",
"rule-id": "1",
"rule-name": "1",
"object-locator": {
"schema-name": "Test",
"table-name": "%"
},
"rule-action": "include"
},
{
"rule-type": "selection",
"rule-id": "2",
"rule-name": "2",
"object-locator": {
"schema-name": "Test",
"table-name": "DMS%"
},
"rule-action": "exclude"
}
]
}
使用rule-action remove和rule-target创建transformation rule any指定要删除的列的模式,表和列名称。以下示例(也来自文档)从test.Actor表中删除以字符col
开头的所有列:
{
"rules": [{
"rule-type": "selection",
"rule-id": "1",
"rule-name": "1",
"object-locator": {
"schema-name": "test",
"table-name": "%"
},
"rule-action": "include"
}, {
"rule-type": "transformation",
"rule-id": "2",
"rule-name": "2",
"rule-action": "remove-column",
"rule-target": "column",
"object-locator": {
"schema-name": "test",
"table-name": "Actor",
"column-name": "col%"
}
}]
}