数据归集

使用 DataMate 从多种数据源归集数据

数据归集模块帮助您从多种数据源(数据库、文件系统、API 等)归集数据到 DataMate 平台。

功能概述

数据归集模块基于 DataX 实现,支持:

  • 多种数据源:MySQL、PostgreSQL、Oracle、SQL Server 等关系型数据库
  • 异构同步:不同数据源之间的数据同步
  • 批量归集:大规模数据的批量归集和同步
  • 定时任务:支持定时执行归集任务
  • 任务监控:实时监控归集任务执行状态

支持的数据源

数据源类型ReaderWriter说明
通用关系型数据库支持 MySQL、PostgreSQL、OpenGauss、SQL Server、达梦、DB2
MySQL关系型数据库
PostgreSQL关系型数据库
OpenGauss关系型数据库
SQL Server微软数据库
达梦国产数据库
DB2IBM 数据库
StarRocks分析型数据库
NAS网络存储
S3对象存储
GlusterFS分布式文件系统
API 归集API 接口数据
JSON 文件JSON 格式文件
CSV 文件CSV 格式文件
TXT 文件文本文件
FTPFTP 服务器
HDFSHadoop 分布式文件系统

快速开始

1. 创建采集任务

步骤 1:进入数据归集页面

在左侧导航栏选择 数据归集

步骤 2:点击创建任务

点击右上角 创建任务 按钮。

步骤 3:配置基本信息

填写以下基本信息:

  • 名称:为任务取一个有意义的名称
  • 超时时间:任务执行超时时间(秒)
  • 描述:描述任务用途(可选)

步骤 4:选择同步方式

选择任务的同步方式:

  • 立即同步:创建任务后立即执行一次
  • 定时同步:按照定时规则周期性执行

选择 定时同步 时,需要配置执行策略:

  • 执行周期:每小时 / 每天 / 每周 / 每月
  • 执行时间:选择执行时间点

步骤 5:配置数据源

选择数据源类型:从下拉列表中选择数据源类型(如 MySQL、CSV 等)

配置数据源参数:根据选择的数据源模板,填写相应的连接参数(表单形式)

MySQL 示例

  • JDBC URL:jdbc:mysql://localhost:3306/mydb
  • 用户名:root
  • 密码:password
  • 表名:users

步骤 6:配置字段提取

系统不支持配置字段映射,只能从配置的 SQL 中提取部分字段。

  • 提取指定字段:在字段列表中填写需要提取的字段名称
  • 提取所有字段:不填写字段名称,则提取 SQL 查询结果中的所有字段

步骤 7:创建并执行

点击 创建 按钮创建任务。

  • 如果选择 立即同步,任务将自动开始运行
  • 如果选择 定时同步,任务将按照定时规则周期性执行

2. 监控任务执行

查看任务列表

在数据采集页面,可以看到所有采集任务及其状态:

任务名称数据源状态最后执行时间操作
用户数据归集MySQL运行中2024-01-15 10:30查看执行记录
日志文件归集CSV已完成2024-01-14 18:00查看执行记录

查看任务详情

点击任务名称或 查看详情 按钮,可以看到:

  • 基本信息:任务配置信息
  • 执行记录:历史执行记录
  • 执行日志:详细的执行日志
  • 数据统计:采集的数据量、成功/失败记录数

查看执行日志

在任务详情页面,点击 执行记录 标签,选择某次执行记录,查看详细日志:

2024-01-15 10:30:00 INFO  任务开始执行
2024-01-15 10:30:01 INFO  连接数据源成功
2024-01-15 10:30:02 INFO  开始读取数据
2024-01-15 10:30:10 INFO  读取数据完成,共 10000 条
2024-01-15 10:30:11 INFO  开始写入目标数据集
2024-01-15 10:30:15 INFO  写入数据完成
2024-01-15 10:30:15 INFO  任务执行成功

3. 任务管理

任务列表中每个任务的操作包括:

  • 查看执行记录:查看任务的历次执行情况
  • 删除:删除任务(注意:删除任务不会删除已归集的数据)

点击任务名称可以查看任务详情,包括:

  • 基本信息配置
  • 执行记录列表
  • 数据统计信息

常见问题

Q: 任务执行失败怎么办?

A: 按以下步骤排查:

  1. 检查数据源连接:确保数据源地址、端口、用户名、密码正确
  2. 检查网络连接:确保 DataMate 能访问数据源
  3. 查看执行日志:获取详细错误信息
  4. 检查数据格式:确保数据格式与配置一致
  5. 检查目标数据集:确保目标数据集存在且有写入权限

Q: 如何采集大表数据?

A: 对于大表数据采集:

  1. 使用增量采集:配置时间字段进行增量同步
  2. 分批采集:将大表拆分为多个小任务
  3. 调整并发参数:适当增加 channel 数量
  4. 使用过滤条件:只采集需要的数据

Q: 如何实现增量采集?

A: 配置增量采集条件:

在数据源配置中,可以设置查询条件(如 SQL WHERE 子句),例如:

WHERE update_time > '${lastTime}'

系统会在每次执行时记录最后一次执行时间,下次执行时自动使用该时间进行增量采集。

Q: 采集速度慢怎么办?

A: 优化采集速度:

  1. 增加并发通道:将 channel 设置为 3-5
  2. 调整流控参数:增加 byte 和 record 限制
  3. 优化 SQL 查询:使用索引、减少查询字段
  4. 使用批量写入:启用批量写入模式

Q: 如何处理数据类型不兼容?

A: 使用类型转换:

{
  "column": [
    {
      "name": "id",
      "type": "long"
    },
    {
      "name": "price",
      "type": "decimal",
      "format": "#.##"
    }
  ]
}

API 参考

详细的 API 文档请参考:

相关文档