14

数仓进阶 | 记一次olap分析引擎演进思考过程 -利来国际app

6514


引入 | 图解那些olap分析引擎中的dbms


开篇:想必大家都有一个疑问?何为oltpolap?它又能够给我们带来什么?


资讯:元宇宙(metaverse),数据湖(data lake),信创自主可控,互联互通,数字化建设......

这些概念越来越火热,前些时候大部分工作集中在信创自主可控,现阶段已告一段落。信息化,数字化建设也是不可或缺的一环,遇到挑战,勇于迎对,不断的攻克技术难关是技术人的一种追求!数仓多维数据模型详细设计,欢迎一起加入交流探讨,由于时间等原因,后续会及时在上分享0-1核心技术实战资料,希望能给读者在实际业务场景-olap分析演进过程中有些不一样的idea。


场景:目前数据存储的业务类型-oltpolap......

1、其中一种是企业知识库,权限系统,数据由本系统产生,数据量不是很大,但是数据增删改较多;

2、另一种是统计分析类型,数据不由本系统产生,来自医院各生产系统,数据集规模极其庞大,并且数据查询较多。


思考:数据每天在源源不断产生,音视频,影像图片,文本......

1、海量数据存储出现瓶颈,单台机器无法负载大规模数据集;

2、单台机器io读写请求,成为海量数据存储时高并发-大规模请求的瓶颈;

3、随着时间的推移,数据规模越来越庞大-加并发mpp架构,数据存储横向水平扩展,存储服务增加/删除,但若所有节点参与运算,水平扩展到一定程度硬件必然很难hold,很容易出现短板,并且容量也有明显天花板,可结合批处理与mpp架构;

4、大数据给传统的关系型数据库-dbms带来巨大挑战,在海量数据场景下,数据实时分析-时延低、并发数高、支持sql或类sql,变得尤为重要!


现状:,,集群架构

目前,oracle中多个业务库,数据集极其庞大,mysql中多个业务库,单表数据量超过千万级别......


随着数据一直在不断增长,往水平方方向扩展节点,虽然能在一定程度上缓解大数据带来的压力,但长久来看,数据库查询性能无疑受到了巨大的冲击!


传统关系型数据库 nosql型数据库,暂时存储的都是结构化类型数据(非结构化数据会经过一系列技术转化为结构化数据),当然,未来肯定还会有大量的非结构化数据存储。


基于es倒排索引 宽表模型,数据检索性能大幅度提升,上一组案例效果。


随着查询越来越复杂,数据规模持续增长,我们的数据分析目前也越来越复杂,数据规模也需考虑集中存储。


猜想:是否能够在数据库中,通过一系列高级分析算法,对数据进行分析与处理?


预期:成熟的海量数据利来手机国际的解决方案

1、生态圈丰富,成功案例较多,开源;

2、统一数据中心,支持未来数据增长,动态扩展;

3、支持目前业务体系,标准化接口,助力科学计算,支持python,etl,r,bi......


回到db-engines ranking,hive、hbase、vertica、impala、greenplum、 clickhouse.

其中,

hive:使用一种类似sql查询语言,作用在分布式存储系统的文件之上,通常用于进行离线数据处理操作-mapreduce,支持多种不同的执行引擎-hive on mapreduce、hive on tez、hive on spark.


hbase:分布式、面向列开源数据库,不同于一般的关系型数据库,hbase基于列的而不是基于行的模式。


java接入:


impala:开源,基于hdfs/hbase的mpp sql引擎,拥有和hadoop一样的可扩展性、它提供了类sql-类hsql语法,在多用户场景下亦能拥有较高的响应速度和吞吐量,兼顾数据仓库,具有实时,批处理,多并发等优点。


java接入:


在介绍(简称v)、 (简称c)、(简称g)这三款mpp之前,我们不妨以北京地铁线路图为例:


北京地铁一天的吞吐量多大,周末的吞吐量又是多少?想象-地铁就好比mpp-海量数据的并行处理。


达到预期可选择的方案:


对现状的构思:

