---
title: '如何使用 Databend Cloud 化简大数据架构？| Data Infra NO.24 回顾'
date: 2025-04-14
slug: category-engineering/datainfra24
cover_url: 'sync/datainfra/cover.png'
description: '在 Data Infra 第 24 期活动中，我们邀请到 Databend Cloud 研发负责人李亚舟，分享如何使用湖仓一体的 Databend Cloud 使大数据架构化繁为简…'
tags: [databend, datainfra]
category: Engineering
authors:
  - DatabendLabs
---

# 如何使用 Databend Cloud 化简大数据架构？| Data Infra NO.24 回顾

随着数据量的爆炸式增长和业务需求的多样化，许多企业的大数据平台在多年的演进中堆积了 Hadoop、Hive、Spark、Flink、Kafka 等数十种组件，复杂度的累积使架构演变为”难以维护的黑盒"，企业用户不得不承受着传统数据架构的慢性疼痛。亚舟将在本次分享中，以用户行为分析场景为例，介绍 Databend Cloud 如何化繁为简，帮助企业摆脱复杂技术栈的束缚，快速构建端到端的数据管道，从而实现一套可扩展、灵活、低成本的用户行为数据分析架构。

{/* truncate */}

在 Data Infra 第 24 期活动中，我们邀请到 **Databend Cloud 研发负责人李亚舟**，分享如何**使用湖仓一体的 Databend Cloud 使大数据架构化繁为简**。

**以下是精彩演讲实录：**：

在传统意义上，大数据架构基本上是沿袭自 Hadoop 技术栈。随着技术的不断演进与迭代，整个架构中涉及的组件数量也不断增加。除了数据的存储与分析之外，还涵盖了数据采集、任务调度、实时分析、批处理、数据湖等多个方面。随着时间的推移，这些组件在架构中日渐臃肿。

![img](/img/blog/sync/datainfra/01.png)

从积极的一面来看，这样的架构具有较强的可扩展性；但从现实使用层面看，它更像是一种“堆叠”而非真正的“统一架构”。随着组件数量的增加，系统的整体复杂度也在不断提高。每新增一个组件，不仅在能力层面带来了提升，同时也带来了新的复杂性。比如在一个数据采集到 ETL 再到报表输出的完整链路中，每增加一个组件，都会带来数据口径管理上的额外挑战，一旦出问题，需要跨多个组件排查，复杂度呈“层级式增长”。

此外，每一个组件往往都需要专门的技术专家进行管理。例如像 Flink、Spark 这样的核心计算组件，都要求数据工程师或架构师对其具备较深入的理解，才能有效支持日常的数据开发需求。

更重要的是，这些组件往往缺乏弹性。用户在使用这些组件时，不仅要掌握其工作原理，还需要根据其特点进行资源的精细调度。同时，不同组件之间的权限体系往往无法打通，这也进一步导致了数据孤岛的出现。而在如今对安全与合规性要求越来越高的背景下，每新增一个组件，也意味着整个系统的攻击面进一步扩大，从而加重了安全维护的负担。

综合来看，这一切最终带来的结果是：每当进行新的数据开发任务时，工程师们不仅要理解架构的复杂性，还要掌握业务数据本身的复杂性，同时还要满足合规性的多重要求。这样的工作模式，使得数据开发周期变得越来越难以控制。

## Databend Cloud 简化架构的思路

Databend Cloud 的目标就是**简化整个数据架构**，让用户能够更专注于业务本身的数据需求，而不是被底层技术复杂度所困扰。

![img](/img/blog/sync/datainfra/02.png)

首先，将整个数据架构视为一个**统一的整体性解决方案**，而非一堆松散拼接的技术组件。在对外接口上，Databend Cloud 的核心理念是：**一切皆可通过 SQL 驱动**。无论是日常的数据开发任务，还是复杂的数据处理流程，用户都可以统一使用 SQL 作为开发语言，极大地降低了技术门槛。

其次，Databend Cloud 是基于 SaaS 模式构建的云原生数据平台，提供**托管式、弹性化资源管理能力**，真正实现了免运维。用户无需关心底层架构中的具体组件，只需聚焦在业务逻辑本身。

因为是一个统一的平台，Databend Cloud 具备以下几个核心优势：

- **统一的元数据管理（Catalog）**；
- **统一的数据治理体系**；
- **对流批数据的支持**，实现**流批一体的增量计算能力**；
- **降低数据处理链路中对多组件的依赖**，从而减少整体架构复杂度。

## 案例解析：用户行为分析数据架构如何化简

