聊大数据概括
1.需求分析(业务)
-
做各种业务的最终目标是什么?
-
分割子目标 (特征方面考虑)【建模(提取特征–> 有业务专家和算法专家来做的)】
2.数仓设计
-
应用(国内是应用,国外是数据文件(数据壶))(日志、记录等等)
-
近源层
-
明细层
里面有几种表:
1.维度表(观察一件事情有很多个角度(维度升维)维度多的时候需要降维(维度降维)) 2.事实表(是一条很长的很宽的数据表(宽表/事实表),一张事实表,多张维度表,最终形成**星型表**) 3.桥接表(多对多的关系,最终运算还是会被转化成一对多的表)
需要学行变列,列变行。最后用机器学习的方法,进行处理计算。
-
服务层(事实表)
3.数据导入(或数据的获取)(【海量数据】查找数据缺陷,数据类比可能需要三个月起步的数据,高端的项目需要两三年)(最重要的地方占比80%)
1.flume ,nifi ,logstash
2.Python(爬取站点信息)
3.监控服务器信息(搜取日志信息)
4.用户直接提供 ETL (Hive,HBase ,Saprk streaming)
5.找到底层数据库,天生就可以用(结构化表格)
前4条可能是非结构化数据表,则需要转化成结构化数据表,这个过程叫 ETL,使用ETL技术实现数据的抽取,转化,压缩功能。
这条路一定要创造条件(csv - - > flume (nifi)【flume配置文件必须强背】- - >kafka - - java(Kafka produce\kafka consume\kafkaStreaming ) - -> HBase(Mongodb\cassancra) - - >Hive)
HIve元数据库:为什么把数据库导入Mysql?为什么不读在HDFS中呢?
答:默认Derby,HDFS中读的都是文件(读取时速度比较慢)轻量级内嵌SQL数据库,一条一条读取,是文件,Mysql读的是一张表格,加快读取速度映射成一张表结构化表。(读的数据块)
原始数据只能存在HDFS上,只能把HDFS中的数据挪到数据库中。
4.ML (机器学习)
1.算法模型设计(是一门专业)
2.Python numpy
5.数据呈现(数据呈现也是一个专门的工程师)
1.repor 2.tableau 3.python matplotlib 4.d3 Java(第三框架Java也可以实现)
有机器学习可以预测,没有机器学习只能对已有的数据文件做数据统计,数据评估和数据归纳工作。换言之:机器学习在数据呈现中做数据预测的。
6.测试
问题:数据测试的时候,你怎么知道是多少条数据的呢?会不会出现数据一场呢?数据偏差呢?
少算者,一胜一负,寡算者,只有负,多算者多胜。(这里的“算”,是指用算法计算维度表,多个维度去思考问题,最后形成星型框架)