利用 Databend 助力 CDH 分析 | 大参林

news/2024/7/10 21:06:10 标签: 数据库, 开源

作者: 黄志武

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

 


http://www.niftyadmin.cn/n/4962939.html

相关文章

Python“牵手”微店商品详情数据采集方法,微店API申请步骤说明

微店平台API接口是为开发电商类应用程序而设计的一套完整的、跨浏览器、跨平台的接口规范。 微店API接口是指通过编程的方式,让开发者能够通过HTTP协议直接访问微店平台的数据,包括商品信息、店铺信息、物流信息,评论数据,店铺订…

JVM 之 垃圾收集算法详解

文章目录 一、标记清楚算法二、标记复制算法三、标记整理算法四、不同垃圾收集算法优缺点总结1. 标记-清除算法:2. 标记-复制算法:3. 标记-整理算法: 一、标记清楚算法 标记清除是一种简单而直接的垃圾回收算法。它的执行流程如下&#xff1…

spark基于HNSW向量检索

参考文档:https://talks.anghami.com/blazing-fast-approximate-nearest-neighbour-search-on-apache-spark-using-hnsw/ HNSW参数调优文档:https://github.com/nmslib/hnswlib/blob/master/ALGO_PARAMS.md spark 运行HNSW向量检索分为以下三步 1 创建H…

为什么选择网络安全?为什么说网络安全是IT行业最后的红利?

一、为什么选择网络安全? 这几年随着我国《国家网络空间安全战略》《网络安全法》《网络安全等级保护2.0》等一系列政策/法规/标准的持续落地,网络安全行业地位、薪资随之水涨船高。 未来3-5年,是安全行业的黄金发展期,提前踏入…

【Java】基础练习(九)

1.结婚 创建一个Person类,如下: public class Person{private String name;private Character gender;private Integer age;private Boolean marry;// 省略 getter / settter / 构造 / toString / hashCode / equals }有一个类CAB,有一个canMarry方…

聚合函数与窗口函数

聚合函数 回答一 聚合函数(Aggregate Functions)是SQL中的函数,用于对一组数据进行计算,并返回单个结果。聚合函数通常用于统计和汇总数据,包括计算总和、平均值、计数、最大值和最小值等。 以下是一些常见的聚合函…

基于风驱动算法优化的BP神经网络(预测应用) - 附代码

基于风驱动算法优化的BP神经网络(预测应用) - 附代码 文章目录 基于风驱动算法优化的BP神经网络(预测应用) - 附代码1.数据介绍2.风驱动优化BP神经网络2.1 BP神经网络参数设置2.2 风驱动算法应用 4.测试结果:5.Matlab代…

神奇小队之我爱画画

《神奇小队之我爱画画》,是南通神笔动漫科技有限公司2022年推出的原创系列动画剧集。 南通神笔动漫创立于2020年4月,公司专注于2-12岁儿童内容策划、运营文创企业。公司主要运营动漫IP《神奇画笔》,项目于2020年创立《神奇画笔》儿童IP&#…