码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 数据仓库架构详解


    学习目录

    • 一、基本概念
    • 二、核心框架
    • 三、数仓大数据架构详解(流程)

    一、基本概念

    数据仓库(Data Warehouse)是一个为数据分析而设计的企业级数据管理系统。数据仓库可集中、整合多个信息源的大量数据,借助数据仓库的分析能力,为企业指定决策,帮助企业改进业务流程、提高产品数量

    一般数仓分为离线数仓(spark)和实时数仓(flink)

    二、核心框架

    在这里插入图片描述
    数据采集

    数据通过DataX或者sqoop可以将业务数据等导入到数据仓库,通过Flume可以将用户行为数据等导入到数据仓库;

    数据分析

    数据通过处理获取有用的数据指标

    • ODS层:原始数据层,用来数据备份
    • DWD层:明细数据层,用来数据清洗
    • DWS层: 汇总数据层,用来数据预聚合
    • ADS层:数据应用层,用来数据统计和计算
    • DIM层:公共维度层,用来数据分类的

    数据可视化

    将处理好的数据指标用在各种模块中

    1. 可视化的报表
    2. 用户画像
    3. 推荐系统
    4. 机器学习

    三、数仓大数据架构详解(流程)

    流程图
    在这里插入图片描述

    数据采集

    1. 业务数据通过Nginx采集到业务服务器(Springboot)然后再写到mysql中,用户行为数据通过Nginx采集到日志服务器(Springboot)写入到日志文件中(注:主要由JavaWeb人员负责)
    2. 日志文件的用户行为数据通过Flume将数据先写入kafka(主要作用为消峰),再通过Flume将kafka的数据写入到hdfs
    3. Mysql的业务行为数据通过DataX(全量的同步)将数据写入到hdfs中,也可以使用Maxwell(增量同步)将数据写入到hdfs中

    离线数仓

    1. 将HDFS中的数据进行建模 进行各种数据分层处理 如: ODS层、DIM层、DWD层、DWS层、ADS层等,(基本上都是Sql语句),所以需要DolphinScheduler进行任务调度管理
    2. 处理之后数据,通过DataX(每日同步)结果数据写入到MySQL中
    3. 然后再通过Superset的可视化工具进行数据的展示

    实时数仓

    1. Flink读取kakfa中的数据,而kafka中主题数据即为ODS层
    2. Flink从kafka中读取的数据进行清洗即为DWD层,再次写回到kafka中
    3. Flink读取kafka中DWD层的数据,进行维数数据的处理,通过Hbase存储处理的数据,由于Flume和kafka会造成数据的重复,那么Flink在消费kafka数据的时候可以进行精准一次去重。如果数据量比较小可以不用Flink,而使用Redis旁路缓存去重,即为DIM层
    4. 维度的数据可以通过Redis或者Hbase进行查询
    5. Flink将上面数据写入到ClickHouse进行预聚合,即为DWS层
    6. 最后对ClickHouse数据进行查询,然后通过Springboot(JavaWeb)数据接口服务将查询数据写入到Sugar,进行实时数据的可视化
  • 相关阅读:
    力扣:669. 修剪二叉搜索树,今日份快乐
    http: server gave HTTP response to HTTPS client 分析一下这个问题如何解决中文告诉我详细的解决方案
    AcWing91.最短 Hamilton 路径
    品质为先,服务不停,广州流辰信息公司恪守初心,匠心为民!
    企业计算机服务器中了crypt勒索病毒怎么办,crypt勒索病毒解密数据恢复
    PDF格式分析(七十四)——自由文本注释(Free Text)
    [附源码]java毕业设计疫情防控期间人员档案追寻系统设计与实现论文
    还不知道产品帮助中心怎样制作?,来看看这个吧
    【024】 快速上手mongoose web服务器
    利用 python 脚本 PyRdp 设置 RDS 服务器蜜罐 Honeypot
  • 原文地址:https://blog.csdn.net/weixin_44604159/article/details/127834104
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号