自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(181)
  • 收藏
  • 关注

原创 3. 组件协作——策略模式

​ 定义一系列算法,把它们一个个封装起来,并且使它们可互相替换(变化该模式使得算法可独立于使用它的客户程序(稳定)而变化(扩展,子类化)。

2023-08-30 18:46:38 50

原创 hive写动态分区加distribute by

在程序的最后,按照动态分区的字段在程序最后加一个distribute by,在本例中,就是加distribute by type, salt,此时就可以保证相同的type 和 salt的数据,会在同一个task中执行,最后输出的文件个数也是在可接受范围内的,输出文件个数为 type * salt * ceil(file_size / 256m),在本例中,因为每个文件都小于256m,所以生成的文件个数就是4 * 512 * 1 = 2048。

2023-08-29 16:18:43 344

原创 14.Flink双流Join——DataStream

本文介绍了基于flink datastream的双流join

2023-08-27 21:46:24 369 2

原创 17.Flink双流Join——SQL

本文介绍了基于flink sql的双流join

2023-08-27 21:11:39 589

原创 16.Flink Table——时态表

本文介绍了flink时态表

2023-08-27 21:10:59 133

原创 15.Flink Table——动态表

本文介绍了flink动态表

2023-08-27 21:09:54 252

原创 14.Flink双流Join——DataStream

本文介绍了基于flink datastream的双流join

2023-08-27 21:01:23 282

原创 Flink DataStream自定义实现IntervalLeftOuterJoin

因为Flink DataStream内置的Join操作,只有Inner Join,而对于Outer Join支持的比较少,Window Outer Join我们可以用cogroup来实现,而Interval Outer Join相对复杂,所以自己参考Flink IntervalJoinOperator实现了一个IntervalLeftOuterJoinFunction

2023-08-01 22:29:43 163

原创 7. Watermark

如上述案例:如果把Watermark的延迟调为 3,那么当 1 到达时,Watermark 为 -2,4到达时,Watermark 为 1(表示 1 以前的数据都到达了),5 到达时,Watermark 为 2(表示 2 以前的数据都到达了),知道 Event Time 为 8 的记录到达时,才表示 5 以前的数据都到达,关闭第一个窗口 [1, 5)。根据第一条定义,Wartermark 衡量 Event Time 的进展,即是可以起到 “调慢事件时间” 的作用,让程序误以为没有到达触发的事件。

2023-07-23 21:47:08 169

原创 12.状态阔缩容

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WemjYBAD-1690106129241)(https://raw.githubusercontent.com/MingRongXi/my-study-picture/master/%E7%9B%B4%E6%8E%A5%E7%94%A8hash%20key%E7%9A%84%E9%98%94%E7%BC%A9%E5%AE%B9.png)]CheckPoint在做快照时,会把算子的状态存储到分布式存储系统上,如HDFS。

2023-07-23 17:56:40 129

原创 数据倾斜总结

本文介绍了hive数据倾斜的常见case及优化方案

2023-07-23 16:01:12 126

原创 如何评价数仓建设的质量

数据对业务分析的覆盖度如何。指标是否定义清晰,口径统一。如何评价数仓建设的质量?表说明是否清晰,易于使用。对决策支持的贡献度如何。二、从数据的角度出发。表用起来查询速度怎样。

2023-07-04 11:55:07 91

原创 hive cbo优化引起的bug

有一个任务,在混部集群默认开启,导致任务reduce个数太小,只启了2个reducetask,而maptask中读取的数据又很大,使得大量数据都写到这2个reduce task中,任务最终失败,在关闭这个参数后,可以启动1100个reducetask。对比执行计划,在开启这个参数后,hive 认为只会读取50000多行数据,而实际上是几十亿。hive.stats.fetch.column.stats导致reduce个数划分太小。

2023-05-19 18:51:22 222

原创 hive join

​ 在连接的每个 map/reduce 阶段,序列中的最后一个表通过 reducer 流式传输(这里的流式传输指的是IO流,reducer一条一条读数据),而其他表则被缓存到内存中。因此,通过把最大的表放在序列中的最后,有助于减少reducer中用于缓冲连接键的特定值的行所需的内存。因此在使用 inner join 的时候,要把大表放在后面例如:​ 三个表的join被合成一个map/reduce job,表 a 和 b 的一个特定的key对应的values被缓存在 reducer 的内存中(这里可能有mr

2023-05-19 18:42:04 75

原创 13. 对象性能——享元模式

​ 用共享技术有效地支持大量细粒度的对象。​ 享元模式的定义为我们提出了两个要求:细粒度的对象和共享对象。要求细粒度对象,那么不可避免地使得对象数量多且性质相近,那我们就将这些对象的信 息分为两个部分:内部状态和外部状态。内部状态​ 内部状态时对象可共享出来的信息,存储在享元对象的内部并且不会碎环境改变而改变,如我们例子中的char c,他们可以作为一个对象的动态附加信息,不必直接存储在某个对象中,属于可以共享的部分。外部状态。

2023-04-13 19:05:32 92

原创 12 对象性能——单例模式

​ 保证一个类仅有一个实例,并提供一个该实例全局访问点。

2023-04-13 18:57:49 91

原创 11. 对象创建——Builder模式

PersonDirector类就可以根据用户的选择来建造小人了,而在建造的过程在指挥者这里完成了,用户就不需要知道了,而且,由于这个过程每一步都是一定要做的,那就不会少让少画一只手、少画一条腿的问题出现了。像这种因为粗心而导致程序异常在平时开发中还是比较常见的,比如我们在程序里需要画100个不同的小人,在高矮胖瘦上有细微的差别,我们在每次创建小人时都用上述的代码,这样是很容易有遗漏。**主要解决:**主要解决在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;

2023-04-13 18:56:37 522

原创 10. 对象创建——原型模式

原型模式是用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。

2023-04-13 18:54:31 64

原创 9. 对象创建——抽象工厂

​ 提供一个接口,让该接口负责创建一系列“相关或者相互依赖的对象”,无需指定它们的具体类。

2023-04-13 18:53:16 52

原创 8. 对象创建——工厂方法

​ 定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法模式使得一个类的实例化延迟到子类。

2023-04-13 18:52:11 86

原创 7. 对象创建——简单工厂

依据上面的实现方法,我们可以直接在Operation里新添加一个switch分支,但是这样导致的问题是如果频繁地添加运算符,就会频繁地修改Operation类,很容易在添加代码的时候将原有的代码改变。**分析:**其实,上面的实现方式违反了开放封闭原则,我们要使用一种结构,使得可以在不修改原有代码的基础上增加功能。此时,对于客户端来说,业务层使用的是什么计算逻辑是无感知的,就可以动态的添加运算符了,这就是简单工厂模式。**需求变更:**此时,我们需要新添加一个运算符,取余运算。

2023-04-13 18:51:10 71

原创 6. 单一职责——桥模式

桥模式

2023-01-28 20:43:48 83

原创 5. 单一职责——装饰者模式

装饰者模式

2023-01-28 20:42:16 119

原创 4. 组件协作——观察者模式

观察者模式

2023-01-28 20:38:18 111

原创 2. 组件协作——模版方法模式

模版方法模式

2023-01-17 16:42:38 79

原创 1. 设计模式原则

设计模式八大原则

2023-01-17 16:41:23 113

原创 0. 设计模式介绍

设计模式介绍

2023-01-17 16:40:43 71

原创 3. Scala特性

本文介绍了scala语言的特性

2023-01-17 16:31:20 220

原创 2. Scala集合

本文介绍了scala集合

2023-01-17 15:28:25 460

原创 1. Scala基础

本文介绍了Scala基础,包括数据类型和方法

2023-01-17 15:21:09 123

原创 15. 线程安全和锁优化

本文介绍了线程安全和锁优化

2023-01-17 11:57:20 225

原创 14. Java内存模型与线程

本章介绍了Java内存模型

2023-01-17 11:48:11 197

原创 13. 后端编译与优化

后端编译与优化

2023-01-16 19:00:04 206

原创 11. 虚拟机字节码执行引擎

本文介绍了虚拟机字节码执行引擎

2023-01-16 18:54:43 190

原创 10. 类加载机制

本位介绍了类的加载机制

2023-01-16 18:47:37 1055

原创 9. 垃圾收集器与内存分配策略

垃圾回收学习笔记

2023-01-15 09:35:30 202

原创 hive在IDEA中debug

本文介绍了如何在本地利用idea做hive的debug

2023-01-15 09:23:02 479

原创 向量化执行

本文介绍了CPU的向量化执行的优点,以及在Hive中的应用

2023-01-15 09:14:45 319

原创 parquet

本文介绍了parquet的设计与实现,以及和orc的对比

2023-01-15 09:08:17 728

原创 rcfile和orcfile

本文介绍了行式存储和列式存储的区别,以及RC File的实现及其优缺点,最后介绍了ORC File的实现

2023-01-15 08:41:56 492

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除