kettle进行mongodb数据迁移

1 项目背景

        因mongodb数据量越来越大,引发业务查询查询越来越慢;数据量达到10个T左右;虽然目前有冷库,但需要隔半年进行一次数据迁移及数据删除;期间业务系统访问不;动作量大、影响面广;

2 实现难点

        考虑实现的便利性和难易程序,项目组决定采用kettle来对mongodb数据进行迁移;

        迁移目标:

        1、每天增量将前一天的数据通过kettle同步到mongodb归档库;当前一天同步失败后,第二天需要继续上次同步失败的位置继续数据同步;

        2、需要保障迁移到归档库的数据和原始表是一样;在迁移的过程中,发现采用mongodb输出组件迁移后会出现以下几个情况:

                2.1 源表_id的数据迁移到归档库以后,不是文档ID了

                2.2 源表的数组类型的字段迁移到归档库以后,变成了字符串类型

                2.3 源表的int64类型的字段迁移到归档库以后,变成了字符串类型

                2.4 源表的Boolean类型的字段迁移到归档库以后,变成了字符串类型;

3 实现步骤

3.1 设计同步日志表

kettle进行mongodb数据迁移_第1张图片

 3.2 ETL设计

主ETL

kettle进行mongodb数据迁移_第2张图片

设置系统参数-0 时间变量设置

kettle进行mongodb数据迁移_第3张图片

kettle进行mongodb数据迁移_第4张图片

kettle进行mongodb数据迁移_第5张图片

kettle进行mongodb数据迁移_第6张图片

你可能感兴趣的:(mongodb,mongodb,etl)