离线数仓中的同步策略、Flume、Kafka

离线数仓当中Sqoop采集MySQL中数据同步策略有:增量全量新增及变化特殊;Sqoop怎么处理?
where判断日期:新增:where 创建时间 = 当天;全量:where 1 = 1;新增及变化:创建时间 or 修改时间等于今天;特殊只导入一次

Flume
TailDirSource:
优点:断点续传,监控多目录多文件,实时监控
缺点:当文件更名之后会更新读取该文件造成重复
注意:
1.要使用不更名打印日志框架(例如:logback)
hive.log-2022-01-02
hive.log-2022-02-03(log4j)日志名会滚动更新
2.修改源码,让TailDirSource判断文件时只看iNode值

KafkaChannel:
优点:将数据写入Kafka,省去一层sink
KafkaChannel:既可以时生产者也可以是消费者
用法:
1.Source-KafkaChannel-Sink
2.Source-KafkChannel(将数据写入Kafka)
3.KafkaChannel-Sink(将Kafka数据写入Sink)

Flume中的HDFSSink如何防止产生过多小文件?
可以按照时间,事件,文件大小滚动文件,同时可以启动文件压缩

Kafka学习线分析:
Producer:
发送流程、ACK、拦截器、序列化器、分区器、sender与main线程、幂等性、事务
分区规则:
有指定分区发往指定分区、没有指定分区根据key值Hash、既没有指定分区也没有Key的时候整体采用轮询规则(很小一段时间内采用粘性分区)

Broker
Topic:
副本:高可用、LEO、HW
分区:站在读和写角度有利于高并发、站在集群角度负载均衡防止热点

Consumer
分区分配规则
offset保存,默认保存在_consumer_offsets主题;其他:手动维护Offset(保存在Mysql)保存数据&保存offset写到一个事务做到精准一次消费
先保存数据后保存offset会导致重复数据(下游可以具有幂等性 + 去重达到精准一次消费)
先保存offset后保存数据会导致丢失数据

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值