Package Information
Released: 11/19/2025
Downloads: 15 weekly / 903 monthly
Latest Version: 1.0.9
Author: wuxiang1656
Available Nodes
Documentation
n8n Database Importer Node
一个用于将Kingsoft WPS工作流节点输出的数据导入到MySQL数据库的n8n自定义节点。
功能特性
1. 数据库连接配置
- Host: MySQL服务器地址
- Port: MySQL端口 (默认: 3306)
- Database: 数据库名称
- User: 数据库用户名
- Password: 数据库密码
- Connect Timeout: 连接超时时间 (毫秒,默认: 10000)
- Connection Pool Limit: 连接池最大连接数 (默认: 10)
2. 导入模式
全量导入 (Full Import)
- 先清空目标表(可选)
- 将所有数据导入目标表
- 适用于完全替换表数据的场景
增量导入 (Incremental Import)
- 根据唯一键组合进行去重过滤
- 只导入不存在的新数据
- 支持单个或多个字段组成的唯一键
- 适用于追加新数据的场景
3. 分批导入
- 支持自定义批次大小
- 默认每批处理 5000 条记录
- 范围: 100-10000 条/批
- 提高大数据量导入的性能和稳定性
4. 字段映射
- 支持源字段到目标字段的灵活映射
- 可添加多个字段映射
- 源字段名: Kingsoft节点输出的字段名
- 目标字段名: 数据库表中的字段名
5. 导入数量验证
- 自动验证导入数量是否一致
- 比对源数据行数与实际导入行数
- 提供详细的导入统计信息
安装
方式1: 从npm安装 (发布后)
npm install n8n-nodes-database-importer
方式2: 手动安装
- 克隆或下载此项目
- 在项目目录下运行:
npm install
npm run build
- 将生成的
dist目录链接到n8n的自定义节点目录
方式3: 在n8n中直接安装
- 打开n8n设置
- 进入 "Community Nodes"
- 搜索 "n8n-nodes-database-importer"
- 点击安装
使用说明
1. 配置数据库凭据
- 在n8n中创建新的凭据
- 选择 "MySQL Database"
- 填写数据库连接信息:
- Host: 数据库服务器地址
- Port: 端口号 (默认3306)
- Database: 数据库名
- User: 用户名
- Password: 密码
- Connect Timeout: 连接超时时间(可选)
- Connection Pool Limit: 连接池大小(可选)
2. 添加Database Importer节点
- 在工作流中添加 "Database Importer" 节点
- 连接到Kingsoft节点输出
- 选择已配置的MySQL凭据
3. 配置导入参数
基础配置
- Import Mode: 选择导入模式 (Full/Incremental)
- Target Table: 目标数据库表名
- Batch Size: 批次大小 (默认5000)
字段映射
点击 "Add Field Mapping" 添加字段映射:
- Source Field: Kingsoft输出的字段名 (如: "快手ID")
- Target Field: 数据库表字段名 (如: "kuaishou_id")
示例:
Source Field: 快手ID → Target Field: kuaishou_id
Source Field: 快手昵称 → Target Field: nickname
Source Field: 集团号 → Target Field: group_number
Source Field: 所属端口 → Target Field: port
增量导入配置
如果选择增量导入模式:
- Unique Key Fields: 填写唯一键字段 (多个字段用逗号分隔)
- 示例:
kuaishou_id(单字段) - 示例:
kuaishou_id,nickname(多字段组合)
- 示例:
高级选项
- Truncate Table Before Import: 全量导入前是否清空表 (默认: true)
- Continue on Error: 遇到错误是否继续处理 (默认: false)
- Verify Import Count: 是否验证导入数量 (默认: true)
4. 运行工作流
执行工作流后,节点将输出导入结果:
{
"success": true,
"totalRows": 9070,
"importedRows": 9070,
"duplicateRows": 0,
"failedRows": 0,
"message": "Successfully imported 9070 rows (0 duplicates, 0 failed)"
}
工作流示例
示例1: 全量导入
Kingsoft节点 → Database Importer节点
配置:
- Import Mode: Full Import
- Target Table: kuaishou_accounts
- Truncate Table: Yes
- Field Mappings:
- 快手ID → kuaishou_id
- 快手昵称 → nickname
- 集团号 → group_number
示例2: 增量导入
Kingsoft节点 → Database Importer节点
配置:
- Import Mode: Incremental Import
- Target Table: kuaishou_accounts
- Unique Key Fields: kuaishou_id
- Field Mappings:
- 快手ID → kuaishou_id
- 快手昵称 → nickname
- 开户日期 → account_date
输入数据格式
节点接受Kingsoft节点的输出格式:
[
{
"data": {
"result": [
["快手ID", "快手昵称", "集团号", "所属端口"],
[1469773427, "问美美妆", "", "上海亦盟"],
[2426532761, "黄皮肤旗舰店", "", "上海亦盟"]
]
},
"status": "finished"
}
]
第一行为表头(字段名),后续行为数据行。
输出数据格式
节点输出导入结果统计:
{
"success": true,
"totalRows": 100,
"importedRows": 95,
"duplicateRows": 5,
"failedRows": 0,
"message": "Successfully imported 95 rows (5 duplicates, 0 failed)"
}
字段说明:
success: 导入是否成功totalRows: 源数据总行数importedRows: 成功导入的行数duplicateRows: 重复跳过的行数 (增量导入)failedRows: 失败的行数message: 导入结果消息
注意事项
- 数据库权限: 确保数据库用户有目标表的INSERT、SELECT、TRUNCATE权限
- 字段类型: 确保源数据类型与目标字段类型兼容
- 唯一键: 增量导入时,确保目标表上有对应的唯一索引或主键
- 批次大小: 根据数据量和服务器性能调整批次大小
- 事务处理: 每批数据在事务中处理,失败会自动回滚
- 性能优化: 大数据量导入建议使用较大的批次大小(如5000-10000)
故障排查
问题1: 连接超时
- 检查数据库服务器是否可访问
- 增加 Connect Timeout 值
- 检查防火墙设置
问题2: 导入失败
- 检查字段映射是否正确
- 检查数据类型是否匹配
- 查看错误日志获取详细信息
- 启用 "Continue on Error" 继续处理其他批次
问题3: 重复数据未去重
- 确保目标表有唯一索引
- 检查 Unique Key Fields 配置是否正确
- 验证字段映射中包含了唯一键字段
问题4: 性能慢
- 增加批次大小
- 增加连接池大小
- 检查数据库索引配置
- 考虑在非高峰期执行
开发
构建
npm run build
开发模式(监听文件变化)
npm run dev
代码格式化
npm run format
代码检查
npm run lint
npm run lintfix # 自动修复
技术栈
- TypeScript
- n8n-workflow
- n8n-core
- mysql2 (Promise API)
许可证
MIT
支持
如有问题或建议,请提交Issue或Pull Request。
更新日志
v1.0.0 (2024-11-19)
- 初始版本发布
- 支持全量/增量导入
- 支持字段映射
- 支持分批导入
- 支持导入数量验证
- 支持连接池配置