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

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

为什么选择 Apache Doris 和 MinIO.png

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

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

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

部署指南

01 规划

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

软件版本准备:

规划-1.png

服务器规划:

规划-2.png

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:访问 MinIO 下载页面,选择适合的版本和操作系统。

     wget https://dl.min.io/server/minio/release/linux-amd64/minio
     chmod +x minio
    
  2. 在每个节点上启动 MinIO 服务器:

       export MINIO_REGION_NAME=us-east-1
       export MINIO_ROOT_USER=minio
       export MINIO_ROOT_PASSWORD=minioadmin
       mkdir -p /mnt/disk{1..4}/minio
       nohup minio server --address :9000 --console-address :9001 http://172.20.1.{2...5}:9000/mnt/disk{1...4}/minio 2>&1 &
    
  3. 配置 MinIO 客户端:

       wget https://dl.min.io/client/mc/release/linux-amd64/mc
       chmod +x mc
       ./mc alias set myminio http://127.0.0.1:9000 minio minioadmin
       ./mc mb myminio/doris
    

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

04 部署 Doris Manager

  1. 下载 Doris Manager
       wget https://enterprise-doris-releases.oss-accelerate.aliyuncs.com/doris-manager/velodb-manager-25.0.0-x64-bin.tar.gz
    
  2. 解压并启动服务
     tar -zxf velodb-manager-25.0.0-x64-bin.tar.gz
     cd velodb-manager-25.0.0-x64-bin/webserver/bin
     bash start.sh
    
  3. 服务启动后,通过浏览器访问 http://:8004 即可进入管理界面并根据指引创建账号

    部署 Doris Manager.png

05 部署 Doris

  1. 下载 Doris
    wget https://apache-doris-releases.oss-accelerate.aliyuncs.com/apache-doris-3.0.6.2-bin-x64.tar.gz
       mv apache-doris-3.0.6.2-bin-x64.tar.gz /opt/downloads/doris
    
  2. 进入主界面,根据指引创建集群

    部署 Doris-1.png

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

    部署 Doris-2.png

  4. 填写 MinIO 信息

    部署 Doris-3.png

  5. 填写节点信息

    1. 分别在每个节点执行以下命令
      wget http://172.20.1.2:8004/api/download/deploy.sh -O deploy_agent.sh && chmod +x deploy_agent.sh && ./deploy_agent.sh
      
    2. 在界面上填写节点 IP
      部署 Doris-4.png
  6. 配置 FE 节点

    部署 Doris-5.png

  7. 配置 BE 节点

    部署 Doris-6.png

  8. 部署你的集群

    部署 Doris-7.png

    部署 Doris-8.png

开始查询

01 准备数据

  1. 进入查询页面

    准备数据-1.png

    准备数据-2.png

  2. 创建 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"
    );
    
  3. 下载亚马逊评论数据:

    wget https://datasets-documentation.s3.eu-west-3.amazonaws.com/amazon_reviews/amazon_reviews_2010.snappy.parquet
    
  4. 导入数据到 Doris:

    curl --location-trusted -u root:<your password> \
    -T amazon_reviews_2010.snappy.parquet \
    -H "format:parquet" \
    http://127.0.0.1:8030/api/test/amazon_reviews/_stream_load
    
  5. 登录 MinIO 控制台,查看数据大小
    登录 MinIO 控制台.png

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 的实时分析能力。这种架构不仅提升了系统的可扩展性和灵活性,还显著降低了存储成本,同时确保了业务负载的隔离和稳定性。希望本教程能帮助您快速部署并体验这一高效的数据处理解决方案。

