2020-06-24 09:07发布
首先,从架构上,实时数仓与离线数仓有比较明显的区别,实时数仓以Kappa架构为主,而离线数仓以传统大数据架构为主。Lambda架构可以认为是两者的中间态。
其次,从建设方法上,实时数仓和离线数仓基本还是沿用传统的数仓主题建模理论,产出事实宽表。另外实时数仓中实时流数据的join有隐藏时间语义,在建设中需注意。
最后,从数据保障看,实时数仓因为要保证实时性,所以对数据量的变化较为敏感。在大促等场景下需要提前做好压测和主备保障工作,这是与离线数据的一个较为明显的区别。
离线数仓
离线数仓,一般地,(业务、日志)数据存储在 HDFS 上,一般分这几层:ods/dwd/dws/dm,其中 dm 层的数据会导出到 olap、rds、kv 数据库中供业务方使用。ad-hoc 查询的数据来源一般来自 ods 层或 dw 层,ad-hoc 的查询引擎为 hive/spark/presto。
实时数仓
实时数仓,也是基于分层的模型 ods/dwd/dws/,业务数据和日志数据,事实数据存储在 kafka 中,维度数据存储在 Hbase/Tair 中,dm 层的数据最终导出到 mq/olap/rds/kv 中。ad-hoc 查询基于 Flink 来做。(都是流动的数据),如上图所示,就是 Kappa 架构。
实时数仓的存储需考虑支持数据重放,方便支持任务重跑。选择一个具有重放功能的、能够保存历史数据并支持多消费者的消息队列,根据需求设置历史数据保存的时长,比如 Kafka,可以保存全部历史数据。
数仓概念
数据仓库(Data Warehouse)是为企业所有部门决策制定过程,提供所有系统数据支持的数据集合。与数据仓库相类似的集合叫数据集市(Data Mart),它是满足特定部门或者用户的需求,按照多维的方式进行存储,包括定义维度、需要计算的指标、维度的层次等,生成面向决策分析需求的数据立方体。
数据仓库并不是数据的最终目的地,而是为数据最终目的地做好准备。准备包括对数据的:清洗、转义、分类、重组、合并、拆分、统计等。
数仓从模型层面分为三层:
ODS,操作数据层,保存原始数据;
DWD,数据仓库明细层,根据主题定义好事实与维度表,保存最细粒度的事实数据;
DM,数据集市/轻度汇总层,在 DWD 层的基础之上根据不同的业务需求做轻度汇总;
离线数仓,一般地,(业务、日志)数据存储在 HDFS 上,一般分这几层:ods/dwd/dws/dm,其中 dm 层的数据会导出到 olap、rds、kv 数据库中供业务方使用。ad-hoc 查询的数据来源一般来自 ods 层或 dw 层,ad-hoc 的查询引擎为 hive/spark/presto。
实时数仓,也是基于分层的模型 ods/dwd/dws/,业务数据和日志数据,事实数据存储在 kafka 中,维度数据存储在 Hbase/Tair 中,dm 层的数据最终导出到 mq/olap/rds/kv 中。ad-hoc 查询基于 Flink 来做。(都是流动的数据),如上图所示,就是 Kappa 架构。
与离线数仓相比,实时数仓的数据源存储不同。
与离线数仓相比,实时数仓的层次更少一些。
大数据开发一般要具备编程能力,就我从业3年多经验来看,有编程能力会获得更好的发展。大数据开发一般有数仓开发、数据分析、数据开发三大类,每类要求的技能是不一样的。但是都有很多共通的技能。通用的技能:除了具备基础的Sql能力以外,包括会用传统的Mysql、Oracle这种传统数据库,而且要会用Hive、Hbase这些基于分布式的数据库;当然Java编程能力是不可少的,其他方面的诸如Mapreduce和Spark也会就更好了。会用集群,集群除了问题有一定解决集群问题的能力。数仓开发:要会数仓建模,维表、事实表、主题表、星型模型、雪花模型等等,要对业务非常熟悉,有全局观,才能建好数据仓库。数据开发:数据开发有离线开发和实时开发,这种更偏向后端开发,类似java有需求就开发,加上平时对程序维护。数据分析:这个要求sql功底强,如果能用python对数据分析那会更好了。要会用sqoop和kettle等这些常用的ETL工具,会用报表系统。当然,如果你想学习,可以深入学习更多的东西。毕竟在平时开发的过程中,尤其是小公司分工不明确的情况下,这些技能或多或少都需要我们掌握的。就是一个人可以当几个人用,类似全栈工程师。
数据仓库是对企业各类数据的汇总和规范化,能够屏蔽各业务系统之间的差异,提供统一的数据出口。通常情况下,数据仓库都要包括贴源层、明细层、汇总层和集市层或者贴源层、模型层、集市层等几个层次,并最终通过接口等方式提供数据给下游应用文系统使用。
其中,贴源层是对源系统数据的直接复制,不做加工处理,往往通过卸数或者数据同步的方式实现,其他层次是基于贴源层数据跑批和逐步汇总抽象得来。
目前,大多还是离线数据仓库,往往是T+1延迟,即T+1日凌晨卸载源系统T日日终的数据,然后跑批,将数据入模型入集市,并最终提供给下游应用系统,可以基于大数据平台,也可以基于Teradata等传统数据仓库来做。
Flume简介 Flume 是Cloudera(就是CDH的那个公司) 开发的实时日志收集系统,它是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。 Flume可以根据需求接收不同的数据类型,同时将接收的数据发送到其他的具有接收能力或者处理能力的地...
对于相对简单的环境,按照通用的元数据管理标准建立一个集中式的元数据知识库。 对于比较复杂的环境,分别建立各部分的元数据管理系统,形成分布式元数据知识库,然后,通过建立标准的元数据交换格式,实现元数据的集成管理。...
离线是将一定时间内的数据统一处理后加入到数据仓库中,实时是每来一条数据处理一条并加入到数据仓库中,数据的时效性较高
分层是数据仓库解决方案中,数据架构设计的一种数据逻辑结构 ,通过分层理念建立的数据仓库,它的可扩展性非常好,这样设计出来的模型架构,可以任意地增减、替换数据仓库中的各个组成部分。数据仓库分层的原因1、用空间换时间,通过数据预处理提高效率,通过...
兰州是二线城市,大数据发展不如一线城市,但是发展还是不错的,尤其兰州新区最近几年发展势头很高,所以说找工作以及未来的发展还是很不错的。现在大数据正式火爆的时候,所以现在学习还来的及,未来三到五年是大数据发展最为快速的时期。...
Jdk的安装及配置Mysql5.5安装安装maven :本人使用的是idea自带的maven工具。
你的意思是采用java语言编写的那些大数据工具吧,比如hadoop、flume、zookeeper,这些的话,每个人对难易的感受是不一样的,个人感觉不是学起来不是太难,但是要把握学习的深度,不要死抠底层,问题就不是很大...
学习大数据一定要先学习java,因为大数据的好多软件、工具、环境都是基于java的,比如hadoop、zookeeper、flume,sqoop等。所以有java基础后,再学大数据是个锦上添花的事情,后期再学习大数据会比较轻松一点。...
如果直接去单位的话还是相对来说有一定的困难,但是还是能够做一点大数据的其他岗位但是还是需要自己的努力程度吧,对于技术的专研程度
目前大数据获得国家的大力支持,目前数据量呈爆发式的增长,数据是什么,其实就是稀缺资源,手里掌握了数据就掌握着信息,有了这个东西对公司的决策发展是有重要影响的。对公司来说这个人才是很稀缺的。...
不是说需要一个啥基础 个人感觉这个跟文理科关系不算大 只要自己想去学习 找一个好的机构 踏踏实实的学习就完事了 剩下的都不是问题
大数据的内容相比较来说还是比较多的,例如:javase、数据库、linux操作系统、Hadoop基础内容
一、数据科学与大数据技术专业该专业致力于培养掌握数学、计算机、统计等数据科学相关领域基础理论知识,以及数据建模、机器学习、并行与分布式计算、统计推断等方法和技术,从事数据建模、数据分析与挖掘算法等问题的研究和大数据系统开发的研究型和技术型人...
最多设置5个标签!
首先,从架构上,实时数仓与离线数仓有比较明显的区别,实时数仓以Kappa架构为主,而离线数仓以传统大数据架构为主。Lambda架构可以认为是两者的中间态。
其次,从建设方法上,实时数仓和离线数仓基本还是沿用传统的数仓主题建模理论,产出事实宽表。另外实时数仓中实时流数据的join有隐藏时间语义,在建设中需注意。
最后,从数据保障看,实时数仓因为要保证实时性,所以对数据量的变化较为敏感。在大促等场景下需要提前做好压测和主备保障工作,这是与离线数据的一个较为明显的区别。
离线数仓
离线数仓,一般地,(业务、日志)数据存储在 HDFS 上,一般分这几层:ods/dwd/dws/dm,其中 dm 层的数据会导出到 olap、rds、kv 数据库中供业务方使用。ad-hoc 查询的数据来源一般来自 ods 层或 dw 层,ad-hoc 的查询引擎为 hive/spark/presto。
实时数仓
实时数仓,也是基于分层的模型 ods/dwd/dws/,业务数据和日志数据,事实数据存储在 kafka 中,维度数据存储在 Hbase/Tair 中,dm 层的数据最终导出到 mq/olap/rds/kv 中。ad-hoc 查询基于 Flink 来做。(都是流动的数据),如上图所示,就是 Kappa 架构。
实时数仓的存储需考虑支持数据重放,方便支持任务重跑。选择一个具有重放功能的、能够保存历史数据并支持多消费者的消息队列,根据需求设置历史数据保存的时长,比如 Kafka,可以保存全部历史数据。
数仓概念
数据仓库(Data Warehouse)是为企业所有部门决策制定过程,提供所有系统数据支持的数据集合。与数据仓库相类似的集合叫数据集市(Data Mart),它是满足特定部门或者用户的需求,按照多维的方式进行存储,包括定义维度、需要计算的指标、维度的层次等,生成面向决策分析需求的数据立方体。
数据仓库并不是数据的最终目的地,而是为数据最终目的地做好准备。准备包括对数据的:清洗、转义、分类、重组、合并、拆分、统计等。
数仓从模型层面分为三层:
ODS,操作数据层,保存原始数据;
DWD,数据仓库明细层,根据主题定义好事实与维度表,保存最细粒度的事实数据;
DM,数据集市/轻度汇总层,在 DWD 层的基础之上根据不同的业务需求做轻度汇总;
离线数仓,一般地,(业务、日志)数据存储在 HDFS 上,一般分这几层:ods/dwd/dws/dm,其中 dm 层的数据会导出到 olap、rds、kv 数据库中供业务方使用。ad-hoc 查询的数据来源一般来自 ods 层或 dw 层,ad-hoc 的查询引擎为 hive/spark/presto。
实时数仓,也是基于分层的模型 ods/dwd/dws/,业务数据和日志数据,事实数据存储在 kafka 中,维度数据存储在 Hbase/Tair 中,dm 层的数据最终导出到 mq/olap/rds/kv 中。ad-hoc 查询基于 Flink 来做。(都是流动的数据),如上图所示,就是 Kappa 架构。
实时数仓的存储需考虑支持数据重放,方便支持任务重跑。选择一个具有重放功能的、能够保存历史数据并支持多消费者的消息队列,根据需求设置历史数据保存的时长,比如 Kafka,可以保存全部历史数据。
与离线数仓相比,实时数仓的数据源存储不同。
与离线数仓相比,实时数仓的层次更少一些。
大数据开发一般要具备编程能力,就我从业3年多经验来看,有编程能力会获得更好的发展。
大数据开发一般有数仓开发、数据分析、数据开发三大类,每类要求的技能是不一样的。但是都有很多共通的技能。
通用的技能:除了具备基础的Sql能力以外,包括会用传统的Mysql、Oracle这种传统数据库,而且要会用Hive、Hbase这些基于分布式的数据库;当然Java编程能力是不可少的,其他方面的诸如Mapreduce和Spark也会就更好了。会用集群,集群除了问题有一定解决集群问题的能力。
数仓开发:要会数仓建模,维表、事实表、主题表、星型模型、雪花模型等等,要对业务非常熟悉,有全局观,才能建好数据仓库。
数据开发:数据开发有离线开发和实时开发,这种更偏向后端开发,类似java有需求就开发,加上平时对程序维护。
数据分析:这个要求sql功底强,如果能用python对数据分析那会更好了。要会用sqoop和kettle等这些常用的ETL工具,会用报表系统。
当然,如果你想学习,可以深入学习更多的东西。毕竟在平时开发的过程中,尤其是小公司分工不明确的情况下,这些技能或多或少都需要我们掌握的。就是一个人可以当几个人用,类似全栈工程师。
数据仓库是对企业各类数据的汇总和规范化,能够屏蔽各业务系统之间的差异,提供统一的数据出口。通常情况下,数据仓库都要包括贴源层、明细层、汇总层和集市层或者贴源层、模型层、集市层等几个层次,并最终通过接口等方式提供数据给下游应用文系统使用。
其中,贴源层是对源系统数据的直接复制,不做加工处理,往往通过卸数或者数据同步的方式实现,其他层次是基于贴源层数据跑批和逐步汇总抽象得来。
目前,大多还是离线数据仓库,往往是T+1延迟,即T+1日凌晨卸载源系统T日日终的数据,然后跑批,将数据入模型入集市,并最终提供给下游应用系统,可以基于大数据平台,也可以基于Teradata等传统数据仓库来做。
相关问题推荐
Flume简介 Flume 是Cloudera(就是CDH的那个公司) 开发的实时日志收集系统,它是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。 Flume可以根据需求接收不同的数据类型,同时将接收的数据发送到其他的具有接收能力或者处理能力的地...
对于相对简单的环境,按照通用的元数据管理标准建立一个集中式的元数据知识库。 对于比较复杂的环境,分别建立各部分的元数据管理系统,形成分布式元数据知识库,然后,通过建立标准的元数据交换格式,实现元数据的集成管理。...
离线是将一定时间内的数据统一处理后加入到数据仓库中,实时是每来一条数据处理一条并加入到数据仓库中,数据的时效性较高
分层是数据仓库解决方案中,数据架构设计的一种数据逻辑结构 ,通过分层理念建立的数据仓库,它的可扩展性非常好,这样设计出来的模型架构,可以任意地增减、替换数据仓库中的各个组成部分。数据仓库分层的原因1、用空间换时间,通过数据预处理提高效率,通过...
兰州是二线城市,大数据发展不如一线城市,但是发展还是不错的,尤其兰州新区最近几年发展势头很高,所以说找工作以及未来的发展还是很不错的。现在大数据正式火爆的时候,所以现在学习还来的及,未来三到五年是大数据发展最为快速的时期。...
Jdk的安装及配置Mysql5.5安装安装maven :本人使用的是idea自带的maven工具。
你的意思是采用java语言编写的那些大数据工具吧,比如hadoop、flume、zookeeper,这些的话,每个人对难易的感受是不一样的,个人感觉不是学起来不是太难,但是要把握学习的深度,不要死抠底层,问题就不是很大...
学习大数据一定要先学习java,因为大数据的好多软件、工具、环境都是基于java的,比如hadoop、zookeeper、flume,sqoop等。所以有java基础后,再学大数据是个锦上添花的事情,后期再学习大数据会比较轻松一点。...
如果直接去单位的话还是相对来说有一定的困难,但是还是能够做一点大数据的其他岗位但是还是需要自己的努力程度吧,对于技术的专研程度
目前大数据获得国家的大力支持,目前数据量呈爆发式的增长,数据是什么,其实就是稀缺资源,手里掌握了数据就掌握着信息,有了这个东西对公司的决策发展是有重要影响的。对公司来说这个人才是很稀缺的。...
不是说需要一个啥基础 个人感觉这个跟文理科关系不算大 只要自己想去学习 找一个好的机构 踏踏实实的学习就完事了 剩下的都不是问题
大数据的内容相比较来说还是比较多的,例如:javase、数据库、linux操作系统、Hadoop基础内容
一、数据科学与大数据技术专业该专业致力于培养掌握数学、计算机、统计等数据科学相关领域基础理论知识,以及数据建模、机器学习、并行与分布式计算、统计推断等方法和技术,从事数据建模、数据分析与挖掘算法等问题的研究和大数据系统开发的研究型和技术型人...