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