二、数据仓库详细介绍

news2024/12/25 8:53:34

基础概念

  1. 架构与框架,架构是结构,框架是规范

  2. 模块与组件,模块是逻辑概念,通过分解使复杂问题简单化,组件是物理概念,将具体的模块落地,且各个组件间保持松散耦合

定义:架构,是一个系统的顶层结构,包括这个系统的各个组件,组件的外部可见属性及组件间的相互关系。

架构设计需要从多个不同的视角去展开:

  1. 业务架构,是战略,描述想要做一件什么事情,用户涉及到几类人,分为几个模块。

  2. 应用架构,是战术,承接业务架构落地,影响技术架构选型,业务架构里的每一个模块在这里都有对应的模块。

  3. 技术架构,是装备,为了满足业务需求及性能指标所做的一系列技术选型。

  4. 数据架构,主要包括数据存储结构设计及相关规范。

  5. ETL架构,涉及流程模块的划分,模块间存在依赖的还需要考虑调用关系,任务调度与管理。

  6. 部署架构,需要考虑服务器的数量,配置及连通性,各个应用的部署位置,多节点还应考虑各个节点间的网络带宽。

业务架构

      简单来讲,业务架构,需要从全局的角度出发,思考具体的业务诉求,思考数仓的真实价值。

      需要清晰的了解组织的真实诉求、实际的服务对象。通常的业务诉求,包含两部分:数据资产管理、数据应用。

     业务架构是对业务需求的提炼和抽象,使用一套方法论对产品(项目)所涉及需求的业务进行业务边界划分,简单地讲就是根据一套逻辑思路进行业务的拆分,开发软件必须满足业务需求,否则就是空中楼阁。

    业务架构是决定一个软件项目能否顺利开展的总纲,软件架构是业务架构在技术层面的映射,合理的开发分工也应该基于业务架构去做。如果没有业务架构,进行软件开发就会很盲目。业务架构是需求和开发的汇聚点,需求分析是否做到位,功能开发是否达到预期目标,都以此为依托。我们在工作中会遇到一些问题,例如研发人员说需求分析做得不到位,而做需求的人员会质疑需求做到怎样才算到位,为什么开发出的产品和用户想要的不一致,这些从根上来说,都是因为没有将业务架构梳理清楚,没有达成共识。站在软件项目的角度来看,在项目前期做好业务架构设计,对整个项目的开发都有重要的意义。

业务架构是技术与业务沟通的桥梁,不需要考虑技术实现。

应用架构-数据应用

      一句话,应用架构是承接业务架构落地的。所以应用架构必须有清晰的模块划分。

     上边这张图是业务架构里的数据应用部分,由于时间原因,数据资产管理后期再补充。

     大体分为四个部分:数据源、数仓存储、数仓管理工具、数据应用。这里的绝大多数都会在后续的章节里详细介绍。

应用架构-数据资产管理(待补充)

数据架构

     数仓里的数据架构,核心在于分层、主题域划分。

     公用数据层,是数仓的核心层,对接入层的原始数据做清洗、补全、重新组织、编码映射后入明细数据层。

     数据服务,需要考虑数据查询的效率和数据使用过程中的安全性。

     基于安全性考虑,可以采用统一接口调用、开辟独立数据存储、分配只有指定表、字段制度权限的账号等方式。

     基于查询效率考虑,优先使用上层汇总表、维度退化尽量单表查询等方式。

     数据接入层,保持跟数据源一致的结构,模块划分完全采用数据源分类。

     公用数据层,主题域的划分最好依据对实际业务的抽象,需要保持一定的稳定性、兼容性、前瞻性,主题域的划分需要保证整体数据完整,且数据无重叠。当然也可以按照业务模块、产品模块、分析需求、部门等方式划分。

     数据集市层,模块划分主要依据业务需求或分析主题,模块之间数据允许重叠。

技术架构

数仓概念发展至今,也有三十多年了,虽然基础理论没太大变化,但技术体系已经发展到第四代第五代了。

传统数仓的技术架构就不做介绍了。下边是大数据场景下,一个常规的技术架构图:

调度系统:

     如果调度任务简单,完全可以用 Linux 自带的 Crontab 调度,ETL 流程直接用 Shell 拼接。

     如果调度任务繁多,ETL 流程依赖复杂,可以采用 DolphinScheduler 调度,开源、社区支持大、操作简单、调度需要的各种功能都有。

