博学谷IT技术支持
一.传统IT开发无法解决的瓶颈
1.传统业务员处理和大数据分析处理
I.场景一:在线购物
服务器和客户极致流畅的交互
低延迟的数据处理
处理过程的安全性,如支付系统,数据的加密,密码的管理
状态的最终一致性,如客户端看到的页面和服务器的数据要一致
总结:传统的在线购物是面向客户的业务开发,客户说不行就不行
II.场景二:支付宝年度支付账单
多维度组织细分,如线上线下消费,手机充值等多个角度
数据的对比呈现,如展示个人的消费账单,让用户对自己去年和今天做一个对比,还可以个人和所在城市的用户群体作对比,还可以和全国用户做对比,还可以和自己的消费领域作对比
视觉的效果诱人,不像传统的一堆表格,需要漂亮的界面进行可视化的展现(也就是看板)
总结:年度账单的背后就是大数据的分析技术(是大数据技术的一种,基于历史数据的离线分析,另一种是能够做到实时的流式分析),支付宝会把客户过去一年的财务情况做一个呈现,呈现的过程不是简单的sum求和,count统计,他不只是计算个人的,还会采集平台下所有的用户数据进行横向的对比,然后根据个人的特征挖掘出个人的消费习惯和其他一些和个人很贴合的数据
III.传统业务和大数据分析对比:
i.技术角度
以银行为例,传统开发业务没做出来客户不满意,但是他可以不给你分析你的数据,之所以做大数据分析是为了提高客户的粘度,让客户更满意;也就是传统开发是雪中送炭,大数据分析是锦上添花
ii.数据系统
iii.思考
业务数据是存储在OLTP系统中的,不能直接展开数据分析;
如果大数据分析直接拿mysql来分析,会有风险,如果直接把业务数据在业务平台上做分析,会破坏业务数据,再有,业务服务器本身就有压力,如果在业务服务器上做数据分析,还会增加服务器的压力;
所以一般的做法是,把业务的数据提取(采集)出来,放在数据仓库中(数仓)
2.大数据时代对数据存储的挑战
I.背景
II.大数据存储
除了常规的大数据框架,还会用到nosql系统;
传统的业务开发,最经典的是redis,大数据开发常用的是MangoDB,HBase,Neo4j
III.nosql和RDBMS区别
二.互联网大厂大数据开发标配-实时计算
1.大数据计算引擎
批量计算:离线分析,基于历史大量数据的分析(Hive,Spark,Hdaoop里的MapReduce),代表性的保险系统,银行系统
流式计算:实时计算,分析正在发生的一条一条的数据(Spark,Storm,Flink),代表性的有抖音等
图计算:图分析,研究客户关系等(网状结构),需要结合机器算法等
I.第一代计算引擎
i.分布式计算
把一个大的数据做一个拆分,拆分成不同的任务,让不同的主机来使用各自的线程来执行任务,然后将计算的结果做一个汇总,其中汇总的结果可以是多个;
其中,拆分的过程就是map 做的事儿,合数据的过程是reduce做的事儿
I.第二代计算引擎
i.核心
tez在map/reduce的基础上做了优化,但后来被代替了,它的地位相当于,win9,很快被win10代替了;
它的核心是用到了有向无环图(DAG)的这种数据结构
III.第三代计算引擎
i.spark简单了解
spark可以支持用python,java,sql等自己精通的方式来操作
IV.第四代计算引擎
i.核心
基于内存对数据做处理,之前的计算引擎要不做离线分析,要不做实时计算,而Flink都支持
2.大数据的流式计算
I.概念
II.流式计算发展
III.应用场景
IV.流式计算
i.spark streaming
ii.storm
①举例:美团点评
②storm小结
iii.flink
①举例
比如实时统计,可以有以下用途
V.国内被apache收入名下的知名框架
Kylin麒麟,阿里研发,被apache收购
Doris,百度研发,被apache收购
三.mysql
1.窗口函数
大数据开发中能用到的mysql-窗口函数
I.序号函数
i.需求一
①.方式1
②.方式2
③.方式3
ii.需求二
II.开窗聚合函数
i.需求一
按照部门进行分组,在按照入职日期进行排序
①方式一
②方式二
四.Doris
1.理论
I.概述
II.发展历程
III.特性
i.行存储和列存储
大数据的主流引擎都是列式存储
IV.开源的OLAP引擎
V.Doris使用场景
2.环境准备
mac环境下安装三台虚拟机搭建Doris集群;请跳转下面链接参考
https://juejin.cn/editor/drafts/7133100841401057294