用户行为数据以及相关的“埋点”指标，是数据仓库和各种数据架构中最核心的数据源之一。尤其对于互联网公司来说，用户行为数据往往是其最宝贵的数据资产之一。这类数据能够直接反映用户是如何使用 APP 的，也为后续的产品优化和用户体验改进提供了依据。

然而，用户行为数据分析本身具备一些特性，使得构建一套可扩展、灵活、低成本的用户行为数据分析架构具有相当大的挑战。

**首先是数据流量高、容量大。**用户行为数据是在用户操作 APP 时持续不断地产生的，因此数据量庞大、写入频繁。

另一方面，分析场景既包括结构较为固定的 **BI 报表**，也涵盖探索性分析所需的临时复杂查询（**Adhoc** SQL），需要系统兼顾稳定性与灵活性。

**其次，这类数据往往需要兼顾结构化和半结构化数据。**随着应用不断迭代，行为日志的种类也在持续变化，因此一个固定的数据结构难以覆盖整个应用生命周期的所有需求。

此外，对于一些异常行为的实时检测和响应，也对系统的**实时性提出了较高要求**。

![img](/img/blog/sync/datainfra/03.png)

传统的用户行为分析架构通常基于 Hadoop 等大数据生态系统构建，主要由以下组件构成：

- **埋点 SDK**：部署在客户端上，像日志一样记录用户操作；
- **数据收集网关**：汇聚客户端日志数据；
- **消息队列（如 Kafka）**：作为数据传输的中间层；
- **数据仓库**：对收集来的原始日志进行加工处理；
- **ETL 工具链（如 Spark + Airflow）**：进行数据清洗、转换、调度；
- **BI 工具或临时查询接口**：用于分析和呈现结果。

表面上看这个架构似乎并不复杂，但在实际运维中，每一个组件都是潜在的数据源。例如，Kafka 本身就是一个分布式系统，还依赖于 ZooKeeper；Kafka 到数据仓库之间通常还需同步组件；数据 ETL 过程可能依赖 Airflow，而 Spark 又需要运行在 Yarn 等资源调度系统中；元数据管理可能还要依赖 Hive Metastore，而底层存储如 HDFS 又有扩展性和稳定性上的挑战。

当所有这些组件都暴露给开发和运维团队时，就意味着每一个环节都可能出问题。要让团队成员具备对每个组件的深入理解和维护能力，几乎不现实。这种架构整体复杂度非常高，且在成本控制方面面临巨大挑战：我们常常不知道该从哪个环节入手进行优化。

因此，在重新思考用户行为分析架构时，我们应回归“第一性原理”：

![img](/img/blog/sync/datainfra/04.png)

1. **降低存储成本**：建议将用户行为日志存储在对象存储中，因为对象存储具备极高的性价比；
2. **降低运维成本**：尽量采用简洁的架构设计，减少组件数量，从而减少各组件之间的依赖和故障点。

成本并不仅限于存储和计算资源，维护成本往往是被忽视但又最为关键的一部分。在许多大数据架构中，维护成本甚至高于资源本身。当维护成本足够低时，就能更高效地优化资源使用；而在一个复杂架构中，即使理论上存在降低资源成本的空间，高昂的维护开销也会让这变得难以实现。

## Databend Cloud 架构设计

Databend Cloud 是一个从第一天起就完全面向**对象存储**设计的平台，其原生的云架构使其能够充分利用对象存储的**高吞吐、低成本**特性。相比传统数据架构，Databend 在执行层的设计上可最大化发挥对象存储的优势，同时实现了**计算与存储的完全解耦**。

Databend Cloud 完全兼容标准 SQL（兼容 ANSI SQL），支持对结构化与半结构化数据的分析，并提供了强大的自定义 UDF（用户自定义函数）能力。在处理非结构化数据场景下，用户可以通过编写 JavaScript 函数灵活扩展系统能力：

- 对于简单逻辑，可以使用内置 SQL 函数直接完成；
- 对于复杂逻辑，可以通过 JavaScript 编写 UDF 函数来实现，极大提升了灵活性和扩展性。

此外，Databend 是**完全无状态**的，天然支持云原生的**自动弹性伸缩特性**。其内置的 Task 调度机制，也让用户无需再部署和维护独立的调度器组件，从而进一步简化系统架构。

## Databend Cloud 在企业级数据场景中的落地实践

目前，Databend Cloud 已在众多关键企业级数据场景中实现落地，包括：

- 离线数据分析替代方案；
- 实时推荐系统；
- 日志存储与 Elasticsearch 替换；
- 在线数据库归档场景；
- 用户行为数据分析。

其中，针对**用户行为数据分析**，Databend Cloud 提供了极具优势的简化架构和运维体验。

