- 博客(9)
- 收藏
- 关注
原创 flink sql 新增函数
修复flink 源码增加函数修改 flink-table-common项目org.apache.flink.table.functions.BuiltInFunctionDefinitions 类增加一个成员: public static final BuiltInFunctionDefinition NVL = new BuiltInFunctionDefinition.Builder() .name("NVL") .kind(SCALAR) .outputTypeStr
2021-02-22 09:20:19
1646
原创 RocksDB 状态清理源码分析
rocksdb 状态创建流程在算子初始化的时候,获取状态将调用,org.apache.flink.runtime.state.AbstractKeyedStateBackend.getOrCreateKeyedState public <N, S extends State, V> S getOrCreateKeyedState( final TypeSerializer<N> namespaceSerializer, StateDescriptor<S, V&
2021-02-22 09:18:58
938
原创 flink checkpoint元数据源码分析
OperatorStateOperatorState目前只有一种实现:DefaultOperatorStateBackend。无论哪种stateBackend,OperatorState都是保存在内存中的。org.apache.flink.runtime.state.DefaultOperatorStateBackend.getListState 代码: private <S> ListState<S> getListState( ListStateDescriptor
2020-11-12 10:04:01
711
原创 flink状态的深入研究
state存储的数据ValueState 会存储 key、namespace、value,缩写为 <K, N, V>。MapState 会存储 key、namespace、userKey、userValue,缩写为 <K, N, UK, UV>。下面解释这些名词keyValueState 和 MapState 都是 KeyedState,也就是 keyBy 后才能使用 ValueState 和 MapState。所以 State 中肯定要保存 key。group by
2020-11-12 10:02:25
1434
1
原创 flink 1.11 写入hive性能低下问题
hive streming sink 投入生产,发现写入性能底下,排查过后,发现是hive在每写入一条数据,都会判断文件大小来决定文件是否需要滚动,判断文件大小使用的hdfs的api,需要访问namenode,这就是写入性能底下的根源。截止到flink 1.11.2这个问题任然没有解决。这个问题解决,需要自己实现HiveBulkWriterFactory,代码如下:public class HiveBulkWriterFactory implements HadoopPathBasedBulkWrite
2020-10-26 17:07:07
1247
1
原创 flink 1.11新特性
sql部分不兼容的地方时间属性proctime/event_time类型必须定义为timestamp(3),否则会报错。 在1.11中,ts timestamp,相当于定义timestamp(6)。 而时间属性类型为timestamp(3)在1.9中,time attr在传递的时候回自动将类型转换为timestamp类型。在1.11中,这不会发生,传递的类型是LocalDateTime。如果需要,需要你自己定义类型绑定: /** * T
2020-10-26 16:53:32
2622
原创 flink窗口和时间
概要基于flink 1.9.1版本和blink palner。窗口分类window (窗口)对流中所有事件聚合是不可能的,因为通常流是无效的。所以需要window来划定范围。window是一种可以把无限数据切割为有限数据块的手段根据类型,window有2种:基于时间驱动的 time window,比如最近30s内。基于数据驱动的 count window,比如最近100个元素。根据是否重叠,窗口分如下2种:tumbling windows。滚动窗口,窗口之间不重叠,比如统计5分钟内的
2020-07-09 17:30:40
963
原创 flink sql 指南
说明flink sql 相关知识整理。表声明语句flink 可以通过ddl语句声明一个表。表的声明在flink中分为2个部分:connector和format。connector复杂读写数据(对接外部存储系统),format 负责解析数据。通过如下方式可以声明一个表:create table tablename( field1 field_type) with ( 'ke...
2019-12-09 14:50:22
5074
6
原创 01-fink基础知识
介绍Apache Flink 是一个开源的分布式,高性能,高可用,准确的流处理框架。主要由 Java 代码实现。支持实时流(stream)处理和批(batch)处理,批数据只是流数据的一个极限特例。Flink原生支持了迭代计算、内存管理和程序优化wordcount入门idea 创建maven工程。maven依赖如下:<?xml version="1.0" encoding=...
2019-10-27 21:30:24
457
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人