diff --git a/README.md b/README.md index 3d781195392e5b66afb7824578fe1b66d9c0f3e1..eede2c5e261515cb324298b4d545ec45fdf328f7 100644 --- a/README.md +++ b/README.md @@ -1,196 +1,140 @@ +# 云雀 (Yunque) + [![EN doc](https://img.shields.io/badge/document-English-blue.svg)](README.en.md) [![CN doc](https://img.shields.io/badge/文档-中文版-blue.svg)](README.md) +## 1. 云雀介绍 +**云雀**,云代表大数据,雀代表平凡和自由。 -# 1.云雀的介绍 - - **云雀**,云代表大数据,雀代表平凡和自由。 - -**云雀** 是一款数据集成工具,实现异构数据源的整合,帮助企业构建数据仓库、数据湖 等应用架构。 +云雀是一款数据集成工具,实现异构数据源的整合,帮助企业构建数据仓库、数据湖等应用架构。通过使用云雀,可以将多种数据库之间的数据互通和集成,实现将多种数据的迁移、脱敏、聚合操作。 -# 2.目标及特点 - -1. **多源支持**:目前已支持 14 种数据源,实现真正的异构数据同步 - -2. **可视化操作**:提供拖拉拽式图形化界面,通过组件组装实现简易配置 +## 2. 目标及特点 +1. **多源支持**:已支持 14 种数据源,实现真正的异构数据同步 +2. **可视化操作**:提供拖拽式图形化界面,通过组件组装实现简易配置 3. **计算引擎集成**:结合计算引擎,实现数据统一汇聚与集成 - 4. **流式处理**:结合消息队列,支持"一次读取、多次下沉"的数据复用模式 - 5. **弹性部署**:支持单机版和集群版部署,架构简单灵活 - 6. **智能监控**:友好的日志系统,实时监控数据迁移状态与进度 - 7. **代码质量**:代码结构清晰,文档齐全,可读性强 - 8. **容器化支持**:完美支持 Docker 和 Kubernetes 容器化部署 - 9. **易集成性**:无缝对接主流开源调度系统,配置灵活多样 - 10. **开源商用**:遵循 Apache 2.0 开源协议,可免费用于商业项目 -# 3.设计理念 - -![V1.0的架构图](./docs/images/a.jpg) - -通过使用云雀,可以将多种数据库之间的数据互通和集成,实现将多种数据的迁移,脱敏,聚合操作。 - -# 4.支持的数据库列表 - -| 数据源 | 读取支持 | 写入支持 | -| ------------- | -------- | -------- | -| ClickHouse | ✅ | ✅ | -| DB2 | ✅ | ✅ | -| DM(达梦) | ✅ | ✅ | -| Doris | ✅ | ✅ | -| Elasticsearch | ✅ | ✅ | -| HDFS | ✅ | ✅ | -| Hive | ✅ | ✅ | -| Kafka | ✅ | ✅ | -| KingBase | ✅ | ✅ | -| MySQL | ✅ | ✅ | -| Oracle | ✅ | ✅ | -| PostgreSQL | ✅ | ✅ | -| SQL Server | ✅ | ✅ | -| StarRocks | ✅ | ✅ | - -## 支持的转换器 - -| 转换器类别 | 功能描述 | -| ------------------ | ------------------------------ | -| 邮箱脱敏转换器 | 对邮箱地址进行敏感信息隐藏处理 | -| 身份证脱敏转换器 | 对身份证号码进行脱敏和验证 | -| 日期格式转换器 | 不同日期格式之间的转换处理 | -| 数值计算转换器 | 数值的加减乘除等运算处理 | -| 手机号脱敏转换器 | 手机号码的中间四位隐藏处理 | -| 字符串拼接转换器 | 字符串的前缀后缀拼接处理 | -| 字符长度计算转换器 | 计算字符串长度 | -| 字符串替换转换器 | 字符串内容的查找替换 | -| 字符串截取转换器 | 提取字符串指定子串 | -| 时间戳转换器 | 时间戳与日期格式互转 | -| 字符串大小写转换器 | 字符串大小写转换 | - -# 5.框架设计 - -![V1.0的架构图](./docs/images/b.jpg) - -框架分为3部分:Reader, Channel, Writer - -Reader 作为数据源, 可以通过实现共同的Reader接口,可以通过SQL的方式对数据进行抽取操作。 - -Channel 作为队列, 可选的队列有默认的LinkedBlockingQueue,也可以使用kafka, 通过使用kafka做到一次写入多次读取。 - -Writer 作为目标数据源,可以通过实现共同的Writer接口,可以通过SQL的方式对数据进行下沉操作。 - -# 6.快速开始 - - - -**下载:** - -​ [yunque-1.0-SNAPSHOT-release.tar.gz](https://gitee.com/LarkMidTable/yunque/blob/master/version/yunque-1.0-SNAPSHOT-release.tar.gz) - - - -**请点击:** - -[部署使用手册](https://gitee.com/LarkMidTable/yunque/blob/master/userGuid.md) - - - [性能测试报告](https://gitee.com/LarkMidTable/yunque/blob/master/performanceTest.md) - - -# 7.开发人员 - -**主要贡献者**(排名不分先后): - -| 开发者 | Gitee 主页 | 主要贡献领域 | -| --------------- | -------------------------------------------------- | ------------------ | -| ZFCode | [ZFCode](https://gitee.com/ZFCode) | 项目核心开发 | -| 陈小明 | [陈小明](https://gitee.com/cenzhiming) | 系统架构设计 | -| zhaowendong | [zhaowendong](https://gitee.com/PK_zwd) | Oracle 模块开发 | -| baiyaoming | [baiyaoming](https://gitee.com/baiyaoming) | StarRocks 模块开发 | -| 甲壳虫123 | [甲壳虫123](https://gitee.com/njhuanghua) | 核心功能开发 | -| wangzyunquei | [wangzyunquei](https://gitee.com/wangzyunquei1204) | 界面开发 | -| youki | [youki](https://gitee.com/coreland_eip) | 功能测试 | -| Forever | [Forever](https://gitee.com/GenBrother) | 系统优化 | -| Singularity | [Singularity](https://gitee.com/dangzefei) | 文档维护 | -| 红叶 | [红叶](https://gitee.com/houstao) | Kafka 模块开发 | -| 起风了 | [起风了](https://gitee.com/its_windy) | 中台架构 | -| qtyb | [qtyb](https://gitee.com/qtyb) | 系统优化 | -| lindychan556666 | [lindychan556666](https://gitee.com/chenlin556666) | 质量保证 | - -# 8.联系我们 - -可以添加官方微信【**LarkMidTable2021**】,添加时备注【yunque】,可以参与讨论啦! - - - -本项目全部开源,可以进行商用没有限制,我们热切的盼望,希望有更多的开发者加入,开源数据集成的这个大家庭中,欢迎大家贡献和使用。 - - - -# 9.感谢人员 - -感谢云雀课堂的学员的支持,项目才得以进行下去,以下为第一期的**云雀课堂学员**,名次不分先后: - - - -成空、起风了、孙#龙、王#田、如是、瞬间永恒、钟~俊 - - - -周~城、小田甜、重庆张#友、葡萄、景曦、江阔、徐祥静 - - - -Us、猪皮、曾攀、溪涣、A.wang、青鸟、朱古力、wingod - - - -khj、吴志航、黄华、君临、qiuqiuqiu、Jerry、圈圈圈 - - - -明昌、Mr杨、Sokach、Forever、ShakeSpeare、东哥 - - - -Tony_cen、小小若木、无说有听、dearong、修真、sockstack - - - -Cole、轮子、彪哥、倪#喜、冯#孝、Aphasia、Yezhiwei、农民 - - - -navy、object、JSZ、全儿、恒古指针、#漫、MikeChen、冲浪仔 - - - -iDrive、abc、火箭、云风叶、payne、黄#峰、余#忠、就这# - - - -黎英杰、养乐多、heaven、不许敲自己、明朗、Ya!、小白龙 - - - -摸金校尉、Chandler、光、需要努力的Jade🎭、youke、xx、J.C - - - - - - - - - - - - - +## 3. 架构设计 + +框架分为三部分:**Reader**、**Channel**、**Writer** + +- **Reader(数据源)**:作为数据源,可以通过实现统一的 Reader 接口,通过 SQL 的方式对数据进行抽取操作 +- **Channel(队列)**:可选的队列有默认的 LinkedBlockingQueue,也可以使用 Kafka,通过使用 Kafka 做到一次写入多次读取 +- **Writer(目标数据源)**:作为目标数据源,可以通过实现统一的 Writer 接口,通过 SQL 的方式对数据进行下沉操作 + +## 4. 支持的数据库 + +| 数据源 | 读取支持 | 写入支持 | +|--------|----------|----------| +| ClickHouse | ✅ | ✅ | +| DB2 | ✅ | ✅ | +| DM(达梦) | ✅ | ✅ | +| Doris | ✅ | ✅ | +| Elasticsearch | ✅ | ✅ | +| HDFS | ✅ | ✅ | +| Hive | ✅ | ✅ | +| Kafka | ✅ | ✅ | +| KingBase | ✅ | ✅ | +| MySQL | ✅ | ✅ | +| Oracle | ✅ | ✅ | +| PostgreSQL | ✅ | ✅ | +| SQL Server | ✅ | ✅ | +| StarRocks | ✅ | ✅ | + +## 5. 支持的转换器 + +| 转换器类别 | 功能描述 | +|------------|----------| +| 邮箱脱敏转换器 | 对邮箱地址进行敏感信息隐藏处理 | +| 身份证脱敏转换器 | 对身份证号码进行脱敏和验证 | +| 日期格式转换器 | 不同日期格式之间的转换处理 | +| 数值计算转换器 | 数值的加减乘除等运算处理 | +| 手机号脱敏转换器 | 手机号码的中间四位隐藏处理 | +| 字符串拼接转换器 | 字符串的前缀后缀拼接处理 | +| 字符长度计算转换器 | 计算字符串长度 | +| 字符串替换转换器 | 字符串内容的查找替换 | +| 字符串截取转换器 | 提取字符串指定子串 | +| 时间戳转换器 | 时间戳与日期格式互转 | +| 字符串大小写转换器 | 字符串大小写转换 | + +## 6. 快速开始 + +### 下载 + +[yunque-1.0-SNAPSHOT-release.tar.gz](https://gitee.com/LarkMidTable/yunque/blob/master/version/yunque-1.0-SNAPSHOT-release.tar.gz) + +### 部署文档 + +- [部署使用手册](https://gitee.com/LarkMidTable/yunque/blob/master/userGuid.md) +- [性能测试报告](https://gitee.com/LarkMidTable/yunque/blob/master/performanceTest.md) + +## 7. 技术栈 + +- **后端**:Java +- **前端**:Vue.js +- **消息队列**:Kafka +- **构建工具**:Maven +- **容器化**:Docker / Kubernetes + +## 8. 目录结构 + +``` +yunque/ +├── bin/ # 启动脚本 +├── conf/ # 配置文件 +├── common/ # 公共模块(Reader/Writer 接口、转换器等) +├── core/ # 核心引擎 +├── web/ # Web 服务 +├── ui/ # 前端界面 +├── docker/ # Docker 相关配置 +├── docs/ # 文档 +├── jars/ # 依赖 JAR 包 +└── readers/writers/ # 各数据源 Reader/Writer 实现 + ├── mysqlreader/writer + ├── oraclereader/writer + ├── pgreader/writer + └── ... +``` + +## 9. 贡献者 + +感谢以下开发者的贡献(排名不分先后): + +| 开发者 | Gitee 主页 | 主要贡献领域 | +|--------|------------|--------------| +| ZFCode | [ZFCode](https://gitee.com/ZFCode) | 项目核心开发 | +| 陈小明 | [陈小明](https://gitee.com/cenzhiming) | 系统架构设计 | +| zhaowendong | [zhaowendong](https://gitee.com/PK_zwd) | Oracle 模块开发 | +| baiyaoming | [baiyaoming](https://gitee.com/baiyaoming) | StarRocks 模块开发 | +| 甲壳虫123 | [甲壳虫123](https://gitee.com/njhuanghua) | 核心功能开发 | +| wangzyunquei | [wangzyunquei](https://gitee.com/wangzyunquei1204) | 界面开发 | +| youki | [youki](https://gitee.com/coreland_eip) | 功能测试 | +| Forever | [Forever](https://gitee.com/GenBrother) | 系统优化 | +| Singularity | [Singularity](https://gitee.com/dangzefei) | 文档维护 | +| 红叶 | [红叶](https://gitee.com/houstao) | Kafka 模块开发 | +| 起风了 | [起风了](https://gitee.com/its_windy) | 中台架构 | +| qtyb | [qtyb](https://gitee.com/qtyb) | 系统优化 | +| lindychan556666 | [lindychan556666](https://gitee.com/chenlin556666) | 质量保证 | + +## 10. 交流与反馈 + +- 微信公众号:**LarkMidTable2021**(添加时备注"云雀") +- 欢迎提交 Issue 和 Pull Request + +## 11. 许可证 + +本项目基于 **Apache License 2.0** 开源协议,可以免费用于商业项目。 + +--- + +欢迎大家贡献和使用,共同打造开源数据集成大家庭! \ No newline at end of file