
openmf/ph-ee-importer-rdbmsImporter RDBMS microservice镜像是一个轻量级、高性能的关系型数据库(RDBMS)数据导入微服务,旨在提供高效、可配置的数据抽取、转换和加载(ETL)能力。该镜像基于微服务架构设计,可独立部署或集成到现有服务体系中,支持多种关系型数据库(如MySQL、PostgreSQL、SQL Server等)的数据导入操作,适用于各类数据集成和数据迁移场景。
bashdocker run -d \ --name importer-rdbms \ -e DB_HOST=mysql.example.com \ -e DB_PORT=3306 \ -e DB_USER=import_user \ -e DB_PASSWORD=secure_password \ -e DB_NAME=enterprise_db \ -e DB_TYPE=mysql \ -e SOURCE_TYPE=csv \ -e SOURCE_PATH=/data/input \ -e BATCH_SIZE=2000 \ -e LOG_LEVEL=INFO \ -v /local/data/input:/data/input \ -v /local/config:/config \ your-registry/importer-rdbms:latest
创建docker-compose.yml文件:
yamlversion: '3.8' services: importer: image: your-registry/importer-rdbms:latest container_name: importer-rdbms restart: always environment: - DB_HOST=mysql - DB_PORT=3306 - DB_USER=root - DB_PASSWORD=root_password - DB_NAME=target_db - DB_TYPE=mysql - SOURCE_TYPE=json - SOURCE_PATH=/data/input - BATCH_SIZE=1500 - COMMIT_INTERVAL=1500 - TRANSFORM_CONFIG=/config/transform.json - LOG_LEVEL=INFO - LOG_PATH=/logs/importer.log volumes: - ./input-data:/data/input - ./config:/config - ./logs:/logs depends_on: - mysql networks: - importer-network mysql: image: mysql:8.0 container_name: importer-mysql restart: always environment: - MYSQL_ROOT_PASSWORD=root_password - MYSQL_DATABASE=target_db ports: - "3306:3306" volumes: - mysql-data:/var/lib/mysql networks: - importer-network networks: importer-network: driver: bridge volumes: mysql-data:
启动服务:
bashdocker-compose up -d
| 参数名 | 描述 | 可选值/示例 | 是否必填 | 默认值 |
|---|---|---|---|---|
DB_HOST | 目标数据库主机地址 | mysql.example.com, 192.168.1.100 | 是 | - |
DB_PORT | 目标数据库端口 | 3306, 5432, 1433 | 否 | 取决于DB_TYPE |
DB_USER | 目标数据库用户名 | root, import_user | 是 | - |
DB_PASSWORD | 目标数据库密码 | secure_password | 是 | - |
DB_NAME | 目标数据库名称 | target_db, enterprise_data | 是 | - |
DB_TYPE | 目标数据库类型 | mysql, postgresql, sqlserver | 否 | mysql |
SOURCE_TYPE | 数据源类型 | csv, json, xml | 是 | - |
SOURCE_PATH | 数据源文件路径(容器内路径,需通过volume挂载宿主机文件) | /data/input, /import/data | 是 | - |
BATCH_SIZE | 单次批量导入记录数 | 1000, 2000 | 否 | 1000 |
COMMIT_INTERVAL | 事务提交间隔(记录数),若为0则不自动提交 | 1000, 5000, 0 | 否 | 与BATCH_SIZE相同 |
TRANSFORM_CONFIG | 数据转换规则配置文件路径(容器内路径),支持JSON格式配置 | /config/transform.json | 否 | - |
LOG_LEVEL | 日志输出级别 | DEBUG, INFO, WARN, ERROR | 否 | INFO |
LOG_PATH | 日志文件路径(容器内路径),若不指定则输出到stdout | /logs/importer.log | 否 | stdout |
转换配置文件为JSON格式,用于定义数据源到目标数据库的字段映射和转换规则:
json{ "source_table": "input_data", "target_table": "user_info", "field_mappings": [ { "source_field": "id", "target_field": "user_id", "transform_type": "integer" }, { "source_field": "name", "target_field": "user_name", "transform_type": "uppercase" }, { "source_field": "birth_date", "target_field": "birth_dt", "transform_type": "date_format", "params": { "source_format": "YYYY-MM-DD", "target_format": "DD/MM/YYYY" } }, { "source_field": "email", "target_field": "contact_email", "transform_type": "default", "default_value": "***" } ], "filter_condition": "source_field.active = 'true'" }
BATCH_SIZE参数优化性能(建议根据数据库性能测试确定最优值)COMMIT_INTERVAL>0)可保障数据一致性,导入后建议验证数据完整性
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务