最新 最热

从一个诡异的 Bug 来看 Flink 快照和状态读取的流程

流计算 Oceanus 平台支持以 SQL 的方式提交作业,独享集群支持最新的 Flink 1.10 提供的新版 Blink Planner 语法。有一位客户写了一段代码,用到了 SQL 的 TopN 功能,语句类似于:...

2021-09-29
1

如何应对飞速增长的状态?Flink State TTL 概述

在流计算作业中,经常会遇到一些状态数不断累积,导致状态量越来越大的情形。例如,作业中定义了超长的时间窗口,或者在动态表上应用了无限范围的 GROUP BY 语句,以及执行了没有时间窗口限制的双流 JOIN 等等操作。对于这些情...

2021-09-29
1

Flink SQL 状态越来越多?Idle State Retention Time 特性概览

在上一篇文章中,介绍了 Flink State TTL 机制,这项机制对于应对通用的状态暴增特别有效。然而,这个特性也有其缺陷,例如不能保证一定可以及时清理掉失效的状态,以及目前仅支持 Processing Time 时间模式等等,另外对于旧版本...

2021-09-29
1

Spill-able Heap Keyed State Backend 设计概览

Flink 在流式数据处理方面的能力非常强大,尤其值得一提的是它对带状态的流计算作业的支持度。它支持 Operator 和 Keyed 两类状态存储结构,其中后者因为用量大、用法多样,Flink 在这方面做了很多的支持:提供了纯粹基于堆...

2021-09-29
1

主用户为子用户添加流计算 Oceanus 授权策略指南

流计算 Oceanus 的云 API 已经启用 CAM 服务级鉴权。默认情况下,所有主账号(也成为主用户)均有 QcloudOceanusFullAccess 策略,可以不用任何设置,正常使用流计算服务。...

2021-09-29
1

Flink on RocksDB 参数调优指南

对于需要保存超大状态(远超于内存容量)的流计算场景来说,目前 RocksDB [1] 是 Flink 平台上官方实现的唯一选择。业界也有使用 Redis 等其他服务作为状态后端的方案,但终究不够成熟,且已被社区否决 [2]....

2021-09-29
1

一次 Javac 编译速度缓慢的 JDK Bug 定位

Flink 提供了从 Tuple0 ~ Tuple25 的 Tuple 类供用户选择,顾名思义,每个 Tuple 对象分别可以存储 0 个 ~ 25 个任意类型的字段,例如图 1 展示了 Tuple2 的类定义。由于腾讯云 Oceanus 流计算的客户业务场景较为复杂,需要...

2021-09-29
1

Spillable StateBackend 之 HeapStatusMonitor 解析

Flink 社区的 Spillable Backend 特性,社区经过了大半年的开发,目前已经放出了预览版可供体验。

2021-09-29
1

Spillable StateBackend 之 SpillAndLoadManager 源码注解

在前文中,我们介绍了 Spillable Backend 及其 HeapStatusMonitor 的工作原理和不足。今天我们来看一下 Spillable Backend 的另一个核心组件:SpillAndLoadManager。如果说 HeapStatusMonitor 是测量系统负载的信号灯,那...

2021-09-29
1

Flink SQL 自定义函数指南 - 以读取 GBK 编码的数据库为例

近期我们遇到了一位客户提出的问题:MySQL 建表时,数据库表定义的字符集是 latin1,里面的数据是以 GBK 编码的方式写入的。当 Flink 的 JDBC Connector 在读取此维表时,输出数据的中文出现了乱码现象,如下图:...

2021-09-29
1