## 简洁的数据摄入与分析流程

![img](/img/blog/sync/datainfra/05.png)

在 Databend Cloud 架构中，**数据摄入流程极为简化**：

1. **用户日志数据**写入对象存储（如 S3、阿里云 OSS、腾讯云 COS 等）；
2. Databend Cloud 通过内置 Task 自动从对象存储中拉取数据；
3. 数据进入仓库后继续落入对象存储，完成分析闭环。

整个流程中，实际涉及的仅有两个组件：

- 对象存储（S3 等）：既是数据摄入入口，又是数据持久化载体；
- Databend Cloud：负责计算、调度、查询与管理。

相比传统方案中 Kafka + Kafka Connect 的复杂堆叠架构，Databend 仅需两个组件即可构建出一套稳定高效的数据分析系统，极大降低了系统复杂性和运维成本。

### 架构是否真的简单？

有人可能会质疑：“Databend Cloud 架构看起来简单，但会不会只是‘看起来简单’，实际内部也很复杂？”事实上，Databend Cloud 简洁性来自于其底层架构的云原生设计：

- 每一个计算节点（Warehouse）本身是**无状态**的；
- 调度轻松、弹性强，可以随时拉起或关闭；
- 系统负载与资源消耗完全按需分配，避免资源浪费。

此外，BI 报表通常并不需要实现实时、持续的访问。换句话说，BI 报表的查询频率相对较低，一般只需要在每天或每小时生成一次结果即可。而对于交互式的即时查询场景，通常也是数据分析师在特定时段内手动发起的，访问频率远不如用户请求那样高频且连续。

正因为如此，这类场景具备一个很好的特性——**可自动休眠**。当分析师不活跃，或暂时不需要报表输出时，系统可以自动进入休眠状态，等真正需要进行数据分析或报表查询时再“唤醒”。这样一来，整个系统在一天 24 小时中可能只有 2~3 小时是真正活跃的，其余时间均可释放资源，极大地降低了资源占用和成本。因此，这种架构在成本控制方面表现非常出色。

## 一个完整的用户行为数据分析流程

接下来介绍一下在 Databend Cloud 上，如何构建一个完整的用户行为分析流程。

![img](/img/blog/sync/datainfra/06.png)

首先，在 Databend Cloud 上，可以创建一个 **Warehouse**。Databend 的 Warehouse 是基于使用时长计费的，正如前面提到的，BI 报表以及数据分析师的工作通常集中在每天的两到三个小时内，所以这套按需计费模型可以带来非常可观的成本节约。

### 多个 Warehouse 的协同

在实际使用中，通常会创建两个 Warehouse：

- **Ingest Warehouse**：用于数据摄入和调度 Task；
- **BI Report Warehouse**：用于 BI 报表查询。

这么做的原因是，数据摄入通常是一个耗时较长但资源需求较低的过程，所以可以用规格更小的 Warehouse 来节省资源。而报表查询往往对响应速度要求更高，所以可以为其单独配置资源。

![img](/img/blog/sync/datainfra/07.png)

Warehouse 创建好之后，可以在 Databend Cloud 首页中获取连接串信息（Connect 字段），用于连接各种 Driver 或生态系统中的工具。

### 数据建表与 Stage 设置

![img](/img/blog/sync/datainfra/08.png)

先创建一个行为日志表，比如叫 activity，表结构在实际生产中可能会更宽，但此处为演示做了简化。

然后再创建一个 **Stage**。Stage 可以理解为映射到对象存储（如 S3）中的某个目录。只要将日志文件写入该目录，Databend Cloud 就能自动识别并导入。

### 使用 Task 实现自动摄入

![img](/img/blog/sync/datainfra/09.png)

接着创建一个 **Task**，设置为每分钟执行一次。这个 Task 的作用是将指定 Stage（也就是 S3 目录）中的 JSON 文件自动导入到 Databend 中的表里。

一个关键参数是 `purge = true`，它表示每个文件在成功导入后会被自动删除。这样一来，S3 中的目录就相当于一个简化的**消息队列**，Databend 的 `COPY INTO` 语句具备**事务性保障**，确保文件数据不会重复导入，也不会遗漏。这一机制大大简化了架构设计，同时避免了 Kafka Connect 这类组件带来的复杂性和成本。

## Databend Cloud 架构优势

### 表级增量捕获，实现增量运算

![img](/img/blog/sync/datainfra/10.png)

数据成功导入后，可以进行后续的 ETL 或分析处理。Databend 提供了一个非常有价值的特性 —— **Stream**。每一张表都可以开启一个 Stream，用于捕获表的增量变更（CDC）。

