大数据学习大杂烩

编程入门 行业动态 更新时间:2024-10-20 13:28:52

大数据学习<a href=https://www.elefans.com/category/jswz/34/1767404.html style=大杂烩"/>

大数据学习大杂烩

  1. MapReduce的任务切片机制
  2. Redis的五种数据结构 String List Hash Set Zset
  3. Redis的缓存雪崩,缓存穿透,缓存击穿
  4. 大数据如何保证数据的准确性
  5. 新增用户数和活跃用户数的区别
#每日新增用户
select log_date,count(uid)     
from (
select uid,min(login_date) log_date
from tb 
group by uid
) t1 
group by log_date#活跃用户
select login_date,count(distinct uid)
from tb 
group by login_date
  •   flink常用的算子:
map(MapFunction<T, R> mapper)
flatMap(FlatMapFunction<T, R> flatMapper)
keyBy(KeySelector<T, K> key)
broadcast(final MapStateDescriptor<?, ?>... broadcastStateDescriptors)
rebalance()
rescale()
process(ProcessFunction<T, R> processFunction)
filter(FilterFunction<T> filter)
coGroup(DataStream<T2> otherStream)
join(DataStream<T2> otherStream)
union(DataStream<T>... streams)
connect(DataStream<R> dataStream)
  • Flink中IntervalJoin的实现 ​​​​​​Flink SQL 知其所以然(五)| 流 join 很难嘛?(下)_科技通讯_闲暇巴​​​​​​
  •  Flink常用的状态后端:MemoryStateBackend、FsStateBackend、RocksDBStateBackend  3种Flink State Backend | 你该用哪个? - 知乎
  • 反射的四种实现方式:
//1
ClassLoader loader = ClassLoader loader=Thread.currentThread().getContextClassLoader();
Class clazz = loader.loadClass(类的全路径)
//2
类 类实例 = new  类()
Class clazz = 类实例.getClass()
//3
类.class()
//4
Class.forname(类全路径)
  •  Java四种引用
  1. 强引用,内若不够,直接抛异常 Obj obj = new Obj()
  2. 软引用,内存不足时,才会回收 SoftReference<Obj> sr = new SoftReference<Obj>(obj);
  3. 弱引用,JVM进行垃圾回收时,回收 WeakReference<Obj> sr = new WeakReference<Obj>(obj);
  4. 虚引用,任何时候都有可能被回收 PhantomReference<String> pr = new PhantomReference<String>();
  • Flink的aggregateFunction 和reduceFunction的区别

aggregateFunction函数需要实现4个方法,分别是accumulator(),add(),getResult(),merge()函数Flink中Window详解之Window的聚合函数AggregateFunction_乀曼巴丶小飞侠的博客-CSDN博客

reduceFunction函数:按照key进行分组并聚合

processFunction:重写open()方法和processElement方法

 flinkcdc使用:MySQL CDC 连接器 — CDC Connectors for Apache Flink® documentation

 flink保姆级教程先码后看:Flink保姆级教程,超全五万字,学习与面试收藏这一篇就够了_数据人生coding的博客-CSDN博客_flink 学习

数据倾斜例子1:公司商品大促期间,某个店铺单品PV量达几千万,店铺pv量达上千万以上,根据商品和店铺PV量计算IPV量时,发生数据倾斜。
解决办法:配置下面的参数与SQL一起提交,数据倾斜时负载均衡。
数据倾斜例子2:用户登录表中,有大量未登录用户访问记录(user_id)字段为null,如果直接和用户表进行关联对的话,会产生倾斜。
可以通过判断user_id为null,可通过连接随机数。
数据倾斜例子3:count(distinct)数据倾斜,统计一类商品访问的uv,可以先按照user_id和sku_code进行分组,然后再分组聚合。

统计指标:
1.1/7/30日消费金额top100
2.本周消费金额超过100元的用户数,分析筛选高价值用户
3.本月每类商品用户平均值
4.统计前一天各类商品销售额
5.1/7/30日访问人数
6.各类商品销售的金额
7.最近30日用户注册数
8.各省份最近1日下单人数
9.昨日加购物车今日下单人数
10.1/7/30日活跃用户数


数据质量:完整性,准确性,及时性,一致性

唯一性判断:保证主键或某些字段的唯一性,防止数据重复导致和其他表join之后数据翻倍,导致最终统计数据偏大
通过
select
count(*),
count(distinct order_no) 
from ods.xx_order;
count(order_no) count(distinct order_no)若相等,则说明order_no值是表内唯一的,否则说明order_no表内不唯一,表数据存在问题

非空判断:保证重要字段非空
select 
count(*)
from ods.xx_order where order_no is null;

枚举类型判断:保证枚举字段都在预期范围之内,防止业务脏数据,导致最终统计结果出现遗漏/多余的数据类型
比如判断ods层订单表中shop_type字段中所有枚举类型是否符合预期,
select shop_type from ods.xx_order group by shop_type

数据有效性判断:判断数据格式是否满足预期,防止字段的数据格式不正确导致数据统计的错误和缺失。常见的日期格式yyyymmdd
完整性策略适合ods层,从源头发现并解决数据不合理问题,避免脏数据进入下游,数据污染扩大

