Doris代码结构

根目录下

├── be                  // BE 代码目录
├── bin                 // FE/BE 的启停脚本
├── build_plugin.sh     // FE 插件编译脚本
├── build.sh            // Doris 编译脚本
├── build-support       // 编译用辅助脚本
├── CODE_OF_CONDUCT.md  // 贡献者代码行为准则
├── conf                // FE/BE 的配置文件
├── contrib             // 第三方贡献代码,如 udf
├── CONTRIBUTING_CN.md  
├── CONTRIBUTING.md
├── DISCLAIMER
├── docker              // Doris 开发镜像的 Dockerfile
├── docs                // 文档目录
├── env.sh
├── extension           // 扩展功能代码,如 flink connector 等
├── fe                  // FE 代码目录
├── fe_plugins          // FE 插件目录
├── fs_brokers          // Broker 代码目录
├── gensrc              // thrift/protobuf 等代码生成目录
├── LICENSE.txt
├── NOTICE.txt
├── README.md
├── run-be-ut.sh        // BE 单元测试运行脚本
├── run-fe-ut.sh        // FE 单元测试运行脚本
├── samples             // 示例代码目录
├── thirdparty          // 第三方依赖库目录
├── tools               // 一些辅助工具
├── tsan_suppressions
├── ui                  // FE 前端代码目录
└── webroot             // 一些静态网页相关代码

fe/

├── checkstyle-apache-header.txt
├── checkstyle.xml
├── conf
├── fe-common   // 一些 FE 模块的通用代码
├── fe-core     // FE 模块主代码
├── pom.xml
├── README
└── spark-dpp   // Spark Load 所依赖的 Spark 导入程序代码

fe-core为FE的核心代码模块

├── main            
│   ├── cup         // 语法定义文件
│   ├── java        // 主代码
│   ├── jflex       // 词法定义文件
│   └── resources
└── test            // 单元测试
    ├── java
    └── resources

在 main/java/org/apache/doris下即是FE代码的主要部分

├── alter       // 表结构变更操作相关的代码。包括表结构变更,物化视图等。
├── analysis    // 包含所有SQL语法的java实例类
├── backup      // 备份恢复操作相关的代码
├── blockrule   // SQL 黑名单相关代码
├── catalog     // 包含元数据操作的主类和各种数据库、表、分区的元数据实例类
├── clone       // 数据副本修复和均衡相关的代码
├── cluster     // 已废弃
├── common      // 一些工具类和通用定义
├── consistency // 数据一致性校验相关的代码
├── deploy      // 部署相关代码
├── external    // Doris on Elasticsearch相关的代码
├── ha          // 元数据高可用相关的代码
├── http        // http v1 代码
├── httpv2      // http v2 代码(逐步替换v1)
├── journal     // 元数据日志相关的代码
├── ldap        // LDAP 认证相关代码
├── load        // 导入作业相关代码
├── master      // FE Master角色相关的操作代码,如元数据Checkpoint,BE任务汇报的处理等。
├── metric      // FE 监控指标相关的代码
├── monitor     // JVM 监控相关代码
├── mysql       // MySQL协议层相关代码
├── PaloFe.java // Main函数入口
├── persist     // 元数据持久化相关的代码
├── planner     // 查询优化器相关的代码
├── plugin      // Frontend端插件管理相关代码
├── qe          // 用于处理各类SQL请求相关的代码。如查询请求的处理类、DDL请求的处理类等
├── resource    // 资源标签相关的代码
├── rewrite     // 查询优化器重写规则相关的代码
├── rpc         // Frontend和Backend之间RPC协议相关的代码
├── service     // Frontend侧各种服务器端代码
├── system      // 集群节点的实例类和集群节点管理相关的代码
├── task        // Frontend发往Backend的各类任务相关的代码
└── transaction // 导入事务相关代码

be/

├── CMakeLists.txt  // CMake 编译文件
├── src             // 主代码目录
├── test            // 单元测试

主代码目录包含:

├── agent                   // FE 下发的 agent task 相关处理类
├── common                  // 通用类
├── env                     // 文件系统操作类
├── exec                    // 执行算子相关代码
├── exprs                   // 表达式、函数计算相关代码
├── geo                     // 地理位置函数相关代码
├── glibc-compatibility     // GLIBC 兼容代码
├── gutil                   // Google gutil 相关代码
├── http                    // BE 端 http server 相关代码
├── olap                    // 存储层代码
├── plugin                  // BE 插件管理相关代码
├── runtime                 // 查询层运行时相关代码
├── service                 // BE 对外服务接口相关代码
├── testutil                // 单元测试辅助类
├── tools                   // 辅助工具相关代码
├── udf                     // 用户自定义函数相关代码
└── util                    // 一些工具类

gensrc/

├── Makefile
├── proto       // protobuf 定义文件
├── script      // 一些辅助脚本,包括函数定义代码生成模板等
└── thrift      // thrift 定义文件

extension/

├── DataX                   // DataX doriswriter 插件
├── flink-doris-connector   // Flink Doris Connector
├── logstash                // logstash 导入插件
└── spark-doris-connector   // Spark Doris Connector

Apache Doris代码合入准则

开发者在本地修改完代码后,需要完成以下几个步骤,方可提交代码:

  • 运行 run-fe-ut.sh 和 run-be-ut.sh 来运行单元测试并确认通过。

  • 提交 Pull Request

  • Pull Request 会触发准入测试:

    1.Travis CI/continuous-integration:文档编译准入。会对 docs/ 目录进行编译

    2.ut_build:单元测试准入。会运行 fe/be 单元测试。

    3.NewDorisTest:一个包含100多个 case 的最小回归测试集。

只有在以上准入测试都通过,并且有至少一个 Committer Approve 后,代码方可合入。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值