🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄
🌹简历模板、学习资料、面试题库、技术互助🌹文末获取联系方式 📝
系列专栏目录
[Java项目实战] 介绍Java组件安装、使用;手写框架等
[Aws服务器实战] Aws Linux服务器上操作nginx、git、JDK、Vue等
[Java微服务实战] Java 微服务实战,Spring Cloud Netflix套件、Spring Cloud Alibaba套件、Seata、gateway、shadingjdbc等实战操作
[Java基础篇] Java基础闲聊,已出HashMap、String、StringBuffer等源码分析,JVM分析,持续更新中
[Springboot篇] 从创建Springboot项目,到加载数据库、静态资源、输出RestFul接口、跨越问题解决到统一返回、全局异常处理、Swagger文档
[Spring MVC篇] 从创建Spring MVC项目,到加载数据库、静态资源、输出RestFul接口、跨越问题解决到统一返回
[华为云服务器实战] 华为云Linux服务器上操作nginx、git、JDK、Vue等,以及使用宝塔运维操作添加Html网页、部署Springboot项目/Vue项目等
[Java爬虫] 通过Java+Selenium+GoogleWebDriver 模拟真人网页操作爬取花瓣网图片、bing搜索图片等
[Vue实战] 讲解Vue3的安装、环境配置,基本语法、循环语句、生命周期、路由设置、组件、axios交互、Element-ui的使用等
[Spring] 讲解Spring(Bean)概念、IOC、AOP、集成jdbcTemplate/redis/事务等
1、常见组件
Hadoop
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
分布式系统是指运行在网络上台计算机之上的软件和系统,与我们熟悉的windows只运行在单个计算机上不同。
HDFS/MapReduce
Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。
Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件上的分布式文件系统。它和其他的分布式文件系统的区别也是很明显的。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。
MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。
并行运算指一次执行多个指令的算法,经常是指在分布式系统上多台计算机多个CPU同时并发执行计算。
Hive
Hive是基于Hadoop的一个数据仓库工具,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
HBase
HBase是一个分布式的开源数据库。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。
结构化数据一般是指类似Excel表这样的结构,比如word文档、图片、视频就是非结构的。
Storm
Storm用于在分布式系统上实现实时处理消息并更新数据库,也可以用于对数据流做连续查询,一边计算,一遍把结果输出给用户。
Hadoop主要是处理一批数据,对时效性要求不高,需要处理就提交一个工作任务,而Storm时效性更高,比如实时录音录像、数据更新等。
CDM
概念数据模型(Conceptual Data Model),简称概念模型,是面向数据库用户的现实世界的模型,主要用来描述世界的概念化结构,它使数据库的设计人员在设计的初始阶段,摆脱计算机系统及DBMS的具体技术问题,集中精力分析数据以及数据之间的联系等,与具体的数据库管理系统(Database Management System,简称DBMS)无关。
https://baike.baidu.com/item/%E6%A6%82%E5%BF%B5%E6%95%B0%E6%8D%AE%E6%A8%A1%E5%9E%8B/5851692?fromtitle=CDM&fromid=15286288&fr=aladdin
2、CDP、CDM
CDP(Continuous Data Protection,连续数据保护),其利用记录基准数据和增量数据日志,然后对日志做索引处理的方式,能够让用户在较短的时间内看到历史时刻数据的任意副本。然而,CDP系统更加注重的是将数据拿到和保护起来,至于这些数据如何被利用,长期以来却似乎并没有受到重视。
CDM(Copy Data Management,数据副本管理),这个技术概念其出发点就在于它并不关心数据是怎么拿到的,比如是通过传统备份亦或是CDP,也不关心数据放在哪里,比如本地硬盘、SAN、分布式存储、云存储等。它注重的是如何将获取到的数据更好的管理和利用,以及更好的与应用相结合的利用。
http://www.sohu.com/a/216290679_163577
3、CDC
ETL过程的第一步就是从不同的数据源抽取数据并把数据存储在数据的缓存区。这个过程的主要挑战就是初始加载数据量大和比较慢的网络延迟。在初始加载完成之后,不能再把所有数据重新加载一遍,我们需要的只是变化的数据。识别出变化的数据,并抽取这些变化的数据称为变化数据捕获(Change Data Capture) 或CDC。
https://www.cnblogs.com/xiaotao726/p/6266613.html
4、DW、DWH、EDW
数据仓库:简称EDW,企业级数据仓库,现在大家都在说的就是这个。所不同的是每个行业的EDW都有一个通用的数据模型,结构精简,扩展性强,应用性强,数据模型不像ODS那样会有很大的冗余。
数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。 为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制。
5、DM
数据集市:简称DM,以某个应用为出发点而建设的局部DW,为什么这么说,DM只关心自己需要的数据。不会全盘考虑企业整体的数据架构和应用,每个应用都有自己的DM。所以DM可以基于仓库建设也可以独立建设。
6、ODS
操作数据存储ODS(Operational Data Store),操作型数据仓库,最早的数据仓库模型,是数据仓库体系结构中的一个可选部分,ODS具备数据仓库的部分特征和OLTP系统的部分特征。特点是数据模型采取了贴源设计,业务系统数据库数据结构是怎样的,ODS数据库的结构就是怎样的。所不同的是ODS数据库可以提供数据变化的历史,所以ODS数据库中每张表都会增加一个日期类型,表示数据的时点,将每天数据的变化情况都存下来,这样有利于数据的分析。
DW :data warehouse 翻译成数据仓库
DW数据分层,由下到上为 DWD,DWB,DWS
DWD:data warehouse detail 细节数据层,有的也称为 ODS层,是业务层与数据仓库的隔离层
DWB:data warehouse base 基础数据层,存储的是客观数据,一般用作中间层,可以认为是大量指标的数据层。
DWS:data warehouse service 服务数据层,基于DWB上的基础数据,整合汇总成分析某一个主题域的服务数据,一般是宽表。
一般在带有ODS的系统体系结构中,ODS都设计为如下几个作用:
6.1、在业务系统和数据仓库之间形成一个隔离层
一般的数据仓库应用系统都具有非常复杂的数据来源,这些数据存放在不同的地理位置、不同的数据库、不同的应用之中,从这些业务系统对数据进行抽取并不是一件容易的事。因此,ODS用于存放从业务系统直接抽取出来的数据,这些数据从数据结构、数据之间的逻辑关系上都与业务系统基本保持一致,因此在抽取过程中极大降低了数据转化的复杂性,而主要关注数据抽取的接口、数据量大小、抽取方式等方面的问题。
6.2、转移一部分业务系统细节查询的功能
在数据仓库建立之前,大量的报表、分析是由业务系统直接支持的,在一些比较复杂的报表生成过程中,对业务系统的运行产生相当大的压力。ODS的数据从粒度、组织方式等各个方面都保持了与业务系统的一致,那么原来由业务系统产生的报表、细节数据的查询自然能够从ODS中进行,从而降低业务系统的查询压力。
6.3、完成数据仓库中不能完成的一些功能
一般来说,带有ODS的数据仓库体系结构中,DW层所存储的数据都是进行汇总过的数据,并不存储每笔交易产生的细节数据,但是在某些特殊的应用中,可能需要对交易细节数据进行查询,这时就需要把细节数据查询的功能转移到ODS来完成,而且ODS的数据模型按照面向主题的方式进行存储,可以方便地支持多维分析等查询功能。
在一个没有ODS层的数据仓库应用系统体系结构中,数据仓库中存储的数据粒度是根据需要而确定的,但一般来说,最为细节的业务数据也是需要保留的,实际上也就相当于ODS,但与ODS所不同的是,这时的细节数据不是“当前、不断变化的”数据,而是“历史的,不再变化的”数据。