- 新增 DocumentController 提供文档导入 API - 新增 DocumentService 实现文档读取、分割、向量化存储 - 新增 RagConfig 配置 TokenTextSplitter - 添加 doris_intro.md 作为示例 RAG 文档 - 启用 milvus-sdk-java 依赖 - 配置 SiliconFlow Embedding 服务 (BAAI/bge-large-zh-v1.5) - 配置 Milvus 向量数据库连接
99 lines
3.3 KiB
Markdown
99 lines
3.3 KiB
Markdown
# Apache Doris 简介
|
||
|
||
Apache Doris 是一个基于 MPP 架构的高性能、实时的分析型数据库,以极速易用的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场景。
|
||
|
||
## 核心特性
|
||
|
||
### 1. 极速易用
|
||
|
||
Apache Doris 采用了列式存储引擎,通过向量化执行引擎和查询优化器,能够在海量数据下实现亚秒级的查询响应。同时,Doris 提供了标准 SQL 支持,用户无需学习新的查询语言,即可快速上手。
|
||
|
||
### 2. 高可用性
|
||
|
||
Doris 采用了多副本机制,数据自动备份,节点故障时可以自动切换,保证服务的高可用性。支持在线扩缩容,不影响业务运行。
|
||
|
||
### 3. 实时分析
|
||
|
||
Doris 支持实时数据导入和查询,数据导入后即可被查询,无需等待数据预处理。支持多种数据导入方式,包括 Stream Load、Broker Load、Routine Load 等。
|
||
|
||
### 4. 联邦查询
|
||
|
||
Doris 支持通过外部表的方式查询其他数据源,如 MySQL、Hive、Iceberg、Hudi 等,实现数据联邦查询,无需数据搬迁。
|
||
|
||
## 技术架构
|
||
|
||
Apache Doris 采用 MySQL 协议,高度兼容 MySQL 语法,支持标准 SQL。整体架构分为两层:
|
||
|
||
### Frontend (FE)
|
||
|
||
FE 主要负责:
|
||
- 接收和解析用户请求
|
||
- 查询规划和优化
|
||
- 元数据管理
|
||
- 集群管理
|
||
|
||
FE 节点分为 Follower 和 Observer 两种角色,Follower 参与选举和写入,Observer 只用于扩展查询能力。
|
||
|
||
### Backend (BE)
|
||
|
||
BE 主要负责:
|
||
- 数据存储
|
||
- 查询执行
|
||
- 数据导入
|
||
|
||
BE 节点负责数据的存储和计算,采用列式存储和向量化执行引擎,提供高性能的查询能力。
|
||
|
||
## 使用场景
|
||
|
||
### 1. 报表分析
|
||
|
||
适用于各类报表场景,支持复杂的多维分析,亚秒级响应,支持高并发查询。
|
||
|
||
### 2. 即席查询
|
||
|
||
支持灵活的即席查询,用户可以快速探索数据,发现业务洞察。
|
||
|
||
### 3. 实时数仓
|
||
|
||
构建实时数据仓库,支持实时数据导入和查询,满足实时分析需求。
|
||
|
||
### 4. 日志分析
|
||
|
||
适用于日志分析场景,支持海量日志数据的快速检索和分析。
|
||
|
||
## 数据导入
|
||
|
||
Apache Doris 支持多种数据导入方式:
|
||
|
||
### Stream Load
|
||
|
||
通过 HTTP 协议导入数据,适用于实时数据导入场景。支持 CSV、JSON 等格式。
|
||
|
||
```bash
|
||
curl --location-trusted -u user:passwd \
|
||
-H "column_separator:," \
|
||
-T data.csv \
|
||
http://fe_host:http_port/api/database/table/_stream_load
|
||
```
|
||
|
||
### Broker Load
|
||
|
||
通过 Broker 进程访问外部存储系统(如 HDFS、S3)导入数据,适用于大批量数据导入。
|
||
|
||
### Routine Load
|
||
|
||
从 Kafka 等消息队列持续消费数据并导入,适用于实时数据流场景。
|
||
|
||
## 查询优化
|
||
|
||
Apache Doris 提供了多种查询优化手段:
|
||
|
||
1. **智能索引**:支持前缀索引、Bitmap 索引、Bloom Filter 索引等
|
||
2. **分区分桶**:通过合理的分区分桶策略,减少数据扫描量
|
||
3. **物化视图**:预计算常用查询结果,加速查询响应
|
||
4. **查询缓存**:缓存查询结果,避免重复计算
|
||
|
||
## 总结
|
||
|
||
Apache Doris 是一款高性能、易用的分析型数据库,适用于多种实时分析场景。通过 MPP 架构、列式存储、向量化执行等技术,提供亚秒级的查询响应能力。
|