数据准确性
    自身检查:检查数值类指标大于0,比例类指标介于0-1之间
    select count(pay_price) from dw.dws_xx_order  where par =20211025 and pay_price < 0;
    
    表内数据横向对比:表内数据恒星对比:针对任何一家店铺的任意一款商品,都满足订单数>=下单人数
    select kdt_id,goods_id,count(order_no),count(distinct buyer_id) from dw.dws_xx_order where par='20210125'
    group by kdt_id,goods_id having count(order_no) < count(distinct buyer_id);
    
    code review
        1) 关联关系&过滤条件
        关联表适用outer join 还是 join ,要看数据是否要做过滤
        关联关系on字句,左右值类型是否一致
        关联关系如果是1:1 两张表的关联键是否唯一,如果不唯一,会产生笛卡尔积,导致数据膨胀
        
        2)指标的统计口径处理
        可加累计指标:支付金额,浏览量
        不可加指标:访客数
        
        3)insert插入数据,是否使用overwrite,没使用overwtite,导致数据翻倍
            插入的顺序和被插入的顺序是否完全一致,不一致,导致数据对应不上
            
    关注被除数是0的特殊场景,前端统一展示的是"-"

  •  flink的重启策略:Flink 重启策略_Jeremy_Lee123的博客-CSDN博客_flink怎么重启
  •  flink组成JobManager,TaskManager,Client,客户端提交Job到JobManager,JobManager将任务进行拆分,将任务部署到TaskManager进行执行,JobManager主要负责接受客户端发送的Job,调度 Job,协调 checkpoints,故障恢复。TaskManager负责具体的Task的执行,一个TaskManger可以由多个Task Slot组成,一个TaskSlot可以执行一个任务链。任务并行度=TM个数*每一个TM的slot数 Flink分布式运行环境之作业链和资源组_Jeremy_Lee123的博客-CSDN博客
  • TaskManager并行度设置,taskmanager.numberOfTaskSlots 默认值为1,可以通过如下方式修改并行度【17】Flink 之 并行度(Parallel)及设置_大小宝的博客-CSDN博客_flink的并行度
  1. Operator Level(算子层次)
  2. Execution Environment Level(执行环境层次)
  3. Client Level(客户端层次)
  4. System Level(系统层次)
  • flink反压:影响checkpoint的时长和state的大小

前者是因为 checkpoint barrier 是不会越过普通数据的,数据处理被阻塞也会导致 checkpoint barrier 流经整个数据管道的时长变长,因而 checkpoint 总体时间(End to End Duration)变长。

意思是反压导致数据处理能力变慢,导致在规定的时间内checkpoint没有完成,checkpoint失败。

后者是因为为保证 EOS(Exactly-Once-Semantics,准确一次),对于有两个以上输入管道的 Operator,checkpoint barrier 需要对齐(Alignment),接受到较快的输入管道的 barrier 后,它后面数据会被缓存起来但不处理,直到较慢的输入管道的 barrier 也到达,这些被缓存的数据会被放到state 里面,导致 checkpoint 变大。

可以通过如下两种方式来监控

  1. 通过 Flink Web UI 自带的反压监控面板;
  2. 通过 Flink Task Metrics。

参考:如何分析及处理 Flink 反压? - 知乎

  • Flink中process函数的使用:
    process(ProcessFunction<T, R> processFunction),重写里面的processElement方法
    public abstract void processElement(I value, Context ctx, Collector<O> out) throws Exception;
  •  Flink大状态的调优:Flink大状态与Checkpint调优 - 腾讯云开发者社区-腾讯云
  •  Flink的两阶段提交是怎么回事:
  •  实时数仓建设好文参考:20000字详解大厂实时数仓建设(好文收藏) - 腾讯云开发者社区-腾讯云
  • FlinkRocksDB的介绍:「Flink」RocksDB介绍以及Flink对RocksDB的支持_哥伦布112的博客-CSDN博客_flink rocksdb 需要安装吗
  • Flink的任务失败重启策略:RestartStrategies.fixedDelayRestart,固定间隔延迟重启策略,
    RestartStrategies.failureRateRestart,故障率重启策略,RestartStrategies.fallBackRestart,默认重启策略,RestartStrategies.exponentialDelayRestart,指数延迟重启策略尝试无限重启作业,将延迟增加到最大延迟,RestartStrategies.noRestart,无重启策略。参考文章和Flink1.13源代码
  • Flink的内存模型,process内存=flink内存+Jvm元空间128M+JVM执行开销,flink内存包括堆内内存和堆外内存,堆内内存由框架内存+Task堆内内存   堆外内存由 框架内存+Task堆外内存+网络缓冲(flink内存*0.1) 托管内存=flink内存*0.4 FLINK内存模型
  • Flink的分区策略
  • Flink状态State管理、后端存储、Checkpoint
  • Flink的分区策略:RescalePartitioner BinaryHashPartitioner RebalancePartitioner KeyGroupStreamPartitioner GlobalPartitioner ForwardPartitioner ShufflePartitioner BroadcasePartitioner 自定义Partitioner集成StreamPartitioner  
  • Flink常见的面试题
  • ​​​​​​Hive on Spark 和Spark on Hive的区别
  • Hbase面试题
  • Hive的优化 
  • kafka为什么吞吐量大速度快​​​​​​​
  • spark的内存模型 ​​​​​​​
  • Flink sql的优化​​​
  • ​​​​Flink的数据倾斜​​​​​​​

​​​​​​​

更多推荐

大数据学习大杂烩

本文发布于:2024-03-11 22:31:50,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1730070.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:大杂烩   数据

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!