作者: 黄志武

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

某医药集团是中国具有影响力的药品零售连锁集团化企业。在数字化转型升级的趋势背景下,支撑持续稳定的零售业务生态,离不开高效的信息化、数据化、智能化的技术支持。

需求概述

某医药集团零售供应链数据庞大,涉及大表较多,最大单表数据量达到 93 亿,历史数据存储在大数据服务 CDH 。现在大数据平台数据增长迅速, 数据量超过 30T,机器集群硬件配置不足以承担目前的业务压力,成本投入也越来越大。

由于技术架构升级改造原因,该 CDH 需要下线,但是业务部门提出需要保留数据用于审计追溯。若考虑通过关系型分布式数据库进行迁移,如 OceanBase、TiDB,对于历史数据的关联并行查询也是一种挑战;由于时间紧迫,急需一种投入成本低、见效快的替代方案。

Databend 是一款开源、易用的云数仓,面向对象存储设计,支持使用 COS 对象存储作为存储后端,并且能够提供对复杂查询的支持,完美匹配某医药集团的业务需求。

认识 COS 对象存储

COS 对象存储(Cloud Object Storage)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。具备稳定持久、安全可靠、简单易用、接入便捷的特点。

产品优势

稳定持久

提供数据跨多架构、多设备冗余存储,为用户数据提供异地容灾和资源隔离功能,实现12个9的数据可靠性和和99.995% 的可用性。

安全可靠

提供防盗链、数据加密、监控告警等功能综合保护数据安全。

成本最优

按需按量使用提供生命周期管理,支持数据定期沉降、删除等功能,进一步降低成本。

简单易用

提供图形化程序、命令行工具、协议工具等对存储对象进行批量操作,让使用更为简单。

接入便捷

提供丰富的 SDK 接入工具,简单且可靠,同时提供了线上、线下多种迁移服务,让用户的业务快速上云。

服务集成

提供全球加速、CDN加速、三级加速能力及提供「存储 + 处理」一体化解决方案,满足各种业务需求。

认识 Datebend 云数仓

Databend是一款使用 Rust 研发、开源、弹性、低成本,基于对象存储也可以做实时分析的新式数仓,具有即时扩缩容能力,能在数分钟内增加数百倍的算力,为企业提供了一个用于存储、管理和分析大量数据的集中式平台,从而助力企业更准确地洞察业务、制定战略。

Datebend 产品特点

基于共享存储的设计

Databend 支持腾讯云对象存储COS 。这种设计模式允许存储按使用量付费,具有高度的弹性。当计算节点需要扩展时,数据无需进行任何移动。

存储和计算分离的架构

在此架构下,计算节点可以根据需求进行动态启动。当业务处于空闲状态时,计算节点会自动进入休眠,从而有效节省资源。

面向对象存储的调度器设计

由于对象存储存在多种限制并且易于抖动,其并非专为数据仓库设计。因此,Databend 的调度器和优化器针对对象存储进行了大量优化。例如,调度器上的存储和计算在运行时具有双向感压特性。

高度的弹性伸缩性

Databend 采用 Serverless 设计,能够快速进行弹性伸缩,以适应各种业务需求和负载变化。

技术选型

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

存储成本

主要对比了引入对象存储和使用 HDD、SSD 的成本,其中对象存储的容量成本是 HDD 的 1/10, 是 SSD 的 1/30 。而且,使用 COS 作为存储后端,无需进行硬件采购、部署和运维,可以节省运维工作和托管成本。

数据迁移成本

数据备份文件导出后直接迁到对象存储中,可以无脑在 Databend 进行挂载,通过读取备份文件的表对象信息完成创建表和加载数据。

关联查询能力

查询方式简单,兼容 MySQL 协议,可不用改变 Mysql 的使用习惯,直接无需过多改动即可通过原来的业务 SQL 进行关联查询。

Datebend 方案

Databend 目前主要服务于某医药集团的数据归档场景,具体的方案如下图所示:

大数据平台 CDH 的历史数据导出为 Parquet 格式文件。

通过腾讯云的文件迁移同步工具cos_migrate_tool将备份文件传输至腾讯云COS。

Databend 采用单节点部署方案,直接加载对应 COS ,自动识别 COS 下文件。

数据加载流程

要使用 Databend 进行历史数据关联查询,数据加载链路是关键。

使用 Stage 挂载备份的历史数据

Databend 支持创建外部 Stage 来关联和管理位于不同存储服务中的数据。COS 提供兼容 S3 的 API 接口,可以方便通过 S3 协议访问数据。

Databend 也支持 COS 的原生 API ,可以提供高性能和稳定的数据访问支持。

创建 Stage

create stage if not exists mystage url ='s3://cos-bucket/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;

加载 Stage 中数据到 Databend

Databend 支持模式推断,可以根据数据文件获取相应的表结构,从而简化建表过程。同时,Databend 也支持直接查询 Stage 中的数据文件,方便进行临时分析和数据诊断。

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

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);

查询

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

简单查询 10 条数据

select * from t1 limit 10;

现状与总结

目前使用 Databend 和腾讯云 COS 技术组合后,大表数据的查询加载速度提升了2倍,满足日常的数据审计查询需求。采用 COS 作为 Databend 的存储后端相比于 CDH 本地盘和副本模式,成本降低了约15倍。

采用 Databend + COS 有非常不错的体验,简单易用、查询迅速,登录腾讯云即可使用【https://console.cloud.tencent.com/cos/dataEcology】,对业务常用的历史数据查询无缝切换,极大地缩短了项目周期,提升了效率,减少了业务方的焦虑。