离线数仓:

      如果公司人力或技术储备不足的话,阿里云 ODPS 是个不错的选择。

      如果人力充足的话,使用 hive on tez (或spark) 也是一个不错的离线数仓方案。

实时数仓:

      基于社区的大力推广,Flink 从18、19年开始在国内迅速流行起来,但一开始肯定会有各种各样的问题,所以王知无大佬建议中小公司生产慎用,可小范围业务尝试。

      但随着 Flink 1.12 版本的发布,真正奠定了 Flink 在流计算领域正在大规模生产可用,比如公布了几个重大特性:基于 K8S 的高可用方案、对 Hive 的全面支持、对 SQL 的全面支持、DataStream API 支持批执行模式。

      Flink 解决了流式计算的问题,但实时数仓还有两个问题需要解决,即流式的 Upsert(Delete)功能和实时查询功能。Upsert 可选的技术组件有 HBase/Hudi/Iceberg/Redis/Mysql,实时查询可选的技术组件:HBase/Redis/Mysql。

技术架构-实时数仓

目前实时数仓经验有限,以下技术架构来源于微信公众号文章,另外附有原文连接,仅供参考学习。

网易实时数仓1.0 2.0 3.0 架构

基于以上,实际的实时数据仓技术选型如下:

    以上,是实时计算的最开始架构,没有数仓分层,直接一步计算出最终结果。

       

     业内常用的实时数仓架构,是上边两张图展示的,把 Kafka 作为数仓各层的实际存储,但 Kafka 数据保留周期短、只支持 append 不支持 upsert/delete 。

     上图是采用 Iceberg 作为数仓存储的 Lambda 架构,支持数据的 upsert/delete。当然 Iceberg 也可以换成 Hudi。

        上图是流批一体的架构。相信未来很快 Flink 在批处理领域成熟到一定程度,也可以替换到 Flink 。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/559381.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分布式全局唯一id实现总结

前言:本文意在对借助db和程序生成分布式id进行一些总结,以及对其特性进行比较分析; 1 实现方式: Db 通过配置步长和初始值的方式,使得每个db库生成id 的不同性,如 3个db 实例情况下:其步长均设…

我3年前写的博客,又被别人抄去发论文了,该论文整个正文部分几乎直接照抄我的博客

我想说每一篇原创博客都是作者的心血,有时候写一篇博客也许会花一天,甚至好几天的时间,尊重原创,营造好的环境,才有可能出现更多优质的博文,而不是到处都是抄来抄去的低质量水文。 前几天接到来自粉丝的私信…

加密解密软件VMProtect教程(八)许可制度之集成到应用程序

VMProtect是新一代软件保护实用程序。VMProtect支持德尔菲、Borland C Builder、Visual C/C、Visual Basic(本机)、Virtual Pascal和XCode编译器。 同时,VMProtect有一个内置的反汇编程序,可以与Windows和Mac OS X可执行文件一起…

全网最快PCB打样| 急速小批量打样的秘密在这里

对于广大爱好者以及电子工程师来说,电子行业的快速发展,导致电子产品的多样化和个性化,电路设计的复杂度和难度提高,需要更多的PCB打样来验证和测试,满足细分市场的客户需求。 随着PCB打样厂家的服务优化和价格降低&am…

信息收集-服务器信息

服务器上面可以运行大量的系统服务和第三方应用服务,如果操作系统或者第三方软件没有及时升级打补丁,攻击者就有可能直接通过服务器上运行的服务进行攻击。 服务器需要收集的信息包含三个方面: 操作系统信息等识别waf(Web应用程…

高级测试必备技能:从session请求到token请求,傻瓜式掌握Charles和postman断言技巧

引言 在快速发展的数字化时代,软件测试作为保障软件品质和用户体验的重要一环,显得愈加重要。SESSION请求、TOKEN请求、charles使用和Postman断言等技术,成为测试人员不可或缺的必备技能。 在这篇文章中,我将深入浅出地为您讲解…

Java编程思想(第4版) 扫描版

Java编程思想 - 基础必备 Java基础必备书籍! 从本书获得的各项大奖以及来自世界各地的读者评论中,不难看出这是一本经典之作。本书的作者拥有多年教学经验,对C、C以及Java语言都有独到、深入的见解,以通俗易懂及小而直接的示例解…

使用C++快速上手ProtoBuf (一)

文章目录 课程目标一、初始ProtoBuf1. 序列化概念2.ProtoBuf是什么3.ProtoBuf的使⽤特点 二、安装ProtoBuf三、教学思路四、快速上⼿步骤1:创建.proto文件步骤2:编译contacts.proto⽂件,⽣成C⽂件步骤3:序列化与反序列化的使⽤⼩结…

2分钟快速上手工作流的创建与运行

前段时间,偶然发现一款低代码产品,工作流很突出,至少我觉得,设计颇有精妙之处。 可视化工作流是实现看板的第一步,要想业务人员也能了然其中的运行逻辑,这款产品可是做到了白痴也看得懂的程度!…

讲个小故事

5月21日,沈梦辰在微博晒出了一组照片,记录下520这天杜海涛去机场接机的甜蜜瞬间。杜海涛不仅给沈梦辰送上兔子造型的红玫瑰花束,同时还准备了现切的新鲜西瓜。同一天,李湘女儿王诗龄也在网络晒出了自己的520礼物,那是一…

DOS命令(了解)

目录 一、 DOS 介绍 二、相关的知识补充: 相对路径, 绝对路径 ​三、常用的 dos 命令 1) 查看当前目录是有什么内容 dir 2) 切换到其他盘下:盘符号 cd : change directory 3) 切换到当前盘的其他目录下 (使用相对路径和绝对路径演示), ..\表示上一级…

