更高效的数据处理解决方案:基于 MinIO 部署 Apache Doris 存算分离版本实践

举报
SelectDB技术团队 发表于 2025/11/26 16:05:59 2025/11/26
【摘要】 Apache Doris 作为一款具备高性能的实时分析数据库,拥有湖仓一体的能力。当它与 MinIO 这样高性能且 S3 兼容的对象存储系统相结合时,能够构建出一个高效且具备低成本特性的数据分析系统。本文将介绍基于 Apache Doris 和 MinIO 的存算分离部署教程与使用实践。

引言

现代数据处理在多维度面临严峻挑战,一方面,数据量的持续增长致使传统存储成本居高不下,非结构化数据所占比例日益攀升,进一步加重了存储负担,且数据质量问题推高了存储和清洗成本;另一方面,企业内部往往存在多套系统,数据难以集成,这对数据分析的成本和时效性也提出了更高的要求。

Apache Doris 作为一款具备高性能的实时分析数据库,拥有湖仓一体的能力。当它与 MinIO 这样高性能且 S3 兼容的对象存储系统相结合时,能够构建出一个高效且具备低成本特性的数据分析系统。本文将介绍基于 Apache Doris 和 MinIO 的存算分离部署教程与使用实践。

为什么选择 Apache Doris 和 MinIO

Apache Doris 是一款基于 MPP 架构的高性能、实时分析型数据库。它以高效、简单和统一的特性著称,能够在亚秒级的时间内返回海量数据的查询结果。Doris 具备以下优势:

  • 高性能:在海量数据下实现亚秒级查询响应,支持高并发点查询和复杂分析。
  • 实时分析:支持实时数据导入和查询,适合需要即时洞察的业务场景。
  • 易用性:设计简单,操作和维护成本低。
  • 可扩展性:通过 MPP 架构实现水平扩展,处理大规模数据和高并发请求。
  • 多场景支持:适用于报表分析、即席查询、用户画像、日志检索等多种场景。
  • 强大集成性:可与 MySQL、PostgreSQL、Hive、Flink 等数据源和工具无缝集成。
  • 活跃社区:拥有超过 600 名贡献者和全球 5000 多家企业的生产环境应用,得到 TikTok、Baidu 等巨头的验证。

与此同时,Doris 还支持存算一体和存算分离两种部署模式,在存算一体模型下,Doris 会在内部存储数据,而在存算分离模式下,Doris 可以选择第三方存储系统,如 MinIO。

MinIO 是一个开源、分布式对象存储系统,专为高性能和云原生工作负载设计。其主要优势包括:

  • 高性能:Minio 提供快速的数据访问,满足实时分析需求。
  • 可扩展性:支持水平扩展,能够轻松应对数据量增长。
  • 成本效益:作为开源软件,Minio 可在本地部署,避免云存储的高昂费用。
  • S3 兼容性:与 Amazon S3 API 完全兼容,易于与现有工具和应用集成。
  • 分布式架构:通过擦除码(Erasure Coding)技术,提供高可用性和数据冗余。
  • 灵活部署:支持裸金属、容器(如 Kubernetes)或云平台部署,适应多种环境。

这些特性使 Minio 成为 Apache Doris 存算分离架构的理想存储后端。

部署指南

01 规划

在我们进行部署之前,需要进行容量规划,如果你部署的是在生产环节,那么你应该考虑使用更高规格配置的机器,并且将各个组件独立部署。

软件版本准备:

服务器规划:

02 准备工作

  1. 操作系统参数修改

    swapoff -a
    
    cat >> /etc/sysctl.conf << EOF
    vm.max_map_count = 2000000
    EOF
    
    # Take effect immediately
    sysctl -p
    
    vi /etc/security/limits.conf 
    * soft nofile 1000000
    * hard nofile 1000000
    
  2. 安装必要的命令

    apt update
    apt install -y net-tools
    apt install -y cron
    apt install -y iputils-ping
    

03 部署 MinIO

  1. 下载 MinIO,选择适合的版本和操作系统。

  2. 在每个节点上启动 MinIO 服务器:

  3. 配置 MinIO 客户端:

注意:如果 MinIO 部署在本地网络且未启用 TLS,需在 endpoint 中显式添加“http://”。

04 部署 Doris Manager

  1. 下载 Doris Manager

  2. 解压并启动服务

    tar -zxf selectdb-manager-25.0.0-x64-bin.tar.gz
    cd selectdb-manager-25.0.0-x64-bin/webserver/bin
    bash start.sh
    
  3. 服务启动后,通过浏览器访问 8004 端口地址即可进入管理界面并根据指引创建账号

05 部署 Doris

  1. 下载 Doris

  2. 进入主界面,根据指引创建集群

  1. 选择指定版本并设置 root 密码

  1. 填写 MinIO 信息

  1. 填写节点信息

    1. 分别在每个节点执行

    2. 在界面上填写节点 IP

  2. 配置 FE 节点

  1. 配置 BE 节点

  1. 部署你的集群

开始查询

01 准备数据

  1. 进入查询页面

  1. 创建 Doris 表:

    CREATE DATABASE IF NOT EXISTS `test`;
    USE `test`;
    CREATE TABLE `amazon_reviews` (  
      `review_date` int(11) NULL,  
      `marketplace` varchar(20) NULL,  
      `customer_id` bigint(20) NULL,  
      `review_id` varchar(40) NULL,
      `product_id` varchar(10) NULL,
      `product_parent` bigint(20) NULL,
      `product_title` varchar(500) NULL,
      `product_category` varchar(50) NULL,
      `star_rating` smallint(6) NULL,
      `helpful_votes` int(11) NULL,
      `total_votes` int(11) NULL,
      `vine` boolean NULL,
      `verified_purchase` boolean NULL,
      `review_headline` varchar(500) NULL,
      `review_body` string NULL
    ) ENGINE=OLAP
    DUPLICATE KEY(`review_date`)
    COMMENT 'OLAP'
    DISTRIBUTED BY HASH(`review_date`) BUCKETS 16
    PROPERTIES (
      "compression" = "ZSTD"
    );
    
  2. 下载亚马逊评论数据

  3. 导入数据到 Doris

  4. 登录 MinIO 控制台,查看数据大小

02 查询

SELECT
    product_id,
    AVG(product_title),
    AVG(star_rating) AS rating,
    COUNT() AS count
FROM
    amazon_reviews
WHERE
    review_body LIKE '%is super awesome%'
GROUP BY
    product_id
ORDER BY
    count DESC,
    rating DESC,
    product_id
LIMIT 5;

总结

在导入相同数据(3 副本配置)方面,相较于存算一体模式 3.98 GB 的存储占用,采用 MinIO 的存算分离模式仅占用 1.3 GB,存储占用是存算一体模式的 1/3;与此同时,在数据导入速度方面,采用 MinIO 仅需 15 秒,而存算一体模式需要 61 秒,导入速度快 4 倍

通过结合 MinIO 和 Apache Doris 的存算分离架构,用户可以充分利用 Minio 的高性能、低成本对象存储和 Doris 的实时分析能力。这种架构不仅提升了系统的可扩展性和灵活性,还显著降低了存储成本,同时确保了业务负载的隔离和稳定性。希望本教程能帮助您快速部署并体验这一高效的数据处理解决方案。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。