从数据的使用生命周期来看,可以分为下面几个阶段:数据采集,数加工处理,数据存储,数据分析因为不同的存储,采集、加工、分析的方法和工具不尽相同,所以我们先说说数据存储,今天小编就来说说关于大数据技术与应用专业排名?下面更多详细答案一起来看看吧!
大数据技术与应用专业排名
哪些技术从数据的使用生命周期来看,可以分为下面几个阶段:数据采集,数加工处理,数据存储,数据分析。因为不同的存储,采集、加工、分析的方法和工具不尽相同,所以我们先说说数据存储。
数据存储说到大数据技术,很多人片面的认为是Hadoop生态圈,切确的我们可以分为如下几个方向:
- MPP架构的数据库集群。大规模并行处理MPP框架的引擎有clickhouse,doris,druid,greenplum,TiDB,impala,presto,其中impala和presto是只负责计算,不负责存储的引擎,可想而知,这两个极其依赖CPU和内存的,每种引擎有各自的优势和缺点,后续文章详解。
- MPP架构的搜索引擎。常用的就是ELASTICSEARCH,它适合单个主题数据的搜索,不适合做多主题数据join。
- Hadoop生态圈。Hadoop集群20个节点以上,存储和计算能力才能发挥一定的优势,如果只是三、四个节点,测试开发用还可以,线上就歇一歇吧。
- 云文件存储产品。例如AWS的S3,阿里云的OSS,一般这些云服务商MPP架构计算产品可以读取这类数据,进行分析计算,例如阿里云的MaxCompute可以读取OSS的数据。
- 数据库采集。采集到Hadoop,流行的是Sqoop工具,也可以订阅binlog把数据定时上传到HDFS。如果同步到MPP数据库,市面上还没找到合适的工具,可以自行开发,订阅binlog数据,同步到MPP数据库中。
- 文件日志采集。采用的工具有Flume、logstash。
- 消息数据采集。例如kafka消息中间件,常用的工具有Flume,一般我们用Akka stream alpakka工具包。
结构化的数据录入了hdfs后,一般的使用hivesql、spark、flink,对数据进行清理,补全,加工,然后对数据分层,也可能会使用到类似ozzie这样的调度系统。
如果使用MPP引擎存储,数据加工这一步,一般在录入数据之前做掉,流式数据处理是比较好的选择,spark streaming、kafka streaming、akka stream等。
数据分析- 报表分析,例如基于hive数据仓库T 1离线计算,第二天展示报表场景。
- 挖掘分析,这类分析相对更高级,以及数据加工出来的指标、语义、特征,使用数据挖掘算法,进行分类、聚合或者预测分析,一般是是居于Hadoop生态圈。
- OLAP分析,常见的分两种,其一,MOLAP,适合业务固定的场景,数据定期更新,用户定义出计算逻辑后,每天空闲时进行全量预计算,最后展现计算结果或者根据计算结果进行相应的处理,常见的技术有hive sql、kylin;其二,ROLAP,适合低并发/高并发的Adhoc查询场景,数据准实时更新,可能会有大量的主题数据join,常见的技术有impala kudu、doris。
- 实时分析,基于流式数据的分析spark streaming,flink,akka streaming等等;基于支持准实时数据更新的MPP架构引擎,例如doris、impala kudu。
如果企业数据不足以用大数据,那用什么技术呢。一般提供解决方案的公司,都会给你推荐一套高大上的大数据解决方案,其实自己掂量掂量一下,它们并一不定适合你,杀蚊子用坦克,太浪费了。
任何解决方案实施的第一步都是数据采集和对接,对于小数据量,通常期望数据是实时的,目标地址存储一般是关系型数据库,例如mysql,数据来源无非是如下几种:
- 接口抽取
- 消息订阅
- 数据库抽取
- 文件抽取
抽取到数据后,下一步就是加工,例如转化、填充、过滤等等,最后就是落库了,bangbangbang!这就是ETL。
那么有没有一种技术,能方便地把这三个事都做了,并且还能保证准实时?有,我推荐一种经过大量项目考验后的成功解决方案,基于akka stream的解决方案。详细地设计我们以后再说,有迫切需求的可以私聊我。
,