开发者社区> 问答> 正文

多张源表映射一张目标表怎么配置映射关系

如跨库查询语句如下: from ADB.T1 at1 join ADB.T2 at2 on at1.id = at2.at1_id left join ADB.T3 at2 on at1.code=at3.code left join BDB.T1 bt1 on at1.gid = bt1.gid

现做异构,将ADB.T1, ADB.T2, BDB.T1两个库的三张表合并到 另一张表BDB.T2中, 表数据之间关系如上 Pipeline管理 里面如何做规则映射,还是otter有什么方案可以做如上需求支持?

假如T1, T3之间关系:数据一对一或是一对多通过主键来关联(如订单和商品这样)

场景如下: 比如购买了一件商品,T1生成了一条订单记录T2生成一条商品记录,目标表中这时要生成一条记录商品记录包含了T1表中的订单信息

【在同一个pipeline下面配置表T1--》目标表, T3-->目标表】 这样映射会生成多条记录。

原提问者GitHub用户fhqi

展开
收起
古拉古拉 2023-06-16 19:42:59 95 0
2 条回答
写回答
取消 提交回答
  • 随心分享,欢迎友善交流讨论:)

    对于跨库查询的情况,如果您现在进行异构之后需要将多个库中的表合并到一个表中,可以使用 Otter 进行数据同步,并在同步任务中进行表映射和数据转换,将多个库中的数据合并到一个目标表中。

    具体来说,您可以在 Otter 的同步任务中,使用多个 Source 对象,分别表示需要同步的多个数据源,在目标端使用一个 Target 对象,表示目标表,然后使用 Transformer 进行数据转换和映射,将多个数据源的数据转换为目标表的格式,并进行自然关联或者合并操作,最后将转换后的数据写入目标表。

    例如,在您提供的跨库查询语句中,需要将 ADB.T1、ADB.T2、ADB.T3、BDB.T1 四张表的数据合并到 BDB.T2 表中,您可以按照以下步骤进行配置:

    在 Otter 中创建一个同步任务,使用多个 Source 对象,分别表示 ADB.T1、ADB.T2、ADB.T3、BDB.T1 四张表所在的数据库,并使用一个 Target 对象,表示目标表 BDB.T2。

    在同步任务中,使用 Transformer 进行数据转换和映射,将多个 Source 对象的数据转换为目标表 BDB.T2 的格式。

    如果需要进行自然关联或者合并操作,可以使用 Transformer 中的 Joiner 进行操作,根据关联字段将多个 Source 对象的数据关联起来,并生成目标表的数据。

    最后,将转换后的数据写入目标表 BDB.T2 中,完成数据同步操作。

    对于您提到的场景,如果您需要将 T1 和 T3 表中的数据合并到目标表中,可以在同步任务中分别使用两个 Source 对象,分别表示 T1 和 T3 表所在的数据库,并使用一个 Target 对象,表示目标表。然后,使用 Transformer 进行数据转换和映射,并进行自然关联或者合并操作,最后将转换后的数据写入目标表中。

    需要注意的是,如果 T1 和 T3 表中的数据之间的关系是一对一或者一对多的关系,可以使用 Joiner 进行关联操作,如果是一对多的关系,可以使用 Aggregator 进行聚合操作,生成目标表的数据。如果是多对多的关系,则需要根据具体情况进行处理,例如使用多个 Joiner 进行关联操作并生成目标表的数据。

    2023-06-30 16:39:33
    赞同 展开评论 打赏
  • 1、建立源表ADB.T1, ADB.T2, BDB.T1,目标表BDB.T2 2、建立2个canal,分别对应ADB,BDB 3、建立2个channel里面,ADB.T1, ADB.T2在channel-A,BDB.T2在channel-B. 具体些: 目标表字段包括(主键1,a,b,c,d,e,f)

    T1字段包括(主键1,a,b,c)----》通过主键1同步到目标( insert语句)

    T3字段包括(主键1,d,e,f)----》通过主键1同步到目标(发现记录已经存在,update语句)

    要求T1和T3及目标表有相同的主键,otter里面针对相同的主键,如果发现目标库里面已经存在该记录,改写成update,不会产生重复数据。

    复杂场景,需要定制化扩展otter开发,不在otter的通用职责范畴。 不要再问怎么定制化开发了,请仔细看WIKI文档。

    原回答者GitHub用户funnyAnt

    2023-06-16 20:12:11
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载