Apache Doris源码解析(最全)
本文将带你探索ApacheDoris的查询处理过程,通过源码解析,揭示其内部工作机制,对数据库技术尤其是分布式查询性能优化感兴趣的开发者不容错过。
当前文章被以下社区和专栏收录:
本文将带你探索ApacheDoris的查询处理过程,通过源码解析,揭示其内部工作机制,对数据库技术尤其是分布式查询性能优化感兴趣的开发者不容错过。
【浅谈 Apache Doris FE 处理查询 SQL 源码解析】
在使用 Apache Doris 时,我们可以通过 Apache Doris FE Web 页面或者 Mysql 协议执行 SQL 语句,但是对于 Apache Doris 背后如何对 SQL 进行处理,我们无从所知。本文章内容主要讲解 Apache Doris 查询 SQL 在 FE 节点处理原理。Doris 查询语句和市面主流的数据库处理阶段都差不多,需要经过 Parse,Analyze,Optimize,Plan,Schedule,Execute 等阶段。 ...
Apache Doris 聚合函数源码阅读与解析|源码解读系列
Apache Doris Active Contributor 隐形通过本文记录下对源码的理解,以方便新人快速上手源码开发。
别再瞎猜了!Fluent瞬态计算时间步长到底设多少?一个公式+实战案例搞定
本文详细解析了Fluent瞬态计算中时间步长的设置方法,通过黄金公式和实战案例,帮助工程师准确确定时间步长,避免计算发散和资源浪费。文章还介绍了动态调整策略和典型工程场景的参数优化,提升仿真效率和精度。
Doris FE启动流程源码解读
Doris中FE主要负责接收和返回客户端请求、元数据以及集群管理、查询计划生成等工作。本文主要看一下Doris的fe在启动时做了什么。
Verilog除法器(32位无符号+带符号)
32位无符号除法器设计 恢复余数法: 恢复余数除法的基本思路是从“部分余数”中减去除数,如果结果为负(不够减),则恢复原来的部分余数,商0. 寄存器使用: reg_r 存放被除数a reg_b 存放除数b reg_r 存放余数(初始清零) 具体做法: 做减法时,减数是reg_b中的除数,被减数是reg_r中的余数左移一位,最低位由reg_q(被除数)的最高位补充。为了能够判断相减结果的正...
在Keil下完成一个汇编程序的编写
在学习STM32的路上开始是学的C语言尚未进行对汇编进行学习,因此抽出时间来学习一下在keil下的汇编语言。
Apache Doris 的 dbt 适配器 dbt-doris:安装配置、模型物化与源码实现解析
dbt(data build tool)是当下主流的 ELT 工作流编排工具,它通过"适配器插件(adapter plugin)"机制接入不同的数据仓库。dbt-doris 正是 Apache Doris 官方维护的 dbt 适配器插件,位于本仓库 [extension/dbt-doris](https://link.gitcode.com/i/0dc8da04ab025b373e4a194661
emwin与Modbus通信结合:项目实例
通过实际项目讲解emwin界面设计与Modbus通信协议的融合应用,深入剖析数据交互流程。掌握emwin在工业控制场景中的实用技巧,提升系统人机交互与稳定通信能力。
从源码到运行:深入解析 Apache Doris 的编译与 Debug 流程
Apache Doris 作为一款高性能、实时的分析型数据库,其底层架构和代码设计令人称道。对于开发者来说,掌握源码编译与调试运行是理解 Doris 内核的关键。然而,Doris 的编译流程涉及多种工具链和依赖配置,Debug 过程中也可能遇到各种复杂问题,初学者常常感到无从下手。本篇文章将以源码到运行为主线,详细解析 Apache Doris 的编译与 Debug 流程。从环境准备、源码拉取到常见问题排查,我们将结合实际案例,帮助您快速上手 Doris 的开发调试工作。
mpu6050原理图_STM32控制 MPU6050 六轴陀螺仪资料汇总
一般使用MPU6050的步骤是先驱动I2C总线,然后初始化MPU6050,从MPU6050读取数据,最后是数据的处理。本文档详细介绍有关MPU6050 三维角度传感器电子陀螺仪使用说明。附件内容提供该 MPU6050模块原理图,配套STM32代码,相关数据手册及参考文档。实物连接图:MPU6050 六轴陀螺仪特点:使用芯片:MPU-6050供电电源:3-5v(内部低压差稳压)通信方式:标...
Windows下Cppcheck静态测试全流程:从安装到生成HTML报告的避坑指南
本文详细介绍了在Windows平台下使用Cppcheck进行静态代码分析的全流程,包括环境搭建、插件配置、自动化脚本编写及HTML报告生成。重点解析了MISRA插件集成、常见问题排查以及性能优化技巧,帮助C/C++开发者高效提升代码质量。文章特别针对Windows环境下的路径处理、空格问题等细节提供了实用解决方案。
Apache Doris
架构是核心:牢记 FE (Java, 大脑) 和 BE (C++, 肌肉) 的职责划分。通信靠 Thrift/Protobuf:gensrc 目录是理解 FE 和 BE 如何交互的关键。FE 核心是元数据和查询规划:重点关注 catalog 和 planner 模块。BE 核心是存储和计算:重点关注 olap 和 exec 模块。实践出真知:一定要动手编译、调试,并尝试给社区提交一些简单的 PR(比如修复文档、bug fix),这是最快的学习路径。希望这份讲解能帮助你开启 Doris 源码的学习之旅!
PyTorch实战(20)——生成对抗网络(Generative Adversarial Network,GAN)
自生成对抗网络 (Generative Adversarial Network, GAN) 提出以来,一直是一个活跃的研究和开发领域。本节探索了 GAN 的基本概念,重点解析了其两大核心组件——生成器与判别器的架构设计,深入阐述了 GAN 模型的整体工作机制,并使用 PyTorch 从零开始实现了深度卷积生成对抗网络 (Deep Convolutional GAN, DCGAN)。
Apache Doris 官方示例集 doris-demo 实战指南:Flink/Spark 集成、Stream Load 导入与多语言 RPC UDF
本文面向希望快速上手 Apache Doris 数据接入与扩展能力的开发者,系统解读官方代码示例集 [samples/doris-demo/README.md](https://link.gitcode.com/i/9ac90c7a7054a393e94f41470d36081f) 中的全部实战场景:包括基于 Flink Doris Connector 的实时入仓(MySQL CDC / Kafk
2026华为OD面试手撕代码真题目录
一般面试的时候每一轮技术面都会出一到两个手撕代码题,这些题的特点就是,非常短小,易于理解。不可能会再出阅读理解一样的机试题的。但是这些题目也非常注意基本功,很注意细节的处理,一般都是easy+medium题目。但是大家一定要注意,因为大部分面试官上面一开始就会让你做题,直接看你所有的做题过程(防止有人水平一般,机试就网上找的答案的蒙混过关),手撕代码题会给你后面的面试定一个基调。
IDEA的使用指南
IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.
Apache Doris 基于 Docker 的源码编译开发环境搭建指南
本文以 Apache Doris 仓库中的 [docker/README.md](https://link.gitcode.com/i/9159127dea4e65cd2398dcc0f851cc73) 为核心,系统讲解如何基于官方 Docker 镜像在统一环境中完成 Doris 源码的获取、镜像构建与容器内编译,并结合仓库内真实的编译镜像 Dockerfile 与 `build.sh` 构建脚本
深度学习工具包 DeepLearningToolbox
深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[](https://bitdeli.com/free "Bitdeli Badge")
Apache Doris源码编译完全指南:从环境搭建到二进制包生成
Apache Doris作为一款高性能的统一分析数据库,其源码编译过程是开发者深入理解系统架构和进行二次开发的重要环节。本文将为您提供一份完整的Apache Doris源码编译指南,涵盖环境准备、依赖安装、编译配置到最终二进制包生成的完整流程。 ## 🛠️ 环境准备与系统要求 在开始编译Apache Doris之前,确保您的系统满足以下基本要求: - **操作系统**: Linux (推荐
Camera2Demo
在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作
假人有限元模型
假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用
Apache Doris HELP 系统架构解析:从 helpCategoryNormal.md 看帮助分类与检索的设计
本文以 Apache Doris FE(Frontend,前端)源码仓库中用于单元测试的帮助分类样例文档 `fe/fe-core/src/test/resources/data/helpCategoryNormal.md` 为切入点,剖析 Doris 内置 `HELP` 命令背后的帮助系统:Markdown 格式的约定、分类(Category)与主题(Topic)的解析规则、层级索引的构建方式,以
如何成为Apache Doris的贡献者
通过此计划,你可以逐步掌握Doris源码的核心逻辑,并在3-6个月内成为Apache Doris社区的活跃贡献者。建议每周投入10-15小时,结合实践与理论,持续积累经验。以下是为初级大数据开发工程师设计的。
使用 Spark Doris Connector 读取 Apache Doris 表数据:Java 与 Scala 实战指南
本篇文章基于 Apache Doris 仓库中的官方示例文档 [samples/doris-demo/spark-demo/docs/instructions.md](https://link.gitcode.com/i/9e3678780e26b3ea9490b60d8fd082cc) 及其配套示例代码,完整讲解如何通过 Spark 与 Spark Doris Connector 读取 Dori
Apache Doris MySQL SSL 连接默认证书目录解析与安全配置指南
Apache Doris 在 `conf/mysql_ssl_default_certificate/` 目录下随发行包预置了一套用于 MySQL 协议 SSL 加密连接的默认证书(默认 CA 证书、默认服务端证书,以及用于客户端身份验证的 `client_certificate/` 子目录)。本文围绕这套默认证书的生成背景、文件构成、在 FE 侧的加载实现(`MysqlSslContext`)以
Apache Doris 容器集群编排利器:doris-compose 完整使用与实现解析
> doris-compose 是 Apache Doris 仓库内置的一套基于 Docker Compose 的集群编排工具,用于一键创建、扩容、缩容与销毁 FE/BE 集群(含云原生 Cloud 模式的 FDB、Meta Service、Recycler 组件),并为回归测试自动生成连接配置。读完本文,你将掌握镜像构建、集群生命周期管理、节点级精细操作、Cloud 多集群测试环境搭建的完整实战
Apache Doris Python 连接实战指南:基于 mysql-connector-python 的完整 CRUD 示例解析
Apache Doris 的 SQL 访问层与 MySQL 协议兼容,因此任何支持 MySQL 协议的客户端都能直接连入 Doris 执行建库、建表、写入与查询。本文以仓库中的官方 Python 示例 [samples/connect/python/connector.py](https://link.gitcode.com/i/4631e9faf512814b27b9309cef195fd6)
Mage Data Integration 指南:配置 Apache Doris 作为数据目标端(Destination)
本篇技术指南围绕 Mage 开源项目中 [Doris 目标端(Destination)文档](https://link.gitcode.com/i/ae747d755ddfe642d0a67dffd433e196)展开,系统讲解如何在 Mage 数据集成管道中将 Apache Doris 配置为数据写入端:包括全部连接参数、SSH 隧道直连两种模式、可选配置项、底层建表/写入实现,以及一个可直接套
Apache doris元数据同步机制源码解析
名词解释 FE:Frontend,即 Doris 的前端节点。主要负责接收和返回客户端请求、元数据以及集群管理、查询计划生成等工作。 BE:Backend,即 Doris 的后端节点。主要负责数据存储与管理、查询计划执行等工作。 bdbje:Oracle Berkeley DB Java Edition。在 Doris 中,使用 bdbje 完成元数据操作日志的持久化、FE 高可用等功能。 Doris 的元数据主要存储4类数据: 用户数据信息。包括数据库、表的 Schem
Apache Doris 数据导入实战:DataX DorisWriter 插件基于 Stream Load 的批量写入指南
> 本文以仓库内 [doriswriter.md](https://link.gitcode.com/i/5bae097d065db23c0f5a33332dd5d364) 为核心骨架,结合 `extension/DataX/doriswriter` 插件的完整源码,讲解如何在 DataX 中通过 DorisWriter 将大批量数据写入 Apache Doris。读完本文,你将掌握 DorisW
920

被折叠的 条评论
为什么被折叠?