在查询一个 Stream 时，系统只会返回自上一次提交以来新增的记录（或变更记录），而且同样具备**事务保障** —— 只有当前 Task 执行成功并提交之后，Stream 的“点位”才会前移，确保数据处理的准确性和一致性。

借助这个机制，可以实现增量处理的 ETL，将新导入的数据加工后合并到目标表中。

这对提升 ETL 效率非常关键 —— 在传统模式下，每次 ETL 都需要全表扫描，尤其在表达到数百 TB 或 PB 级别时，**全量处理几乎是不可行的**。而通过 Stream 的增量处理，每天只处理新增数据，性能和资源成本都能大幅下降。

### 并发弹性扩展

![img](/img/blog/sync/datainfra/11.png)

除了分析师使用 BI 报表和交互式查询，很多业务场景还要求高并发的在线查询，比如后台数据看板、To-C 用户画像服务等。

为此，Databend Cloud 提供了强大的 **Multi-cluster 弹性能力**：

- 当系统检测到查询请求的并发量上涨时，可以自动扩展计算资源；
- 比如起始是一个 Small 规格的集群，用户量增大时可以自动弹出两个或更多的计算节点；
- 配置 max_clusters = 4 时，系统最多可以弹出 8 倍算力；
- 整个过程是完全自动的，无需用户手动干预。

这让系统在面对高并发访问时，依然能够保持良好的响应能力。

### 全量 ETL 性能优势

虽然前面强调了增量处理的重要性，但 Databend 在全量 ETL 的性能表现也非常出色。

![img](/img/blog/sync/datainfra/12.png)

在多个权威基准测试中：

- **ClickBench** 和 **TPC-H** 的测试结果表明，Databend 的查询和数据加载性能都处于领先水平；
- 在一些查询任务中，Databend 显著优于 ClickHouse 和 Snowflake；
- 特别是在数据加载阶段，Databend 在多项榜单中获得第一名的成绩。

### 降本增效

![img](/img/blog/sync/datainfra/13.png)

在当前的市场环境下，降本增效已经成为一项核心议题。Databend Cloud 正是在这一背景下，为企业提供的一个整体性降本增效解决方案。

Databend Cloud 在部分替换 Trino 场景下能够帮助用户降低多达 75% 的成本。这主要得益于两个方面：其一是基于对象存储的架构，具备高性价比；其二是其计算引擎在 CPU 使用效率和实例配置方面具有明显优势。在特定的替换场景中，甚至可以达到 90% 的成本降低。这是因为对象存储的数据具备更高的压缩比，同时配合高效的扫描性能，使其在日志类场景中能够替代传统的 ES（Elasticsearch）反向索引，规避昂贵的索引维护和本地磁盘成本。

在数据归档场景中，其降本逻辑类似——通过廉价的对象存储和高压缩比的数据处理方式，大幅降低存储开销。例如，一位大型客户每天可向系统中摄入 1PB 的数据，这在传统架构下几乎是难以承受的成本，而在 Databend Cloud 的支持下，成本则变得极具竞争力。

## Databend Cloud 展望

![img](/img/blog/sync/datainfra/14.png)

在当前数据架构日益复杂的背景下，组件堆叠和系统维护成本不断上升。Databend Cloud 所强调的一体化、云原生和轻量级架构，正是为了解决这一问题。它不仅能有效降低存储和计算成本，还能极大地减少维护负担，从而成为企业在数据架构选型时的重要考量因素。

建议将对象存储作为架构设计中的核心部分。实践证明，在数仓场景下，对象存储不仅具备显著的性价比优势，还能配合计算引擎实现出色的性能表现。通过 Databend Cloud，用户可以快速构建一套高性能、低成本、连接灵活的数据分析架构。在满足业务需求的同时，这种简洁的架构设计也意味着更低的运维成本，而低运维成本也间接带来了资源成本的进一步降低。

![img](/img/blog/sync/datainfra/15.png)

关于 2025 年的发展规划，目标是打造业内最高可用性的数据平台，并进一步提升资源管理的精细化能力，实现资源分组与隔离的灵活配置，同时在本地部署和资源调度之间实现更好的平衡。

在功能层面，Databend 将持续增强对地理空间分析的支持。值得一提的是，地理空间能力与 AI 之间也存在密切关系。例如，AI 任务中常涉及到空间距离的相似性计算，因此也将探索如何利用 Databend 构建面向 AI 的数据仓库。目标是进一步扩展其能力，打造一个支持多模态的数据仓库平台，真正实现数据与 AI 的深度融合。
