首页 > 其他分享 >实时数据仓库==(总结)

实时数据仓库==(总结)

时间:2022-08-15 00:16:51浏览次数:59  
标签:总结 数据仓库 离线 实时 mysql 维度 数据

实时数据仓库(总结)

1. 开源实时数仓和离线数仓的区别

  • API计算引擎

    离线数据仓库主要使用hive sql 和spark sql进行开发

    实时数据仓库主要是使用flink sql开发

  • 数据存储

    离线数据仓库保存在hdfs上

    实时数据仓库的流表的数据保存在kafka中,维表的数据保存在hbase。或者mysql中

  • 数据仓库分层

    离线数据仓库和实时数据仓库分层的规则基本一致,离线数据仓库在构建模型时,会尽量构建公共表,减少重复计算ODS,DWD,DWS,ADS

    实时数据仓库在做模型开发的时候会尽量减少使用中间层,可以降低数据的延迟,

  • 数据延时

    离线一般采用T+1模式,第二天计算前一天的数据,在项目中一般到第二天早上6点左右才能将前一天的数据处理完

    实时的延时一般在秒级别或者在分钟级别

  • 架构

    离线:hive,hadoop,spark,调度,离线涉及的组件比较少,不容易问题,出现问题容易解决

    实时:hive,kadoop,kafka,zookeeper,flink,hbase,mysql,监控,出现问题不好定位,为什么用到这么多组件:目前还没有一个成熟的开源的实时数据仓库的解决方案

2. 项目架构

  1. 数据源:电商的业务会产生数据,数据保存在数据库中,数据库汇总的数据会不断的插入和更新

  2. 数据采集:使用canal实时监控mysql binlog 日志,将数据实时写到kafka中,数据写入的格式为 canal-json

  3. 数据存储

    • ODS,DWD,DWS的数据保存在kafka中

    • DIM和ADS数据保存在mysql或者hbase中

    • kafka中的数据默认保存7天,但是我们在项目中一般设置为3天

      同时每个分区默认设置两个副本。mysql中的数据量最好不要超过500万条

  4. 数据处理:使用flink sql处理,注意流表和维表关联的问题

  5. 数据应用 BI api:需要使用spring boot 代码对应一个表

3. 功能模块

  • ODS:

    使用canal采集数据,在flink sql中建表,一个topic对应一个表

  • DWD:

    • 在dwd主要涉及到建模
    • 数据仓库建模使用的是星形建模
    • 事实表建模流程:
      1. 选择业务过程,选择公司的业务线创建表
      2. 声明粒度:确定每一行数据的函数,是每次还是每天,每月
      3. 确定维度:维度是后面进行指标计算的分组条件,比如时间维度,地区维度,用户维度,商品维度
      4. 确定实时:金额,数量
      5. 冗余维度:为了减少关联可以在事实表中将维度表中的信息冗余进来,比如将用户的年龄,籍贯等信息融入到事实表中
    • 支付事实表
    • 订单事实表
  • DIM:维度建模

    1. 维度退化:将多个维度退化成一个维度表
    2. 确定主维度
    3. 确定维度信息
  • ADS:

    1. 基于dwd层或者dws层的事实表统计指标
    2. 将统计好的指标统计到mysql中
    3. 供上层应用使用
    4. 支付类指标
    5. 订单类

标签:总结,数据仓库,离线,实时,mysql,维度,数据
From: https://www.cnblogs.com/atao-BigData/p/16586780.html

相关文章

  • 1007 公交线路 dijkstra板子+总结
     链接:https://ac.nowcoder.com/acm/contest/26077/1007来源:牛客网题目描述P市有n个公交站,之间连接着m条道路。P市计划新开设一条公交线路,该......
  • 10天了,总结一下我好像什么也没有做。
    忽然发现我写博客都写了10天了,我这10天回过头来看看啥也没有做啊。 以后我每天都做了什么应该也记录一下,看看我是否是真正的成长了 我得赶快崛起,离开lm这个傻逼、浪......
  • 第9天,8-14这几天开始玩游戏了,应该总结一下
    首先,我肯定错了。我想深究一下这里面错误的原因,那么可以不可以以后都不再犯?我觉得可以不再犯,但是能不能达到举一反三的地步? 我觉得理论上是可以的,但是现实中比较难,因为......
  • 【博学谷学习记录】超强总结,用心分享|狂野架构师IO常用知识点三
    目录BIO模型同步阻塞IONIO模型同步非阻塞IOAIO模型异步非阻塞IOReactor模型NIO下单Reactor-单线程NIO下单Reactor-多线程主从Reactor-多线程主从Reactor工作模式主从React......
  • 3、构建实时数据仓库-ods和dim层构建
    3、构建实时数据仓库项目平台搭建架构及其总体流程1、flink整合hive的catalog因为本项目中的对应kafka中的表都存在hive的元数据库中,所以需要创建一个hive的catalo......
  • Flink总结
    Flink总结从头儿过一遍书,做了些摘要。SQL那里还没仔细复习。一、初始Flink核心目标:数据流上的有状态计算具体定位:以内存执行速度(速度快)和任意规模来执行计算(可扩......
  • Ansible语法学习与总结
    【强烈推荐】Ansible自动化运维入门实战点击关注......
  • Linux网络命令总结
    我常用Linux网络命令总结回顾原创 入门小站 入门小站 2022-07-3022:00 发表于湖北收录于合集#Linux478个#网络命令1个哥常用的几个网络命令ip命令if......
  • 周总结
    UDP协议#serverimportsocketserver=socket.socket(type=socket.SOCK_DGRAM)server.bind(('127.0.0.1',8080))msg,address=server.recvfrom(1024)print('msg......
  • python九周周末总结
    python九周周末总结UDP协议udp协议的交互模式服务端不需要考虑客户端是否退出,你发多少那么他就会按照你发的东西直接去传输给客户端不存在黏包现象服务端:importsocket......