1 Star 0 Fork 34

programlife555 / budo-warehouse

forked from budo-group / budo-warehouse 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

budo-warehouse

基于Binlog等技术的数据同步工具

功能特性

  1. 数据入口支持 Binlog MQ/Kafka 接口调用(Dubbo/HTTP)

  2. 数据出口支持 JDBC(ES/Solr/Mongo/CVS文件/Hive/HBase) MQ/Kafka 接口调用(Dubbo/HTTP) 邮件(发送变更告警)

  3. 支持所有入口出口的动态搭配,级联串联

  4. 支持根据表和类型筛选部分变更事件

  5. 支持异结构同步(同步时增减改列,或变更列的值)

核心配置

// 数据端点(入口或出口)
class DataNode {
    // jdbc:mysql://127.0.0.1 
    // async:activemq://127.0.0.1:61616
    private String url;

    private String username;

    private String password;
}

// 传输通道
class Pipeline {
    // 动态筛选事件(SPEL表达式) 
    // #{eventType == 'UPDATE' and tableName.startsWith('backup_')}
    private String eventFilter;

    // 数据入口
    private Integer sourceDataNodeId;

    private String sourceSchema;

    private String sourceTable;

    // 数据出口
    private Integer targetDataNodeId;

    private String targetSchema;

    // #{'backup_' + sourceTable}
    private String targetTable;

    // 是否保留原始数据结构
    private Boolean originalFields;
}

// 配置数据结构对应关系
class FieldMapping {
    // 关联通道
    private Integer pipelineId;

    // 目标列名
    private String fieldName;

    // 目标列的值的表达式(SPEL) 
    // #{id}
    // #{name + age + school} 
    // #{T(org.budo.support.lang.util.UuidUtil).randomUuid()} 
    // #{T(com.alibaba.fastjson.JSON).toJSONString($row)} 
    // #{T(org.budo.time.Time).now().toTimestamp()}
    private String fieldValue;
}

参考资料

通过Interface收发MQ消息 budo-dubbo-protocol-async

budo-csv-jdbc-driver

budo-elasticsearch-jdbc-driver

budo-hbase-jdbc-driver

budo-solr-jdbc-driver

budo-mongo-jdbc-driver

https://github.com/alibaba/otter/wiki/Otter双向回环控制

Oracle 物化视图

空文件

简介

基于Binlog等技术的数据同步工具,类似otter 展开 收起
Java
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/cyrs/budo-warehouse.git
git@gitee.com:cyrs/budo-warehouse.git
cyrs
budo-warehouse
budo-warehouse
master

搜索帮助