本文目录一览:
- 1、大数据工程师需要学哪些技术?
- 2、大数据核心技术有哪些
- 3、App运营如何构建用户兴趣模型
- 4、索引到底是什么?
- 5、数仓建模分层理论
- 6、软件开发有什么要求?
大数据工程师需要学哪些技术?
一、大数据采集
大数据采集,即对各种来源的结构化和非结构化海量数据,所进行的采集。
数据库采集:流行的有Sqoop和ETL,传统的关系型数据库MySQL和Oracle 也依然充当着许多企业的数据存储方式。当然了,目前对于开源的Kettle和Talend本身,也集成了大数据集成内容,可实现hdfs,hbase和主流Nosq数据库之间的数据同步和集成。
网络数据采集:一种借助网络爬虫或网站公开API,从网页获取非结构化或半结构化数据,并将其统一结构化为本地数据的数据采集方式。
文件采集:包括实时文件采集和处理技术flume、基于ELK的日志采集和增量采集等等。
二、大数据预处理
大数据预处理,指的是在进行数据分析之前,先对采集到的原始数据所进行的诸如“清洗、填补、平滑、合并、规格化、一致性检验”等一系列操作,旨在提高数据质量,为后期分析工作奠定基础。数据预处理主要包括四个部分:数据清理、数据集成、数据转换、数据规约。
三、大数据储存
大数据每年都在激增庞大的信息量,加上已有的历史数据信息,对整个业界的数据存储、处理带来了很大的机遇与挑战.为了满足快速增长的存储需求,云存储需要具备高扩展性、高可靠性、高可用性、低成本、自动容错和去中心化等特点.常见的云存储形式可以分为分布式文件系统和分布式数据库。其中,分布式文件系统采用大规模的分布式存储节点来满足存储大量文件的需求,而分布式的NoSQL数据库则为大规模非结构化数据的处理和分析提供支持。
四、大数据清洗
MapReduce作为Hadoop的查询引擎,用于大规模数据集的并行计算,”Map(映射)”和”Reduce(归约)”,是它的主要思想。它极大的方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统中。随着业务数据量的增多,需要进行训练和清洗的数据会变得越来越复杂,这个时候就需要任务调度系统,比如oozie或者azkaban,对关键任务进行调度和监控。
关于大数据工程师需要学哪些技术,青藤小编就和您分享到这里了。如果您对大数据工程有浓厚的兴趣,希望这篇文章可以为您提供帮助。如果您还想了解更多关于数据分析师、大数据工程师的技巧及素材等内容,可以点击本站的其他文章进行学习。
大数据核心技术有哪些
大数据技术的体系庞大且复杂,基础的技术包含数据的采集、数据预处理、分布式存储、数据库、数据仓库、机器学习、并行计算、可视化等。
1、数据采集与预处理:FlumeNG实时日志收集系统,支持在日志系统中定制各类数据发送方,用于收集数据;Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,提供数据同步服务。
2、数据存储:Hadoop作为一个开源的框架,专为离线和大规模数据分析而设计,HDFS作为其核心的存储引擎,已被广泛用于数据存储。HBase,是一个分布式的、面向列的开源数据库,可以认为是hdfs的封装,本质是数据存储、NoSQL数据库。
3、数据清洗:MapReduce作为Hadoop的查询引擎,用于大规模数据集的并行计算。
4、数据查询分析:Hive的核心工作就是把SQL语句翻译成MR程序,可以将结构化的数据映射为一张数据库表,并提供HQL(HiveSQL)查询功能。Spark启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。
5、数据可视化:对接一些BI平台,将分析得到的数据进行可视化,用于指导决策服务。
App运营如何构建用户兴趣模型
APP构建用户兴趣模型,主要分为两步:一是要打通多端多源数据,实现全渠道数据整合,构建完整的用户视图,二是基于数据,进行全面的用户分析,构建兴趣模型。以上两步可以通过个推·用户运营平台来完成。
1.打通多端多源数据,让建模更贴合实际
在建立用户兴趣模型前需要获取足够的真实用户反馈数据。一定的数据量可以保障用户建模更贴合实际。个推·用户运营支持APP、Web、H5、小程序等多端数据接入,以及MySQL、Hive等多源数据整合,可以帮助APP实现跨平台用户数据的有效打通和统一治理,为构建用户兴趣模型提供数据支撑。
2.全面的用户数据分析,构建用户画像
在整理好用户基础数据后我们需要对数据进行分析和归类,创建出基本的用户画像。个推·用户运营支持APP将自有数据和个推标签数据结合,通过自定义规则、采用行业标签模板等方式将多端、多源用户数据标签化,构建全面立体的用户画像。同时,
APP可以自主运用事件分析、漏斗分析等十余种分析模型,深度洞察用户兴趣点,辅助兴趣模型构建和应用。
个推·用户运营SDK正限时免费中,APP开发者与运营者可注册/登录个推开发者中心免费注册体验。
索引到底是什么?
他加快主要是靠另外建了个树,专门用来定位。
关键字其实就是一种唯一索引。
参考一下
innodb 中文参考手册 --- 犬犬(心帆)翻译 11 表和索引结构
mysql 在数据库目录下的 .frm 文件中存储它的数据字典信息。但是每个 innodb 类型表也同样在 innodb 表空间内的内部的数据字典中存在它自己的进入点。当 mysql 移除(drop) 一个表或一个数据库时,它将同时删除 .frm 文件,以及在 innodb 的数据字典中相对应的进入点。这就是为什么不能通过简单的删除 .frm 文件为移除数据库中的 innodb 类型表的原因,以及为什么在 mysql 版本 = 3.23.43 的版本中,drop database 不能用于 innodb 表的原因。
每一个 innodb 表都有一个被称为聚簇索引的特殊索引用于保存记录行信息。如果一个表定义一个 primary key ,那么主键的索引就是聚簇索引。
如果表没有定义一个 primary key ,mysql 将选出第一个 not null 字段的 unique 键做为主键,innodb 也将用这个键的索引做为聚簇索引。如果表中没有这样的键,innodb 将在内部产生一个聚簇索引,它是由按 innodb 分配给它们的 row id 顺序排序的记录行组成。这个 row id 是一个单调地增加并插入新行的 6-byte 字段。因而由 row id 排序的记录顺序也就是插入时的物理顺序。
通过聚簇索引访问一个记录行是非常快的,因为记录行数据与引导我们查找到它的索引在同一个页面上。 在大多数的数据库系统中记录行数据与索引记录通常并不是放在同一个页面上的。如果一个表太大了,那么聚簇索引体系通常比传统的方式更能减少磁盘 i/o 。
在非-聚簇索引(non-clustered indexes)中的记录 (我们通常称它为辅助索引secondary indexes),在 innodb 中会为这行包含主键值。innodb 将使用这个主键值来在聚簇索引中查找这行。注意如果主键太长,那么辅助索引将会占用更多的空间。
innodb 在比较不同长度的 char 和 varchar 时,较短字串的多余长度将被空格(spaces)填充。
11.1 索引的物理结构
all indexes in innodb 中所有的索引是索引记录存放在树的叶页面(leaf pages)上的 b-trees。一个索引页面的大小默认为 16 kb。当新的记录被插入时,innodb 将试图为将来的插入与更新索引记录保留页面的 1 / 16 空余。
如果索引记录以一个连续的 (升序或降序) 被插入,那么索引页面的将会被使用约 15/16 。如果以一个随机的顺序插入,那么页面大约使用了 1/2 - 15/16 。如果一个索引页面被撤销(drop)地低于 1/2,那么 innodb 将缩短索引树并释放页面空间。
11.2 插入缓冲
主键是一个唯一标识符,新的记录以主键的升序被插入,这在数据库系统中是一个普遍的情形。因而在聚簇索引内插入的值不需要在硬盘上随意读取。
另一方面,辅助索引通常是非唯一的(non-unique),插入在辅助索引中是相当随意的顺序。如果在 innodb 中不使用一个特殊的机制这将会引起大量随机的磁盘 i/o。
如果一个索引记录被插入到一个非唯一的辅助索引中去,innodb 将检查辅助索引页面是否已在缓冲池(buffer pool)中。在这种情形下,innodb 直接地将它插入到索引页面中去。但是,如果在缓冲池中没有发现索引页面,inndb 将索引记录插入到一个特殊的插入缓冲结构中去。插入缓冲被控制地如些小以至于可以完全放在缓冲池中, 因而插入速度很快。
插入缓冲会定时地归并到数据库中的辅助索引树中去。为了减少磁盘 i/o,通常将同一个页面上的几个插入同时归并到索引树上。插入缓冲可以提高向一个表中插入速度 15倍。
11.3 适应性的散列索引 (adaptive hash indexes)
如果一个数据库几乎占满了所有主同存,那么在其上运行查询的一个快捷之路就是使用散列索引(hash indexes)。innodb 有一个用于监视在表定义的索引上的索引搜索动作的自动调整结构,如果 innodb 发现一个散列索引对查询有益,那么它将自动地建造这个散列索引。
但是要注意地就是散列索引通常是基于表中已存在的 b-tree 创建的。innodb 可能通过 b-tree 中定义的任何长度的键的前缀来构建散列索引,这依赖于 innodb 观察 b-tree 上索引的模式。一个散列索引可以是部分的:它在缓冲池中并不需要有整个 b-tree 索引的高速缓冲。innodb 按照需要来为经常访问的索引页面构建散列索引。
在理论上,通过这个适应性的散列索引机制,innpdb 使它自己更适合于大的主存(ample main memory),更接近于主存储器数据库系统体系(the architecture of main memory databases)。
11.4 记录的物理结构 innodb 中每个索引记录都包含一个 6 字节的头。这个头部用于联连相连贯的记录,也同样用于行锁定。 聚簇索引中的记录包含了所有用户定义的字段。另外,有一个 6-byte 字段用于记录事务 id(transaction id)和一个 7-byte 字段用于行指针(roll pointer)。 在一个表中,如果用户没有定义一个主键,那么每个聚簇索引记录包含一个 6-byte 的行 id 字段(row id field)。 每个辅助索引记录包含为聚簇索引键定义的所有字段。 一个索引包含着一个指向对应字段记录的指针。如果一个记录的所有字段总长度 128 bytes,那么这个指针为 1 byte,否则为 2 bytes。 innodb 在内部也是以一个固定长度来存储定长的字符型字段,比如 char(10)。对于 varchar 型字段,innodb 将截去结尾的空间。注意,mysql 可能内部地将 char 转换为 varchar。查看 mysql 用户手册有关“列规约的默认地改变”( silent column specification changes)。 如果存储一个变长的字段,一个 sql null 为一个 0 bytes 被存储,但是如果是一个定长字段将以固定的长度被存储。以相应的 nulls 存储定长的空间的目的地就在于在将 null 字段值更新为 非 null 的值时不至产生索引页面的磁盘碎片。
文章整理:西部数码--专业提供域名注册、虚拟主机服务
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
数仓建模分层理论
这篇文章较为完整、清晰的讲述了数仓建模分层理论,要点如下:
1、分层的意义:清晰结构体系、数据血缘跟踪、减少重复开发、复杂问题简单化及统一数据口径
2、ODS:用作缓冲,可以存一周左右,跟DWD大多重复,留存的目的还在于保持跟源端一致,方便追溯
3、DWD:针对ODS做数据的清洗和整合,在DWD层会根据维度模型,设计事实表和维度表,DWD层是一个非常规范的、高质量的、可信的数据明细层
4、DWS:基于DWD层形成某一主题的轻度汇总表或分析宽表,DWS形成大量维度退化的事实表以提高易用性,DWS层应覆盖80%的应用场景
5、TDM:标签层,通过统一的ID-Mapping 把各个业务板块,各个业务过程中同一对象的数据打通,形成对象的全域数据标签体系,方便深度分析、挖掘、应用,大家注意,这个ID不仅仅指客户或用户ID,也包括其它的主数据ID,其是全流程分析的基础
6、ADS:数据应用层ApplicationDataService面向业务定制的应用数据,主要提供给数据产品和数据分析使用的数据,一般会放在ES,MYSQL,Redis等前端系统供线上系统使用,也可以放在Hive中供数据分析和数据挖掘使用
7、DM:主要是提供数据产品和数据分析的数据,主要解决部门用户报表和分析需求而建立数据库,数据集市就代表数据仓库的主题域。DM 是面向单个主题的,所以它不会从全局考虑进行建设。
强烈推荐阅读!
正文开始
简单点儿,直接ODS+DM就可以了,将所有数据同步过来,然后直接开发些应用层的报表,这是最简单的了;当DM层的内容多了以后,想要重用,就会再拆分一个公共层出来,变成3层架构,这个过程有点类似代码重构,就是在实践中不断的进行抽象、总结。
数仓的建模或者分层,其实都是为了更好的去组织、管理、维护数据,所以当你站在更高的维度去看的话,所有的划分都是为了更好的管理。小到JVM 内存区域的划分,JVM 中堆空间的划分(年轻代、老年代、方法区等),大到国家的省市区的划分,无一例外的都是为了更好的组织管理 。
所以数仓分层是数据仓库设计中十分重要的一个环节, 优秀的分层设计能够让整个数据体系更容易理解和使用 。
这一节,我们主要是从整体上出发进行分析和介绍,就和上一节数仓建模方法论一样,进度对比分析,更多细节的东西我们后面会单独拆分出来,用案例进行演示,例如维度建模,维度表的设计,事实表的设计、以及如何设计标签、如何管理标签等等。
每一个数据分层都有它的作用域,这样在使用表的时候能更方便的定位和理解。
由于最终给业务呈现的是一个能直接使用的业务表,但是表的数据来源有很多,如果有一张来源表出问题了,我们希望能够 快速准确的定位到问题,并清楚它的影响范围,从而及时给到业务方反馈,从而将损失降到最低 。
将一个复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤,比较简单和容易理解。而且便于维护数据的准确性,当数据出现问题之后,可以不用修复所有的数据,只需要从有问题的步骤开始修复。
过数据分层提供统一的数据出口,统一对外输出的数据口径,这往往就是我们说的数据应用层。
前面我们说到分层其实是为了更好更快更准的组织管理,但是这个是从宏观上来说的,接下来我们从微观上也来看一下分层。
越靠上的层次,对应用越友好,比如ADS层,基本是完全为应用设计,从数据聚合程度来讲,越上层的聚合程度越高,当然聚合程度越高可理解程度就越低。
数仓层内部的划分不是为了分层而分层, 分层是为了解决 ETL 任务及工作流的组织、数据的流向、读写权限的控制、不同需求的满足等各类问题 ,当然我们常说的分层也是面向行业而言的,也是我们常用分层方法,但是你需要注意的是分层仅仅是手段而已。
ODS 全称是 OperationalDataStore, 操作数据层存储的是面向业务系统的数据 ,也是最接近数据源中数据的一层,数据源中的数据,经过抽取、洗净、传输,也就说传说中的 ETL 之后,装入本层。
本层的数据,总体上大多是 按照源头业务系统的分类方式而分类的 ,前面我们说到为什么在数仓主要用维度建模的情况下,我们依然要学习范式建模呢,因为我们的数据源是范式建模的,所以学习范式建模可以帮助我们更好的理解业务系统,理解业务数据,所以你可以认为我们的ODS 层其实就是用的实范式建模。
这里的数据处理,并不涉及业务逻辑,仅仅是针对数据完整性以及重复值和空值的处理,其实就是做的是数据规约,数据清洗,但是为了考虑后续可能追溯数据源问题,因此 对这一层不建议做过多的数据清洗工作 ,原封不动接入源数据即可,至于数据的去噪,去重,异常值处理等过程可以放在后面的DW层
表名的设计 ODS_业务系统_表名_标记 ,这样的设计可以保持与业务表名一致,又可以有清晰的层次,还可以区分来源。标记一般指的是其他数仓特有的属性,例如表是天级的还是小时的,是全量的还是增量的。
ods 的设计可以保证所有的数据按照统一的规范进行存储。
DW是数据仓库的核心,从ODS层中获得的数据按照主题建立各种数据模型。DW又细分数据明细层DWD 和轻度汇总层DWS
这一层和维度建模会有比较深的联系,业务数据是按照 业务流程方便操作的角度 来组织数据的,而统一数仓层是 按照业务易理解的角度或者是业务分析的角度 进行数据组织的,定义了一致的指标、维度,各业务板块、数据域都是按照统一的规范来建设,从而形成统一规范的 标准业务数据体系 ,它们通常都是基于Kimball的维度建模理论来构建的, 并通过一致性维度和数据总线来保证各个子主题的维度一致性 。
公共层的维度表中相同维度属性在不同物理表中的字段名称、数据类型、数据内容必须保持一致,因为这样可以降低我们在使用过程中犯错误的概率,例如使用了不正确的字段,或者因为数据类型的原因导致了一些奇怪的错误
将维度所描述业务相关性强的字段在一个物理维表实现。相关性强是指经常需要一起查询或进行报表展现、两个维度属性间是否存在天然的关系等。例如,商品基本属性和所属品牌。
公告明细数据层,可以说是我们数仓建设的核心了。
DWD层要做的就是将 数据清理、整合、规范化、脏数据、垃圾数据、规范不一致的、状态定义不一致的、命名不规范的数据都会被处理 。然后加工成面向数仓的基础明细表,这个时候可以加工一些面向分析的大宽表。
DWD层应该是覆盖所有系统的、完整的、干净的、具有一致性的数据层。在DWD层会根据维度模型,设计事实表和维度表,也就是说DWD层是一个非常规范的、高质量的、可信的数据明细层。
DWS层为 公共汇总层 ,这一层会进行轻度汇总,粒度比明细数据稍粗, 基于DWD层上的基础数据,整合汇总成分析某一个主题域的服务数据 ,一般是也是面向分析宽表或者是面向某个注意的汇总表。DWS层应覆盖80%的应用场景,这样我们才能快速响应数据需求,否则的话,如果很多需求都要从ods开始做的话,那说明我们的数仓建设是不完善的。
例如按照业务划分,例如流量,订单,用户等,生成字段比较多的宽表,用于后续的业务查询,OLAP分析,数据分析等。
一般采用维度模型方法作为理论基础,更多的采用一些维度退化手法,将维度退化至事实表中,减少维度表与事实表的关联,提高明细数据表的易用性;同时在汇总数据层要加强指标的维度退化,采用更多的宽表化手段构建公共指标数据层,提升公共指标的复用性,减少重复加工 。
维表层,所以其实维度层就是大量维表构成的,为了统一管理这些维度表,所以我们就建设维度层,维度表本身也有很多类型,例如稳定维度维表,渐变维度维表。
维度指的是观察事物的角度,提供某一业务过程事件涉及用什么过滤和分类的描述属性 ,"谁、什么时候、什么地点、为什么、如何"干了什么,维度表示维度建模的基础和灵魂。
所以可以看出,维度表包含了业务过程记录的业务过程度量的上下文和环境。维度表都包含单一的主键列, 维度表设计的核心是确定维度字段,维度字段是查询约束条件(where)、分组条件(group)、排序(order),与报表标签的基本来源 。
维度表一般为 单一主键 ,在ER模型中,实体为客观存在的事务,会带有自己的描述性属性,属性一般为文本性、描述性的,这些描述被称为维度。维度建模的核心是 数据可以抽象为事实和维度 ,维度即观察事物的角度,事实某一粒度下的度量词, 维度一定是针对实体而言的 。
每个维度表都 包含单一的主键列 。维度表的主键可以作为与之关联的任何事实表的外键,当然,维度表行的描述环境应与事实表行完全对应。维度表通常比较宽,是扁平型非规范表,包含大量的低粒度的文本属性。例如customer(客户表)、goods(商品表)、d_time(时间表)这些都属于维度表,这些表都有一个唯一的主键,然后在表中存放了详细的数据信息。
维度表通常比较宽 ,包含多个属性、是扁平的规范表 ,实际应用中包含几十个或者上百个属性的维度并不少见,所以 维度表应该包括一些有意义的描述,方便下游使用 。
维度表的维度属性,应该尽可能的丰富,所以维度表中,经常出现一些反范式的设计,把其他维度属性并到主维度属性中, 达到易用少关联的效果。
维度表的设计包括维度选择,主维表的确定,梳理关联维度,定义维度属性的过程。
维度的选择一般从报表需求和从业务人员的交谈中发现,主要用于过滤、分组、排序,主维度表一般从业务库直接同步,比如用户表,但是数仓的本身也会有自己的维度,这是因为数仓是面向分析的,所以会有很多从分析的角度出发的维度。
关联维度主要是不同业务系统或者同一业务系统的表之间存在关联性(范式建模),根据对业务表的梳理,确定哪些表和主维度表之间存在关联关系,并选择其中的某些表用于生成维度属性。
随着互联网的普及,获客成本越来越高,这也使得公司对用户运营提出了更高的要求,不仅需要精细化更需要个性化。解决这一问题的办法之一就是建立相对完备的标签系统,而数仓的标签层对于标签系统而言就像数据仓库对于数据系统一样,有着举足轻重的地位,这样的标签系统需要与业务进行紧密结合, 从业务中获取养分—用户标签,同时也要服务于业务—给用户提供更加精准和个性的服务 。
底层的标签系统就像一个索引,层层展示大千世界,而用户就从这大千世界中不断选择一些东西表明自己的身份和喜好,也不断反哺,使得这个大千世界更加丰富多彩。 其实到最后用户就是一些标签的集合。
对跨业务板块、跨数据域的特定对象进行数据整合,通过统一的ID-Mapping 把各个业务板块,各个业务过程中 同一对象的数据打通 ,形成对象的全域数据标签体系,方便深度分析、挖掘、应用。ID-Mapping 可以认为是通过对象的标识对不同数据体系下相同对象进行关联和识别。对象的标识可以标识一个对象,一般是对象的ID,比如手机号,身份证,登录账号
完成对象的ID 打通需要给对象设置一个超级ID,需要根据对象当前业务体系的ID和获取得到或者计算得到超级ID,进而完成所有业务标识的ID打通一般来说ID打通是建设标签体系的前提,如果没有ID打通就无法收集到一个对象的全面信息,也就无法对这个对象进行全面的标签刻画。
传统的计算方法要有 ID-ID之间的两两关系,例如邮箱和手机号可以打通,手机号和身份证号可以打通,那么邮箱就和身份证号可以打通,但是当数据量非常大,且业务板块非常多的时候,例如有上一个对象,每个对象有数十种ID,这个时候打通就需要非常漫长的计算
那么什么是标签呢,利用原始数据,通过一定的逻辑加工产出直接能被业务所直接使用的、可阅读的,有价值的数据。标签类目,是标签的分类组织方式,是标签信息的一种结构化描述,目的是管理、查找,一般采用多级类目,一般当一个对象的标签个数超过50个的时候,业务人员查找标签就会变得非常麻烦,这个时候我们往往会通过标签类目进行组织管理
标签按照产生和计算方式的不同可分为属性标签,统计标签,算法标签,关联标签。
对象本身的性质就是属性标签,例如用户画像的时候打到用户身上的标签。
对象在业务过程中产生的原子指标,通过不同的计算方法可以生成统计标签。
对象在多个业务过程中的特征规律通过一定的算法产出的标签。
对象在特定的业务过程会和其他对象关联,关联对象的标签也可以打在主对象上。
我们的标签一定是针对用户的,而不是一些虚假、高大上、无用的标签,一定要真实反映用户行为喜好的,所以我们不能只依赖人工智能算法的分析,来完成对一个用户标签的建立与定期维护,我们需要走出去和用户交互,引导用户使用,要抓住用户痛点,及时获取用户反馈,形成闭环。
如何引导使用呢?这个方式有很多我们就不再这里介绍了,后面我们会专门介绍这一层的建设细节。
数据应用层ApplicationDataService面向业务定制的应用数据,主要提供给数据产品和数据分析使用的数据,一般会放在ES,MYSQL,Redis等系统供线上系统使用,也可以放在Hive中供数据分析和数据挖掘使用,或者使用一下其他的大数据工具进行存储和使用。
数仓层,DIM 层,TDM 层是相对稳定的,所以无法满足灵活多变业务需求 ,所以这和数仓层的规范和划分相矛盾,所以我们在此基础上建立了另外一个层,这就是ADS 层,解决了规划稳定和灵活多变之间的矛盾。其实到这里你也就慢慢的看明白了,分层和分类其实没多大差别,其实就是相似的放在一起,有点代码重构的意味啊。
数据应用层,按照业务的需要,然后从统一数仓层和DIM进行取数,并面向业务的特殊需求对数据进行加工,以满足业务和性能的需求。ADS 层因为面向的实众多的需求,所以这一层没有太多的规范,只需要按照命名规范来进行就可以了。
前面也说了,ADS 层因为面向的实众多的需求,所以这一层没有太多的规范,但是ADS 层的建设是强业务推动的,业务部门需要参与到ADS 的建设中来,至少我们得了解用户的痛点才能对症施药啊。
理清需求,了解业务方对数据内容、使用方式(怎么交互的,报表、接口、即席查询、在线查询、指标查询、搜索)、性能的要求。
盘点现有的数仓表是否可以支持,看以前有没有类似的需求,有没有可以复用的接口、报表什么的。
代码实现,选择合适的存储引擎和查询引擎,配置线上监控然后交付。
主要是提供数据产品和数据分析的数据,一般会存放在ES、Mysql、也可能直接存储在hive中或者druid供数据分析和数据挖掘使用。主要 解决部门用户报表和分析需求 而建立数据库,数据集市就代表数据仓库的主题域。
DM 是面向单个主题的,所以它不会从全局考虑进行建设,只专注于自己的数据、往往是某个业务线,例如流量主题、社交主题、电商主题等等。
软件开发有什么要求?
零基础学习java可按照这份大纲来进行学习
--------
第一阶段:Java专业基础课程
----------
阶段目标:
熟练掌握Java的开发环境与编程核心知识
2. 熟练运用Java面向对象知识进行程序开发
3. 对Java的核心对象和组件有深入理解
4. 熟练应用JavaAPI相关知识
5. 熟练应用JAVA多线程技术
6. 能综合运用所学知识完成一个项目
知识点:
1、基本数据类型,运算符,数组,掌握基本数据类型转换,运算符,流程控制。
2、数组,排序算法,Java常用API,类和对象,了解类与对象,熟悉常用API。
3、面向对象特性,集合框架,熟悉面向对象三大特性,熟练使用集合框架。
4、IO流,多线程。
5、网络协议,线程运用。
--------
---------
第二阶段:JavaWEB核心课程
阶段目标:
1. 熟练掌握数据库和MySQL核心技术
2. 深入理解JDBC与DAO数据库操作
3. 熟练运用JSP及Servlet技术完成网站后台开发
4. 深入理解缓存,连接池,注解,反射,泛型等知识
5. 能够运用所学知识完成自定义框架
知识点:
1、数据库知识,范式,MySQL配置,命令,建库建表,数据的增删改查,约束,视图,存储过程,函数,触发器,事务,游标,建模工具。
2、深入理解数据库管理系统通用知识及MySQL数据库的使用与管理。为Java后台开发打下坚实基础。Web页面元素,布局,CSS样式,盒模型,JavaScript,jQuery。
3、掌握前端开发技术,掌握jQuery。
4、Servlet,EL表达式,会话跟踪技术,过滤器,FreeMarker。
5、掌握Servlet相关技术,利用Servlet,JSP相关应用技术和DAO完成B/S架构下的应用开发。
6、泛型,反射,注解。
7、掌握JAVA高级应用,利用泛型,注解,枚举完成自己的CRUD框架开发为后续框架学习做铺垫。
8、单点登录,支付功能,项目整合,分页封装熟练运用JSP及Servlet核心知识完成项目实战。
---------
第三阶段:JavaEE框架课程
阶段目标:
1. 熟练运用Linux操作系统常见命令及完成环境部署和Nginx服务器的配置
2. 熟练运用JavaEE三大核心框架:Spring,SpringMVC,MyBatis
3. 熟练运用Maven,并使用SpringBoot进行快速框架搭建
4. 深入理解框架的实现原理,Java底层技术,企业级应用等
5. 使用Shiro,Ztree和Spring,SpringMVC,Mybaits完成企业项目
知识点:
-------
1、Linux安装配置,文件目录操作,VI命令,管理,用户与权限,环境部署,Struts2概述,hiberante概述。
2、Linux作为一个主流的服务器操作系统,是每一个开发工程师必须掌握的重点技术,并且能够熟练运用。
3、SSH的整合,MyBatis,SpringMVC,Maven的使用。
4、了解AOP原理,了解中央控制器原理,掌握MyBatis框架,掌握SSM框架的整合。
5、Shiro,Ztree,项目文档,项目规范,需求分析,原型图设计,数据库设计,工程构建,需求评审,配置管理,BUG修复,项目管理等。
6、独立自主完成一个中小型的企业级综合项目的设计和整体架构的原型和建模。独立自主完成一个大型的企业级综合项目,并具备商业价值