网关Netfilx Zuul:---(Eureka高可用操作)

之前我们创建完成了3个Eureka的客户端的服务操作,你会发现我们还是没有能够通过微服来进行对他访问,还是必须通过自己服务的端口号来进行访问,那么我们的微服务是没有能够完成的,这个时候我们就需要通过网关进行操作 其实网关就是…

618大促聚焦“低价”与“规则简化”

618年中大促即将拉开帷幕。 多个电商平台已经公布今年618促销节的节奏与玩法,618开启之前,电商平台也纷纷表达了对于年中大促的重视,淘宝天猫618总负责人暮珊此前表示,“今年淘宝天猫618是历史上最大投入的一届”。抖音副总裁木青…

设计模式之【策略模式】,去掉繁琐的if-else,实现算法的动态替换

文章目录 一、什么是策略模式1、策略模式应用场景2、状态模式与策略模式的区别3、策略模式优缺点4、策略模式的三大角色 二、实例1、策略模式的一般写法2、促销活动案例3、网购订单支付案例4、DispatcherServlet的优化5、文件排序案例 三、源码中的策略模式1、Comparator接口2、…

在字节做了5年的软件测试,被辞了,太真实了...

先简单说下,涵哥是某不知名 985 的本硕,17 年毕业加入字节,以“人员优化”的名义无情被裁员,之后跳槽到了有赞,一直从事软件测试的工作。还差一个月也6年了吧,算是在这行的资深划水员。6年的时间也让涵哥从…

ChatGPT 辅助生成PPT

前言 介绍 ChatGPT 与 MindShow 结合高效生成 PPT。 文章目录 前言一、准备工具二、使用步骤1. 内容生成2. 制作 PPT三、小节一、准备工具 ChatGPT:MindShow:MindShow网站 MindShow 内置了丰富的模板、图表和设计元素。具有自动排版功能,可根据输入内容智能调整布局。二、使…

29岁测试被辞,面试2个月还找不到工作....

最近一个29岁老同学联系我,因为被公司辞退,找我倾诉,于是写下此文。 他是14年二本毕业,在我的印象里人特别懒,不爱学习,专业不好,毕业前因为都没找到合适工作,直接去创业了&#xf…

导入报错:Limits: MIN_INFLATE_RATIO: 0.010000, Entry: xl/drawings/drawing1.xml

今天突然遇到一个现场提出的问题:说导入文件导入不成功,咋突然有这个问题 2023-05-23 14:19:11,174 ERROR [http-nio-9104-exec-5] o.a.c.c.C.[.[.[.[dispatcherServlet] [DirectJDKLog.java : 175] Servlet.service() for servlet [dispatcherServlet]…

VMwareESXI虚拟机黑群晖7.2 正式版 (懒人包)

版本说明: VMware Workstation 桌面版虚拟机,可下载VMware专用版本 VMware ESXi虚拟机,可以下载OVA版本 VMware Workstation桌面版虚拟机 使用教程: 1.下载VMware专用版本,然后进行解压,双击解压出来的&q…

前端Vue:权限管理,给角色分配权限

👉前端-Vue权限控制,菜单权限,按钮权限_一人创客的博客-CSDN博客 目录 介绍: 前端权限的概念: 前端权限的意义: Vue权限管理的代码实现: 菜单 刷新界⾯菜单消失 标识⽤户名, ⽅便查看当前…