---
title: 利用 Databend 助力 CDH 分析 | 大参林
description: '大参林医药集团股份有限公司成立于 1999 年，是中国具有影响力的药品零售连锁集团化企业。目前使用 Databend，对大表数据的查询加载速度提升 2 倍；腾讯云 COS 存储成本相对于 CDH 本地盘及副本模式成本下下降 15 倍左右；且性能满足日常的数据审计查询需求。'
slug: category-customer/replace-cdh
date: 2023-08-23
tags: [Product, Customer]
category: Customer
cover_url: 'replace-cdh.png'
image: 'replace-cdh.png'
authors:
  - DatabendLabs
---

> 作者：黄志武
>
> 大参林医药集团股份有限公司，信息中心数据库组组长，13 年数据库行业从业经历，Oracle OCM，关注 Oracle、MySQL、Redis、MongoDB、Oceanbase、Tidb、Polardb-X、TDSQL、CDH、Clickhouse、Doris、Databend 等多方面的关键领域技术，服务过传统通信、电力，互联网、移动互联网等行业。

{/* truncate */}

大参林医药集团股份有限公司成立于 1999 年，是中国具有影响力的药品零售连锁集团化企业。在数字化转型升级的趋势背景下，支撑持续稳定的零售业务生态，离不开高效的信息化、数据化、智能化的技术支持。

## 需求概述

大参林医药集团零售供应链数据庞大，涉及大表较多，最大单表数据量达到 93 亿，历史数据存储在大数据服务 CDH。由于技术架构升级改造原因，该 CDH 需要下线，但是业务部门提出需要保留数据用于审计追溯。若考虑通过关系型分布式数据库进行迁移，如 OceanBase、TiDB，对于历史数据的关联并行查询也是一种挑战；若考虑只通过 COS、OSS, S3 对象存储备份导出的文档数据文件，受限于平台技术，无法执行数据关联查询。由于时间紧迫，急需一种投入成本低、见效快的替代方案。

## 使用 CDH 的痛点

现在大数据平台数据增长迅速，数据量超过 30T，机器集群硬件配置不足以承担目前的业务压力，成本投入也越来越大。

## 初见 Databend

Databend 是一个开源的 Elastic 和 Workload-Aware 现代云数据仓库。使用最新的矢量化查询处理技术，可以在对象存储（S3、Azure Blob、谷歌云存储、华为云 OBS 或 MinIO）上进行超快的数据分析。

### Databend 产品特点：

- **即时弹性**

Databend 将存储与计算完全分离，用户可以根据应用程序的需要轻松扩展或缩小。

- **优异的性能**

Databend 利用数据级并行（Vectorized Query Execution）和指令级并行（SIMD）技术，提供性能卓越的数据分析。

- **类似 Git 的 MVCC 存储**

Databend 使用快照存储数据。查询、克隆和恢复表中的历史数据非常容易。

- **支持半结构化数据**

Databend 支持摄取各种格式的半结构化数据，例如 CSV、JSON 和 Parquet，这些数据位于云端或您的本地文件系统中；Databend 还支持半结构化数据类型：ARRAY、MAP、JSON，便于半结构化导入和操作。

- **MySQL/ClickHouse 兼容**

Databend 符合 ANSI SQL 并兼容 MySQL/ClickHouse 协议，可以轻松连接现有工具（MySQL Client、ClickHouse Client、Vector、DBeaver、Jupyter、JDBC 等）。

- **使用方便**

Databend 没有要构建的索引，不需要手动调整，不需要手动计算分区或分片数据，所有这些都在数据加载到表中时完成。

## 技术选型

Databend 是一个数据仓库平台，同样具备类似通用的大数据平台 CDH 的的支持能力。在选择数据归档方案时，分 3 个方面做了对比：

- **存储成本**：对象存储和 HDD, SSD 的成本，其中对象存储是 HDD 的 1/10, 是 SSD 的 1/30；
- **数据迁移成本**：数据备份文件导出后直接迁到对象存储中，可以实现无脑在 Databend 直接加载存储，通过读取备份文件的表对象信息完成创建表和加载数据；
- **关联查询能力**：查询方式简单，兼容 MySQL 协议，可不用改变 Mysql 的使用习惯，直接无需过多改动即可通过原来的业务 SQL 进行关联查询；

## Databend 方案

目前 Databend 主要用于数据归档。实现方式是将大数据平台 CDH 导出的 Parquet 文件，通过腾讯云的文件迁移同步工具 cos_migrate_tool 实现传输备份至腾讯云 COS，使用 Databend 的单节点部署方案把该 COS 直接加载，即可实现 COS 下文件自动识别。

- 创建 Stage

```
create stage if not exists mystage
 url = 's3://cos存储桶/backup/'
 connection=(endpoint_url='https://cos.ap-guangzhou.myqcloud.com'
 access_key_id='ACCESS_KEY_ID' secret_access_key='SECRET_ACCESS_KEY');
```

- 查看 Stage 中的文件

```
list @mystage;
```

- Load stage 中的文件到 Databend

**从文件中获取表结构来创建表**

```
create table t1 as select * from @mystage/bi/t1/ (pattern=>'.*parq') limit 0;
```

**加载文件往表中写入数据**

```
copy /*+ set_var(max_threads=5) */ into t1 from @mystage/bi/t1/ pattern='.*[.]parq' file_format=(type=parquet);
```

- 查询

**查询**

```
use bi;
select * from t1 limit 10;
```

现在 Databend 支持复杂的查询语法，可以满足平时业务需求。

## Databend 使用现状

目前使用 Databend，对大表数据的查询加载速度提升 2 倍；腾讯云 COS 存储成本相对于 CDH 本地盘及副本模式成本下下降 15 倍左右；且性能满足日常的数据审计查询需求。

## 总结

采用 Databend 有非常不错的体验，简单易用、查询迅速，对业务常用的历史数据查询无缝切换，极大地缩短了项目周期，提升了效率，减少了业务方的焦虑。
