Skip to content

低代码数据治理 ‐‐ 使用文档

li kaiguang edited this page Mar 12, 2024 · 5 revisions

简介

这是一款可以内嵌在应用程序、也可以单独部署的低代码数据治理脚手架or数据治理平台, 融合了数据同步、数据比对、数据归档、数据归档为一体的核心能力

快速开始

数据同步示例

以数据源A 同步到 数据源B为例:

  1. 配置好A,B数据源【依托自身多数据源配置即可】,如果你还不知道什么是多数据源可以参考:【kg-ctl-quickstart示例】

  2. 确定A,B数据源的共同唯一索引,创建时间、更新时间索引,缺失的及时补充

  3. 开始coding
    3.1 在A、B的数据源目的表【假设是分表order_0..127】的mapper文件,继承SyncMapper<各自POJO/domain>
    3.2 在B的POJO/domain 唯一索引上声明@TableId(type=IdType.Input)
    3.3 对数据源B添加service文件仿照mybatisplus写法, 只需要继承SysncService<B已经继承SyncMapper的mapper,B的POJO>,并纳入IOC容器
    3.4 新建一个job类,完成最后的代码编写,根据需要继承,假设是基于时间同步,那么继承DataSyncCommonProcessor<A的POJO, B的POJO>

    • 实现唯一索引方法
    • 实现convertToTarget方法,【如果没有特殊定制,可以直接使用spring BeanUtils完成转换】
    • 新起一个方法,里面直接调用super.runTask(),加上@XXlJob注解 3.5 开发完毕
  4. 配置xxl-job参数, 如下是参数解释说明:

{    
"targetTime": "update_time",  // 必选 ,基于那个时间索引扫表    
"startTime": "2023-01-01 00:00:00",  // 扫描开始时间,mode>0时才有效且必选    
"endTime": "2024-01-01 23:59:59",   // 扫描结束时间,mode>0时才有效    
"tablePreFix": "order_", // 带下划线的表名   
"tableRange": "0->127",  // 可选,分表起始位置,可以灵活制定,但是不能超过物理分表最大值,    
"mode": "inc_sync", //  任务模式  默认增量同步,full_sync 全量同步 inc_check 数据比对[支持增量、全量]  inc_archive 增量数据归档 full_archive 全量数据归档    
"syncInterval": "PT1H", // 必选,同步数据的间隔【需要根据业务体量决定,1H 能产生数据的极值,需要根据实际情况动态调整为分钟甚至秒】    
"syncPeriod": "T-1", // 同步周期,mode =0才有效,支持T+N、T-N,根据数据分布和需要自    
"insertMode": "insert_ignore" // 默认同步操作是覆盖写: cover_write,  insert_ignore为有则跳过,无则插入

}


  1. 配置开关控制参数: key:kg.job-config ,建议使用Apollo或者Nacos配置中心可以动态调控
{
    "url": "https://oapi.dingtalk.com/robot/sendxxxxxx",
    "secret": "xxx", // Dingding机器人
    "bizPeekDuration": ["6->10", "14-17"], // 高峰时间段 全局默认
    "maxBatchSize": 200, // 基于业务id同步的高峰最大限制条数,全局默认
    "batchSize": 300, // 基于业务id同步平峰最大限制条数 全局默认
    "sleepTime": 200, // 执行1次同步的休眠时间,单位ms 全局默认
    "submitThreadCount": 8,// 批处理线程数,可以动态控制,生效时间在本批次完成之后 全局默认
    "custom": {
        "OrderSyncJob": {
            "run": true, // 控制开关启停
            "submitThreadCount": 4, // 定制化线程数,优先使用
             "sleepTime": 200
        },
        "OrderCheckJob": {
            "run": true,
            "submitThreadCount": 8
        },
        "testSyncJOb": {
            "run": true
        }
    }
}
  1. 使用xxl-job调度,也可本地测试直接启动

数据比对示例

和数据同步流程一样,如果前面基础配置已经完成,只需要修改3.4步骤
3.4 新建一个job类,完成最后的代码编写,根据需要继承,假设是基于时间同步,那么继承CheckCommonProcessor<A的POJO, B的POJO>
3.5 开发完成,如果需要可以实现ignoredFields 方法,【代表比对需要忽略的字段】

数据归档示例【待完善】

数据恢复示例【待完善】

Clone this wiki locally