更新时间:2025-12-30 GMT+08:00
分享

MongoDB Combine函数说明最佳实践

函数概述

combine() 函数是 MongoDB Reader 插件中用于高级字段处理的功能。该函数提供了一种数据迁移方法:在字段映射配置中明确指定的字段将正常迁移,而 MongoDB 中未明确配置的剩余字段则会自动合并成一个统一的 JSON 字符串。

工作模式

当在字段映射中使用 combine() 函数时,数据集成将执行以下操作:

1. 配置字段优先处理:配置中明确指定的字段将按正常方式迁移。

2. 剩余字段自动合并:文档中所有未被明确指定的字段将被收集并合并为一个 JSON 对象。

使用示例

假设源MongoDB文档结构如下:

{
  "_id": "user_001",
  "username": "john_doe",
  "email": "john@example.com",
  "age": 30,
  "address":
 {
    "city": "beijing",
    "district": "chaoyang"
  },
  "preferences":
 {
    "theme": "dark",
    "language": "zh-CN"
  },
  "last_login": "2024-01-15T10:30:00Z",
  "login_count": 142
}

目的端Mysql表结构如下:

CREATE TABLE `combine_test`
 (
  `id` varchar(100) DEFAULT NULL,
  `username` varchar(100) DEFAULT NULL,
  `email` varchar(100) DEFAULT NULL
,  `age` int(11) DEFAULT NULL,
  `address` varchar(100) DEFAULT NULL,
  `combine` text
) 
ENGINE=InnoDB DEFAULT CHARSET=utf8 

在该迁移场景中,源文档中的 _id、username、email、age 和 address 字段将按常规字段映射方式独立迁移,而文档中所有其他剩余字段内容将通过 combine() 函数合并,并以统一的 JSON 格式迁移至目标端的 combine 字段。

为实现上述迁移逻辑,可按以下方式配置数据集成作业:

在字段映射配置中新增一个自定义字段,将其键(key)设置为 combine,值(value)配置为 combine() 函数。此配置将确保未被显式映射的所有剩余字段自动聚合,并作为完整的 JSON 对象写入目标表的 combine 列。

图1 参数配置

完成ETL任务的配置与执行后,数据将严格按照预设的映射规则进行迁移,并成功写入MySQL目标数据库。

图2 数据写入成功

相关文档