置顶文章

152k 2:18

https://leetcode-cn.com/problemset/database/ 题目都是 leetcode 上了可以点击题目会有相应的链接 由于个人比较喜欢用开窗函数,所以都优先用了开窗 ,当然这些并不一定都是最优解,答案仅供参考 每道题后面都应相应的难度等级,如果没时间做的话 可以在 leetcode 按出题频率刷题 我是安顺序刷的题,后续还会继续更新 祝大家面试取得好的成绩 # 175. 组合两个表 难度简单 SQL 架构 表 1: Person +-------------+---------+ | 列名 | 类型 | +-------------+---------+ |...

精选分类

文章列表

8.5k 8 分钟

# 实战案例介绍 本案例将实现一个 “实时热门商品” 的需求,我们可以将 “实时热门商品” 翻译成程序员更好理解的需求:每隔 5 分钟输出最近一小时内点击量最多的前 N 个商品。将这个需求进行分解我们大概要做这么几件事情: 抽取出业务时间戳,告诉 Flink 框架基于业务时间做窗口 过滤出点击行为数据 按一小时的窗口大小,每 5 分钟统计一次,做滑动窗口聚合(Sliding Window) 按每个窗口聚合,输出每个窗口中点击量前 N 名的商品 #...
1.7k 2 分钟

检查点(Checkpoint)是使 Apache Flink 能从故障恢复的一种内部机制。检查点是 Flink 应用状态的一个一致性副本,包括了输入的读取位点。在发生故障时,Flink 通过从检查点加载应用程序状态来恢复,并从恢复的读取位点继续处理,就好像什么事情都没发生一样。你可以把检查点想象成电脑游戏的存档一样。如果你在游戏中发生了什么事情,你可以随时读档重来一次。 检查点使得 Apache Flink 具有容错能力,并确保了即时发生故障也能保证流应用程序的语义。检查点是以固定的间隔来触发的,该间隔可以在应用中配置。 Apache Flink 中实现的 Kafka...
6.3k 6 分钟

衡量指标 总体来讲,关联维表有三个基础的方式:实时数据库查找关联(Per-Record Reference Data Lookup)、预加载维表关联(Pre-Loading of Reference Data)和维表变更日志关联(Reference Data Change Stream),而根据实现上的优化可以衍生出多种关联方式,且这些优化还可以灵活组合产生不同效果(不过为了简单性这里不讨论同时应用多种优化的实现方式)。对于不同的关联方式,我们可以从以下 7 个关键指标来衡量(每个指标的得分将以 1-5...
3.8k 3 分钟

# 背景 Async I/O 是阿里巴巴贡献给社区的一个呼声非常高的特性,于 1.2 版本引入。主要目的是为了解决与外部系统交互时网络延迟成为了系统瓶颈的问题。 流计算系统中经常需要与外部系统进行交互,比如需要查询外部数据库以关联上用户的额外信息。通常,我们的实现方式是向数据库发送用户 a 的查询请求,然后等待结果返回,在这之前,我们无法发送用户 b 的查询请求。这是一种同步访问的模式,如下图左边所示。 图中棕色的长条表示等待时间,可以发现网络等待时间极大地阻碍了吞吐和延迟。为了解决同步访问的问题,异步模式可以并发地处理多个请求和回复。也就是说,你可以连续地向数据库发送用户 a 、 b 、...
5k 5 分钟

# 架构 要了解一个系统,一般都是从架构开始。我们关心的问题是:系统部署成功后各个节点都启动了哪些服务,各个服务之间又是怎么交互和协调的。下方是 Flink 集群启动后架构图。 当 Flink 集群启动后,首先会启动一个 JobManger 和一个或多个的 TaskManager。由 Client 提交任务给 JobManager,JobManager 再调度任务到各个 TaskManager 去执行,然后 TaskManager 将心跳和统计信息汇报给 JobManager。TaskManager 之间以流的形式进行数据的传输。上述三者均为独立的 JVM 进程。 Client 为提交...
8.6k 8 分钟

Flink 认为 Batch 是 Streaming 的一个特例,所以 Flink 底层引擎是一个流式引擎,在上面实现了流处理和批处理。而窗口(window)就是从 Streaming 到 Batch 的一个桥梁。Flink 提供了非常完善的窗口机制,这是 Flink 最大的亮点之一(其他的亮点包括消息乱序处理,和 checkpoint 机制)。这里介绍流式处理中的窗口概念,介绍 Flink 内建的一些窗口和 Window API,最后讨论下窗口在底层是如何实现的。 # 什么是...
1.4k 1 分钟

# 1. 计算平台同时在线的主播人数最大值为多少,以及出现高峰期的时间段 # 主播表 create table zhubo( id int, stt string, edt string) row format delimited fields terminated by '\t';# 数据 insert overwrite table zhubo VALUES(1001,'2021-09-04 12:12:12','2021-09-04 20:12:12'),(1002,'2021-09-04...
808 1 分钟

# Postgresql # 表的继承 # 1. 继承 第一张表create table cities(-- 父表 name text, population float, altitude int )第二张表create table capital(-- 子表 state char(2))inherits(cities)插入数据insert into cities values('Las Vegas',1.53,2174)insert into cities values('Marposa',3.30,1953)insert into capital...