使用 aws dms 仅按特定列将 mongodb 表迁移到 mysql

Posted

技术标签:

【中文标题】使用 aws dms 仅按特定列将 mongodb 表迁移到 mysql【英文标题】:migrate mongodb table by specefic columns only to mysql using aws dms 【发布时间】:2021-04-30 05:47:50 【问题描述】:

我在 mongo 中有一个名为 reports 的架构和一个名为 totals 的集合。 其中的键如下所示:

  "_id" :  "dt" : "2018-12-02", "dt2" : "2018-04-08", "num" : 1312312312 , "str" : 1  

我想使用 DMS 将此集合迁移到 aws 上的 mysql 实例中。该表应如下所示:

create table tab(
dt date, 
dt2 date, 
num bigint) 

目前,我正在使用具有简单规则的 dms:


  "rules": [
    
      "rule-type": "transformation",
      "rule-id": "1",
      "rule-name": "1",
      "rule-target": "table",
      "object-locator": 
        "schema-name": "reports",
        "table-name": "totals"
      ,
      "rule-action": "rename",
      "value": "tab",
      "old-value": null
    ,
    
      "rule-type": "selection",
      "rule-id": "2",
      "rule-name": "2",
      "object-locator": 
        "schema-name": "reports",
        "table-name": "totals"
      ,
      "rule-action": "include",
      "filters": []
    
  ]

结果不是我想要的:

MySQL [stats]> desc tab;
+-------+----------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| _doc  | longtext | YES  |     | NULL    |       |
+-------+----------+------+-----+---------+-------+

MySQL [(none)]> select * from tab limit 1;
+------------------------------------------------------------------------------------------+
| _doc                                                                                     |
+------------------------------------------------------------------------------------------+
|  "_id" :  "dt" : "2018-12-02", "dt2" : "2018-04-08", "num" : 1312312312 , "str" : 1  |
+------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

【问题讨论】:

【参考方案1】:

端点需要有nestingLevel=ONE; 而不是nestingLevel=NONE;。 基本上,这意味着将数据视为表格而不是文档。

【讨论】:

以上是关于使用 aws dms 仅按特定列将 mongodb 表迁移到 mysql的主要内容,如果未能解决你的问题,请参考以下文章

如何修复AWS DMS到RDS的连接错误?

AWS DMS 迁移问题

AWS DMS 复制任务交换使用问题

使用 AWS DMS 加载数据时如何修剪列

AWS DMS 添加新列以跟踪更改

AWS DMS 交换文件占用所有空间