【数仓】FLink+CK

1.项目分层

  • ODS:原始数据,包含日志和业务数据
  • DWD:根据数据对象为单位进行分流。比如订单、页面访问等。
  • DIM:维度数据
  • DWM:对于部分数据对象进行进一步加工,比如独立访问、跳出行为,也可以和维度进行关联,形成宽表,依旧是明细数据
  • DWS:根据某个维度将多个实时数据轻度聚合,形成主题宽表
  • ADS:把ClickHouse中的数据根据可视化需求进行筛选聚合
(1).DWD

行为数据(kafka)。
1.过滤脏数据 --> 侧输出流 统计脏数据率
2.新老用户校验 -->前台校验不准,后台在进行逻辑分析
3.分流 --> 侧输出流 页面、启动、曝光、动作、错误
4.写入kafka

(2).DWD->DIM

1.过滤脏数据 -->删除数据的处理

2.读取配置表创建广播流

3.连接主流和广播流并处理
1).广播流数据:
a.解析数据
b.Phoenix建表
c.写入广播状态
2).主流数据:
a.读取字段
b.过滤字段
c.分流(添加SinkTable字段)

4.提取Kafka和Hbase流分别对应的位置

5.Hbase流:自定义Sink

6.Kafka流:自定义序列化方式

2.离线数仓架构

在这里插入图片描述
Sqoop导入数据的方式:

  • 全量 where 1=1
  • 增量 where 创建时间=当天
  • 新增及变化 where 创建时间=当天 OR 操作时间=当天
  • 特殊:只导入一次

FLUME:

  • TailDirSource:
    • 优点:断点续传、多目录多文件,实时监控;
    • 缺点:文件更名后重新同步导致数据重复
    • 注意:要使用不更名的日志打印框架(logback);修改源码,让TailDirSource只监视iNode值
  • KafkaChanal:
    • 优点:将数据写入kafka整了一层sink;
    • 用法:
      • Source+KafkaChanal+Sink
      • Source+KafkaChanal
      • KafkaChanal+Sink

3.实时数仓架构

在这里插入图片描述

4.CDC类型

在这里插入图片描述
canal、maxwell、flinkcdc对比:

canalmaxwellflinkcdc
一条insert/update/delete处理多条数据放在一起展示(不方便)分开展示分开展示
初始化有(单表)有(多库多表同时做)
断点续传本地磁盘MySQLCK
封装格式JSON(C/S支持自定义)JSON自定义
高可用集群(ZK)运行集群高可用

5.flinkcdc

官网:
https://github.com/ververica/flink-cdc-connectors

FlinkCDC同flink的版本关联:
https://ververica.github.io/flink-cdc-connectors/master/content/about.html#supported-connectors

6.业务数据采集

FlinkCDC:

  • DataStream:
    • 优点:多库多表
    • 缺点 :需要自定义反序列化器(灵活)
  • FlinkSQL
    • 优点:不需要自定义反序列化器
    • 缺点 :单表

7.实现动态分流

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值