利用 Databend + COS助力 CDH 分析 | 某医药集团的更多相关文章

  1. 利用backtrace和objdump进行分析挂掉的程序

    转自:http://blog.csdn.net/hanchaoman/article/details/5583457 汇编不懂,先把方法记下来. glibc为我们提供了此类能够dump栈内容的函数簇, ...

  2. linux下利用elk+redis 搭建日志分析平台教程

    linux下利用elk+redis 搭建日志分析平台教程 http://www.alliedjeep.com/18084.htm   elk 日志分析+redis数据库可以创建一个不错的日志分析平台了 ...

  3. 利用R语言打造量化分析平台

    利用R语言打造量化分析平台 具体利用quantmod包实现对股票的量化分析 1.#1.API读取在线行情2.#加载quantmod包3.if(!require(quantmod)){4. instal ...

  4. PB 级数据处理挑战,Kubernetes如何助力基因分析?

    摘要: 一家大型基因测序功能公司每日会产生 10TB 到 100TB 的下机数据,大数据生信分析平台需要达到 PB 级别的数据处理能力.这背后是生物科技和计算机科技的双向支撑:测序应用从科研逐步走向临 ...

  5. 利用元数据提高 SQLFlow 血缘分析结果准确率

    利用元数据提高 SQLFlow 血缘分析结果准确率 一.SQLFlow--数据治理专家的一把利器 数据血缘属于数据治理中的一个概念,是在数据溯源的过程中找到相关数据之间的联系,它是一个逻辑概念.数据治 ...

  6. 案例分享|某医药集团的BI建设案例

    相比于传统型BI,越来越多的企业开始接受并青睐新型的自助式BI,因其项目上线快,失败风险小,简单易用,颇受赞誉.以下是某医药集团上线帆软BI系统FineBI的案例,从用途架构.指标分析.和信息交互几方 ...

  7. SQL中利用DMV进行数据库性能分析

    相信朋友对SQL Server性能调优相关的知识或多或少都有一些了解.虽然说现在NOSQL相关的技术非常的火热,但是RMDB(关系型数据库)与NOSQL是并存的,并且适用在各种的项目中.在一般的企业级 ...

  8. 利用powershell进行windows日志分析

    0x00 前言 Windows 中提供了 2 个分析事件日志的 PowerShell cmdlet:一个是Get-WinEvent,超级强大,但使用起来比较麻烦:另一个是Get-EventLog,使得 ...

  9. 利用grep命令查找字符串分析log文件的一次实践

    需求场景: 我需要分析一个服务器访问日志,分析百度蜘蛛这个月对求索网页面的抓取情况. 分析问题: 我的一个access.log文件大小有35M,不可能直接通过打开查看.我需要过滤掉一些没有的信息,只保 ...

  10. 利用tca时间聚簇分析方法分析fmri数据

    一.利用ica进行fmri数据分解时,在得到相互独立的成分后,这些成分的后续处理,其实是有很多文章可以做的.比如,对这些成分进行排序和选择.如果能够提出某种方法,能够自动地制造特征,并将这些特征与分解 ...

随机推荐

  1. Windows10 安装使用 Docker

    Windows10 安装使用 Docker 下载安装 Docker Desktop https://docs.docker.com/docker-for-windows/install/ 点击运行 D ...

  2. CE-植物大战僵尸杂交版

    植物大战僵尸杂交版 偏移:208+82c

  3. C++ 第四节课 C和C++指针的区别 C的宏函数和C++内联函数的优缺点

    #include <iostream> // 定义一个宏函数 #define ADD(x,y) x+y; // 宏函数具有速度快等特点 但是写代码有些业务比较繁琐,所以C++中使用了内联函 ...

  4. 3. 王道OS-操作系统的运行机制,中断和异常

    1. 高级语言- 编译 - 机器指令 (二进制) 2. 内核态和用户态 :刚开机的时候CPU是内核态,当用户启动某个程序的时候CPU是用户态,如果遇到危险,操作系统会夺回CPU的控制权成为内核态,当危 ...

  5. js中数据的基本类型

    有5种基本数据类型分类 : 1. 数字型  number 2. 字符型 string 3. 布尔型 boolean 4. undefined 未定义  就是声明了但是没有赋值 5. null 空指针 ...

  6. SegmentFault 基于 Kubernetes 的容器化与持续交付实践

    本文是根据 KubeSphere 云原生 Meetup 杭州站讲师祁宁分享内容整理而成. SegmentFault 是一家综合性技术社区,由于它的内容跟编程技术紧密相关,因此访问量的波动也和这一群体的 ...

  7. Python面相对象的编程

    文章目录 1.基本概念 2.常用方法及代码实现 1.基本概念 Python的面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,它使用"对象&q ...

  8. 关于Java后台处理前端用户传来数据过大,超过数据库字段设置长度导致的异常问题处理

    在DTO bean对象上使用javax验证(如最小值,最大值等,请参阅here).

  9. QT Creator项目路径设置

    1.一些中间文件的生成路径的设置 MOC_DIR = temp/moc RCC_DIR = temp/rcc UI_DIR = temp/ui OBJECTS_DIR = temp/obj 这样设置之 ...

  10. Edge(Chrome)浏览器插件WordSaver的演示,可以查英语生词并记录生词及所在句子,导出为anki格式

    Edge(Chrome)浏览器插件WordSaver的演示,可以查英语生词并记录生词及所在句子,导出为anki格式 Bilibili哔哩哔哩视频