目录
相关文章
|
10月前
|
存储 SQL 运维
Apache Doris 在小米统一 OLAP 和湖仓一体的实践
小米早在 2019 年便引入 Apache Doris 作为 OLAP 分析型数据库之一,经过五年的技术沉淀,已形成以 Doris 为核心的分析体系,并基于 2.1 版本异步物化视图、3.0 版本湖仓一体与存算分离等核心能力优化数据架构。本文将详细介绍小米数据中台基于 Apache Doris 3.0 的查询链路优化、性能提升、资源管理、自动化运维、可观测等一系列应用实践。
495 3
Apache Doris 在小米统一 OLAP 和湖仓一体的实践
|
11月前
|
存储 消息中间件 关系型数据库
Apache Doris 数据导入原理与性能优化 | Deep Dive
Apache Doris 数据导入机制基于分布式架构,通过 FE 与 BE 协同实现高效、可靠的数据写入。本文深入解析其核心流程、事务管理与性能瓶颈,涵盖 Stream Load、Broker Load 等多种导入方式,重点剖析 MemTable 前移、存算分离优化等关键技术,并提供表结构设计、攒批策略、分桶配置等实战优化方案,帮助用户在延迟与吞吐间取得平衡,显著提升数据导入效率。
1529 4
Apache Doris 数据导入原理与性能优化 | Deep Dive
|
10月前
|
SQL 关系型数据库 Apache
Apache Doris 实时更新全解:从设计原理到最佳实践|Deep Dive
本文档将作为一份官方指南,系统性地阐述 Apache Doris 的数据更新能力,内容涵盖其核心原理、多样的更新与删除方式、典型的应用场景,以及在不同部署模式下的性能最佳实践,旨在帮助您全面掌握并高效利用 Doris 的数据更新功能。
743 0
Apache Doris 实时更新全解:从设计原理到最佳实践|Deep Dive
|
9月前
|
SQL 存储 运维
从 Greenplum 到 Doris:集群缩减 2/3、年省数百万,度小满构建超大规模数据分析平台经验
面对日益增长的业务体量与复杂多变的分析需求,选用一个高效、可靠的数据库系统,已成为支撑业务稳健发展与快速创新的关键。Apache Doris 以其出色的性能表现与高度灵活的架构,成为众多场景下的优选方案,详情阅读原文。
505 1
从 Greenplum 到 Doris:集群缩减 2/3、年省数百万,度小满构建超大规模数据分析平台经验
|
11月前
|
存储 SQL 算法
压缩率提升 48%,详解 Apache Doris 存储压缩优化之道|Deep Dive
本文基于 ClickBench 数据集,展示了 Apache Doris 如何通过选择压缩算法、调整数据页大小与分桶数、优化编码策略以及改进数据排序来提升压缩效率。最终,相同数据集的压缩空间从 16.08 GB 降至 8.2 GB,压缩率提升 48.6%。通过合理的调整与优化,Doris 成功在保持查询性能的同时显著降低了存储成本。
443 5
压缩率提升 48%,详解 Apache Doris 存储压缩优化之道|Deep Dive
|
11月前
|
SQL 人工智能 自然语言处理
Apache Doris 4.0 版本正式发布:全面升级 AI 与搜索能力,强化离线计算
Apache Doris 4.0 正式发布!深度融合AI与搜索能力,支持向量索引、AI函数、全文检索打分,强化离线计算稳定性,提升查询性能与数据质量,助力企业构建高效实时数仓。
1272 11
Apache Doris 4.0 版本正式发布:全面升级 AI 与搜索能力,强化离线计算
|
SQL 数据可视化 关系型数据库
Doris Manager 24.3 版本正式发布,增强集群巡检能力
Apache Doris 是全球领先的开源实时数据仓库,已被 5000+ 中大型企业广泛应用。为解决传统客户端工具在功能、成本及适配性上的不足,飞轮科技推出专为 Apache Doris 打造的可视化工具 SelectDB Studio。它提供 Desktop 和 Server 两个版本,支持永久免费使用,具备多数据源连接、SQL 编辑器、Profile 分析、日志检索、查询审计和权限管理等核心功能,深度集成 Apache Doris 的联邦查询与湖仓一体分析能力。未来还将新增数据导入与迁移功能,助力用户高效开发与管理数据。
1372 27
|
存储 分布式计算 Apache
湖仓一体:小米集团基于 Apache Doris + Apache Paimon 实现 6 倍性能飞跃
小米通过将 Apache Doris(数据库)与 Apache Paimon(数据湖)深度融合,不仅解决了数据湖分析的性能瓶颈,更实现了 “1+1>2” 的协同效应。在这些实践下,小米在湖仓数据分析场景下获得了可观的业务收益。
1808 9
湖仓一体:小米集团基于 Apache Doris + Apache Paimon 实现 6 倍性能飞跃
|
人工智能 运维 监控
智能运维与数据治理:基于 Apache Doris 的 Data Agent 解决方案
本文基于 Apache Doris 数据运维治理 Agent 展开讨论,如何让 AI 成为 Doris 数据运维工程师和数据治理专家的智能助手,并在某些场景下实现对人工操作的全面替代。这种变革不仅仅是技术层面的进步,更是数据运维治理思维方式的根本性转变:从“被动响应”到“主动预防”,从“人工判断”到“智能决策”,从“孤立处理”到“协同治理”。
2005 11
智能运维与数据治理:基于 Apache Doris 的 Data Agent 解决方案
|
11月前
|
分布式计算 数据可视化 数据挖掘
有哪些好用的BI产品?国内外BI工具推荐
在数字化转型浪潮下,企业亟需高效BI工具赋能决策。本文精选5款主流BI产品,涵盖瓴羊Quick BI、Tableau、Power BI、永洪BI与Smartbi,从功能、优势到应用案例全面解析,助力企业精准选型,实现数据驱动增长。