海量的数据并行处理,标准的sql,成熟的案例v-c-g......


olap分析引擎演进:



基于v、 c、g构建离线/实时数仓生态-olap体系,可综合其场景选取,


其中,


vertica:无master的mpp架构

基于列存储的mpp架构的数据库管理系统(dbms),可以支持存放多至pb(petabyte)级别的结构化数据。

1、无共享的mpp体系架构-集群中的所有节点对等,没有主节点或其他共享资源,通过增加节点,即可线性地扩展集群的计算能力和数据处理容量;

2、列式存储和计算-通过列式计算和强大的主动数据压缩,大幅降低成本高昂的磁盘,执行查询的速度大幅度提升;

3、实时分析-内存与磁盘混合存储架构,原生支持消息系统的连接,数据实时装载,秒级分析;

4、数据库内分析库-开箱即用的数据库内时序插值和关联、事件窗口和会话处理等众多分析功能包;

5、标准sql支持-支持关系数据库事务处理和acid规范,提供odbc、jdbc等接口规范驱动,兼容传统关系型数据库系统的开发、使用以及管理习惯,与现有的etl和报表工具相集成;

6、可扩展的数据库内分析框架-采用面向用户定义的过程式分析的强大开发框架,数据库内部处理->开放式访问。


clickhouse:面向列的数据库管理系统 (dbms)

不同列的值分别存储,同一列的数据存储在一起。而面向行的dbms-

mysql、postgres、sql server......

简言之,与一行相关的所有值在物理上彼此相邻存储。当然,不同的数据存储顺序更适合不同的场景。系统负载越高,定制系统设置以匹配使用场景的要求就越重要,并且这种定制变得越细粒度。

近期,clickhouse的star数量也不断持续增长,热度也一直不减-后起新秀。


greenplum:有master的mpp架构


greenplum本身自带ha,虽然不能代替目前oltp 的数据存储,但是它对olap却是方向,olap可以先做成统─数据存储,使得业务系统可以稳步的切入使用greenplum,etl也可使用greenplum,实现统一的数据存储方案。

1、大规模并行处理架构-提供了横向扩展,无共享体系结构的数据和查询并行化设计;

2、pb规模数据加载-高性能加载使用mpp技术,加载速度随着增加节点而不断增加;

3、创新的查询优化器-针对大数据工作负载而设计的基于成本的查询优化器。可将交互式和批处理模式应用到pb级别的大型数据集上,但不会降低查询性能和吞址量;

4、多态数据存储和执行-表或者分区存储,执行和压缩设置可以按照数据访问方式进行配置。用户为每个表或者分区选择面向行或者列的存储和处理;

5、高级的机器学习-可扩展的数据库内分析库,通过用户定义的函数扩展了sql功能;

6、外部数据访问-通过外部表语法访问和查询所有数据,支持传统的内部部署和下一代公共数据湖。

接下来,详看其执行计划分析。


延伸思考:oltp,olap,htap可支撑对应业务体系规模?tb || pb?olap,htap在数据分析领域,相比oltp能够给我们带来?

在高并发海量数据场景下,数据实时分析、批处理、预计算都有着极其重要的意义。


干货技能no.1

场景:当在百度文库或者csdn博客论坛等网址,你需要复制一些想要的信息,比如文本信息,在chrome谷歌浏览器中,有的网址一般需要登陆或注册才能进行复制,那如何绕过注册会员或者登录流程?

方案:首先,可以通过按f12键打开调试,接着再按f1键,然后找到disable javascript选项框,需要复制的时候则勾上,当复制完成后去掉勾即可。



干货技能no.2

场景:已连接过的wifi,没有记录,忘记密码怎么办?

方案:首先,可以通过摁住windows键加r键,输入cmd,enter回车弹出cmd界面,接着在cmd界面输入如下命令,找到"安全设置"-"关键内容"即可查看wifi密码。




「 往期文章 」








最后修改时间:2021-12-21 13:36:10
「喜欢文章,快来给作者赞赏墨值吧」
【利来手机国际的版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:[email protected]进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论