数据仓库工具箱
① 怎么理解数据仓库中的面向主题
1、面复向主题,是让你面向主题去制分析问题,架构模型,而不是非要物理上分开,就像面向对象编程一样
2、“很多资料中都写数据仓库的数据模型是使用“第三范式”,数据集市才使用多维的星型模型”这个是不对的,因为在Inmon 和 Kimball 的书中都没有表示这种说法
Inmon 表是建数仓需要有个企业级的一致数据模型,并没有表示非要第三范式,这个第三范式是 Kimball 在自己的书里说 Inmon 的方式用第三范式不好啦啥的,具体自己看书《数据仓库工具箱-维度建模权威指南》第一种1.5节
数据集市使用维度建模,这个说法Kimball 也没有说过,而是 Inmon 在自己的书里说维度建模只适合数据集市,具体看《数据仓库》第5张5.19节(应该是这一节)
PS:其实感觉他俩的观点差不多,只是根据他们必须得给自己的观点加油呐喊而已,两个人互撕很多年了
② 大数据都需要学什么
这要看你学到什么程度了,初级的大数据工程师,大数据开发工程师,大数据维护工程师啊,再往后发展大数据研发工程师,大数据架构师,数据分析师,大数据高级工程师,大数据分析师专家,大数据挖掘师,大数据算法师等;不管的研发,还是数据分析,还是运维,都要看以后的工作需要和发展,还有自我提升等,不同的方向分工又不太相同,大数据作为一门基础科学,无论在数据开发及分析、物联网和人工智能算法训练领域,都有着核心技术和职位诉求。具体学习大数据一般分为以下几个阶段:
第一阶段:大数据基础
Java基础——Java语法基础。掌握JAVA的开发环境搭建以及基础知识等.能够熟练使用逻辑语法进行代码编写
数据结构——数组、链表、栈、队列、排序、二分查找、散列表、哈希表、二叉树,红黑树、递归树,堆和栈。继续提升大家的计算机素养,掌握算法初步。
MySQL基础——mysql安装、基本SQL语句、SQL优化。掌握数据库的基本应用。
Javaweb——tomacat、servlet、JSP 、MVC。掌握web开发的相关内容,理解数据来源
高级java——面向对象、网络编程、反射、多线程。理解分布式程序运行原理,为以后阅读大数据框架打下基础。
linux基础——虚拟机安装、常用linux命令、shell脚本。学会使用linux操作系统,为部署大数据集群做准备。
第二阶段:大数据框架
Hadoop——分布式存储、分布式计算、公共通用接口。掌握部署大数据集群,熟练编写map-rece程序。
Zookeeper——Zookeeper协调机制、选举机制。搭建高可用集群。
Hive——数据仓库搭建、数据导入和分析。初步掌握数据仓库的概念,为后续企业级数仓做准备。
Hbase——Hbase集群搭建、大数据数据库工作原理、列式存储、高吞吐量应用开发。掌握大数据数据库Hbase的应用,科学的行键设计,热点数据处理。
Kafka——理解消息队列、Kafka集群部署、高并发高可用数据采集框架搭建。掌握高可以高并发数据队列系统设计、能处理峰值问题。
Scala——Scala语法基础、常用算子、异步通信。掌握优秀的数据处理语言Scala
Spark——Spark集群搭建、离线数据处理、实时数据处理、机器学习、图计算。掌握一栈式解决方案Spark,它是大数据的核心模块。
常用辅助框架——Sqoop、Flume、Presto、impala、Phoenix、oozie、ElasticSearch、kylin、MongoDB、Redi、Druid。掌握常用工具和与大数据紧密相关的框架,提高工作效率,拓展框架功能。
第三阶段:机器学习
python基础——python基础语法、面向对象、Numpy。掌握python基础语法和机器学习相关的基础框架。
数学基础——线性代数、微积分、概率、凸优化。本部分内容理解即可,对优化模型很重要。
常用算法——回归、KNN、决策树、聚类、集成学习、SVM、多分类、贝叶斯、EM、隐马模型、深度学习。掌握常用计算器学习算法的原理,能够根据数据特性选择合适的模型,训练泛化能力强的模型。
第四阶段:项目实操
云和数据有大数据专业,可以详细了解一下,看看这个专业的职业发展。