资料科学:从大数据中汲取知识,是用有效率以及智能的方式处理巨量资料的科学
为什么需要资料科学?
1.企业意识到资料的重要性
2.资料收集越来越多
3.数量越来越大
和过去相比分析的差异:效率高,更加智能
大数据的定义:
结构化数据:关系型数据库表示和存储 机器学习
半结构化数据:常见的有XML和JSON
非结构化数据:各种文档、图片、视频/音频等都属于非结构化数据 深度学习
为什么要搜集资料?
企业:了解使用者需要——>拟定行销者策略——>协助决策——>增加利润/决策
政府:了解民众行为——>检视施政效果——>拟定政策
数据如何变成知识?1.统计分析 2.资料挖掘 3.商业智慧 4.机器学习/深度学习
数据量的处理方式
资料格式:Excel Csv Parquet Avro
资料库:单机资料库(MySql) 分散式资料库(随着note的增加迅速扩张资料库存储的数据量) HDFS(Hadoop的存储系统,单纯的资料空间 好处:将大资料分散在不同的小区块里,平行的将资料塞在不同的节点里面 增加资料的读取及运算速度 将资料自动备份的效果) S3(亚马逊的 好处:不用管理机器的节点)
储存设备:HDD(硬盘存储大,读取速度慢) SSD(快速但价格高昂) Memory(内存)
不同时间刻度资料的处理方式:
Batch:Hadoop Spark SQL Database
Streaming:Storm Kafka Spark Streaming
多样资料的处理方式:
关联资料库(结构化数据):MySQL PostgreSQL Teradata
NOSQL(半结构化数据): Hive(Hadoop架构下的SQL Database,将SQL语言转化成Hadoop的Map Reduce来对资料库作查询) Hbase(Hadoop里的key value资料库,通过这种方式加快资料的提取速度) MongoDB Couchbase Neo4j
Hadoop的两个核心技术:
Map Reduce(丛集资源管理及资料处理) 能够将我们下发的指令map分散到不同的节点之中,以及将他们的资讯reduce回来交给使用者
HDFS(冗余可靠的档案系统) 帮使用者上传的档案分散在不同的节点里面存储,并且有自动备份的功能,当有其它的节点挂掉的话,它也会自动的拿其它资料进行计算
metadata存储了各个节点所储存的资料以及使用者上传档案被分成哪几个切片
MapReduce的核心精神就是将使用者的指令分散在不同的node上面。
Hadoop优缺点
优点:系统稳定,扩充性好,错误容忍度高,造价便宜
缺点:速度慢,生态系统复杂,Map Reduce不好写
Spark是一个用于大规模资料处理,具备快速和通用的计算引擎
Map Reduce每次迭代都是在硬盘上进行迭代,而spark是在内存中进行迭代的
RDD:弹性分散式资料集,是Spark最基础的抽象结构
RDD可以容忍错误并且平行运行
RDD有两种类型:
平行集合:这是一种Scala集合,可以平行运行功能
Hadoop资料集:平行运行功能在Hadoop的分散资料上,或是Hadoop支援的任何储存系统
RDD有两种操作行为:
转换
行动
转换属于懒惰式操作,不会即时运行
转换过后的RDD只有在行动阶段才会进行计算
RDD可以持久化储存在内存或硬盘中
根据任务切分为窄依赖和宽依赖
窄依赖:数据停留在同一种上,不需要做任何的交换,可以原地的执行一些行为,这就称为窄依赖
宽依赖:需要资料交换,资料需要放到一个新的地方