flink实时数仓(一)之数据采集

#### 1.1    普通实时计算与实时数仓比较
普通的实时计算优先考虑时效性,所以从数据源采集经过实时计算直接得到结果。如此做时效性更好,但是弊端是由于计算过程中的中间结果没有沉淀下来,所以当面对大量实时需求的时候,计算的复用性较差,开发成本随着需求增加直线上升。

实时数仓基于一定的数据仓库理念,对数据处理流程进行规划、分层,目的是提高数据的复用性。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210304222410187.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JpZ2RhdGFfd2FuZ3poZQ==,size_16,color_FFFFFF,t_70)
#### 1.2    实时电商数仓,项目分为以下几层

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

#### 实时需求应用场景

 - 实时大屏
 - 实时报表
 - 实时推荐
 - 实时预警
 #### 5.2.1    MySQL主从复制过程
 - Master主库将改变记录,写到二进制日志(binary log)中
 - Slave从库向mysql master发送dump协议,将master主库的binary log events拷贝到它的中继日志(relay log);
 - Slave从库读取并重做中继日志中的事件,将改变的数据同步到自己的数据库。
业务数据库数据采集
 ##### - cannal
**工作原理:** canal是用java开发的基于数据库增量日志解析,提供增量数据订阅&消费的中间件。目前,canal主要支持了MySQL的binlog解析,解析完成后才利用canal client来处理获得的相关数据。
 ##### - maxwell
**工作原理:** 把自己伪装成slave,假装从master复制数据
 ##### - debezium
 
 ##### - flinkx
 
### Maxwell与Cannal工具对比
-     Maxwell 没有 Canal那种server+client模式,只有一个server把数据发送到消息队列或redis。
-     Maxwell 有一个亮点功能,就是Canal只能抓取最新数据,对已存在的历史数据没有办法处理。而Maxwell有一个bootstrap功能,可以直接引导出完整的历史数据用于初始化,非常好用。
-     Maxwell不能直接支持HA,但是它支持断点还原,即错误解决后重启继续上次点儿读取数据。
-     Maxwell只支持json格式,而Canal如果用Server+client模式的话,可以自定义格式
-     Maxwell比Canal更加轻量级。
- 当原始数据是数字类型时,maxwell会尊重原始数据的类型不增加双引,变为字符串。canal一律转换为字符串。
- canal数据中会带入表结构。maxwell更简洁。

**没写完(待补充)**

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值