Skip to main content

One post tagged with "Customer"

View All Tags

image.png

作者: 黄志武

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

大参林医药集团股份有限公司成立于 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有非常不错的体验,简单易用、查询迅速,对业务常用的历史数据查询无缝切换,极大地缩短了项目周期,提升了效率,减少了业务方的焦虑。

作者:苏琳

多点DMALL 供应链补货团队负责人

Alt text

多点DMALL 成立于 2015 年。从创立伊始,就致力于以大数据、云计算、AI 等数字技术改变零售业,是一站式全渠道数字零售解决方案服务商,数字化解构重构零售产业,提供端到端的商业 SaaS 解决方案。

多点DMALL 通过 DMALL OS 提供零售云一站式解决方案,帮助零售商和品牌商数字化转型,实现线上线下一体化;同时通过多点 App 等工具赋能全渠道经营能力,并提供各类增值服务。

需求概述

商家要求支持 4 个月的日志查询,目前线上只支持 1 个月。每天日志是 400 万行项,1 个月的日志量是 1.2 亿, 考虑到后续业务的增长,预计每月日志数据量会增长到 2.5亿;4 个月的日志量是 10 亿行项左右。

现采用的 MongoDB 集群因资源受限无法支持 10 亿行项存储及查询,急需寻找另外的解决方案。

Databend 的介绍及优势

Databend 是一个开源的、完全面向云架构的新式数仓,它提供快速的弹性扩展能力,并结合云的弹性、简单性和低成本,使 Data Cloud 构建变得更加容易。Databend 把数据存储在 AWS S3 ,Azure Blob 等这些云上的存储系统,可以使不同的计算节点挂载同一份数据,从而做到较高的弹性,实现对资源的精细化控制。Databend 在设计上专注以下能力:

  • 高性能且部署使用成本低: 在提供更高的性能的同时,部署成本不到传统数据库(MySQL、MongoDB)的 1/10;

  • 支持标准 sql 语法: 能兼容 Mybatits 等常用 ORM 框架,对于研发来说没有任何学习成本。

  • 支持自动索引: 系统会自动对所有字段建立索引;无需研发进行优化。

技术选型

由于 Databend 可以处理海量数据的查询,并且提供了实时查询和处理能力。恰好满足了多点现在所求。基于以上,我们选择 Databend 实现海量日志实时查询的原因包括有以下四点:

1️⃣ 基于对象存储,成本低

SSD 块设备的 1/10;按实际用量付费

2️⃣ 在线查询

无须从冷备中恢复;可接受的查询性能

3️⃣ 支持大单表

TB 级别;分批持续归档

4️⃣ 兼容 TiDB

MySQL 协议;数据类型兼容

使用 Databend 方案

目前使用 Databend 主要是用在计算日志查询场景。

计算任务会将计算日志保存到 MongoDB;然后会通过定时任务,将日志从 MongoDB 同步到 Databend 供页面查询。

Alt text

基于 Databend 的性能测试

👨🏻‍💻 测试环境

Databend 是计算、存储分离架构

计算节点: 1 * 4C16G100G (费用 70美元/月)

**存储:**使用对象存储,按需付费

👨🏻‍💻 测试表结构和数据样例

1️⃣ 表结构

CREATE TABLE `logs` (
  `tenant` VARCHAR COMMENT,
  `batch_seq` INT COMMENT,
  `order_situations` VARIANT COMMENT,
  `day` VARCHAR COMMENT,
  `shop_code` VARCHAR COMMENT,
  `goods_code` VARCHAR COMMENT,
  `supplier_code` VARCHAR COMMENT,
  `out_supplier_code` VARCHAR COMMENT,
  `out_supplier_type` VARCHAR COMMENT,
  `today_order` INT COMMENT,
  `category` VARCHAR COMMENT,
  `sec_category` VARCHAR COMMENT,
  `thi_category` VARCHAR COMMENT,
  `log_detail` JSON COMMENT
) ENGINE=FUSE

2️⃣ 查询性能

Alt text

👨🏻‍💻 测试总结

在10亿数据量级下,常用查询均可做到秒级响应。

海量日志实时查询服务通用化解决方案

Alt text

Databend 适用方案

  • 大规模数据查询: Databend 可以处理海量数据的查询。如果你需要对大规模数据进行复杂的查询和分析,Databend 可以作为一个高效的数据湖仓使用。

  • 数据仓库和数据湖: Databend 可以作为数据仓库或数据湖的核心组件,用于存储和管理结构化和半结构化数据。它支持标准的 SQL 查询语言,使得数据分析师和工程师可以方便地进行数据探索和分析。

  • 实时数据处理: Databend 提供了实时查询和处理能力,适用于对实时数据流进行查询和分析的场景。你可以将实时数据流导入到 Databend 中,并通过 SQL 查询语言实时分析数据。