Fury 序列化框架的介绍
介绍:Fury是一个基于JIT动态编译的多语言原生序列化框架,支持Java/Python/Golang/C++等语言,提供全自动的对象多语言/跨语言序列化能力,以及相比于别的框架最高20~200倍的性能。Fury通过一套支持引用、类型嵌入的语言无关协议,以及JIT动态编译加速、缓存优化和Zero-Copy等技术,实现了任意对象像动态语言自动序列化一样跨语言自动序列化,消除了语言之间的编程边界。Fu
什么是多运行时架构?
介绍:多运行时架构是一种微服务架构形态,它将业务逻辑和分布式能力分离,使得业务逻辑只关注核心功能,而分布式能力由一个或多个辅助进程(Sidecar)提供。多运行时架构将分布式应用的需求归纳为四大类:生命周期、网络、状态和绑定,并通过不同的Sidecar进程来满足这些需求,从而实现了对分布式能力的抽象和解耦。多运行时架构是一种面向能力的架构,它可以让业务逻辑更加简洁、灵活和异构,同时也可以让分布式能
MySQL 中使用 UTF-8和 utf8 的区别
介绍:MySQL中的utf8不是标准的UTF-8编码:MySQL中的utf8编码只支持每个字符最多三个字节,而真正的UTF-8编码是每个字符最多四个字节。这意味着MySQL中的utf8编码不能完全覆盖Unicode字符集,只能支持基本多文本平面(BMP)中的字符,而无法支持一些较复杂的文字、繁体字或者表情符号等。MySQL中使用UTF-8应该使用utf8mb4编码:为了解决utf8编码的局限性,M
Flink cdc 读取MySQL,lock table问题
解决方案:使用snapshot.locking.mode参数:这个参数可以设置全量阶段的锁模式,有三个可选值:none、minimal和extended。默认值是extended,表示在全量阶段会锁住所有表,不允许其他客户端进行DML操作。如果设置为minimal,表示只锁住正在读取的表,其他表可以正常操作。如果设置为none,表示不锁任何表,但是可能会导致数据不一致。使用snapshot.new
Flink SQL - 时间属性的介绍
介绍在 Flink 的 Table API 和 SQL 中,基于时间的操作(例如时间窗口)需要定义相关的时间语义和时间数据来源信息。为了实现这一点,表中会提供一个逻辑上的时间字段,专门用来在表处理程序中指示时间。这个字段被称为时间属性(time attribute),它是每个表模式结构(schema)的一部分。时间属性可以在创建表的 DDL 中直接定义为一个字段,也可以在 DataStream 转
Flink SQL - JOIN 查询
介绍Flink SQL 中的 Join 查询是一种数据关联方式,用于从两个或多个表中获取数据并组合成一个结果表。Join 查询可以按照不同的条件和类型进行关联。用法Regular Join:这是最常见的 Join 类型,可以按照一个或多个字段或表达式对两个动态表进行等值连接,并对每个连接的结果进行输出。Regular Join 支持内连接(Inner Join)、左外连接(Left Outer J
Flink SQL - Deduplication 去重
介绍Flink SQL 中的 Deduplication 是一种数据清洗方式,用于从数据流中去除重复的数据。Deduplication 可以提高数据的质量和准确性,也可以节省存储空间和提高性能。语法SELECT * FROM ( SELECT *, ROW_NUMBER() OVE
Flink SQL - TOP-N 语法
介绍Flink SQL 中的 Top-N 是一种查询方式,用于从数据流中找出最大或最小的 N 个值。Top-N 可以按照不同的维度和条件进行筛选和排序。用法按照时间窗口进行 Top-N:使用 OVER 子句和窗口函数,例如 TUMBLE、HOP、CUMULATE 等,来指定一个固定或滑动的时间范围,然后对每个窗口内的数据进行 Top-N。例如:SELECT&
Flink SQL - Over 聚合
介绍Flink SQL 中的 Over 聚合是一种使用 Over 子句的开窗函数,用于对数据按照不同的维度和范围进行分组和聚合。Over 聚合可以保留原始字段,不像分组聚合只能输出聚合结果和分组字段。Over 聚合的语法如下:SELECT agg_func(agg_col) OVER ( [PARTITION BY col
Flink SQL - 分组窗口聚合 TVF
介绍Flink SQL 中的分组窗口聚合 TVF 是一种新的窗口聚合方式,用于替代旧版的窗口分组语法。TVF 是表值函数的缩写,表示返回值是一张表的函数。窗口聚合 TVF 可以按照不同类型的窗口函数对数据进行分组和聚合,例如:TUMBLE:滚动窗口函数,按照固定的时间间隔对数据进行分组和聚合。例如:SELECT window_start, window_end, SU
Flink SQL - 分组聚合
介绍Flink SQL 支持多种分组聚合的方式,用于对数据按照不同的维度进行统计和计算。分组聚合是 SQL 中常用的数据分析方法,可以使用各种内置或自定义的聚合函数,如 COUNT、SUM、AVG、MAX、MIN 等。Flink SQL 中的分组聚合可以分为以下几种:简单的 GROUP BY 子句:这是最基本的分组聚合方式,可以按照一个或多个字段或表达式对数
Flink - Catalog 的介绍
介绍Catalog 是存储元数据的组件,可以管理和访问数据库、表、视图、函数等信息。Catalog 可以提供一个统一的 API,让用户可以从 Table API 和 SQL 查询语句中使用元数据。Catalog 可以引用外部系统中的元数据,不需要在 Flink 中重复定义,也可以将 Flink 中的元数据存储到外部系统中。Catalog 可以简化用户使用 Flink 的步骤,提升用户体验。Cata
Flink - 表和流的转换
流(DataStream)转换成表(Table)调用fromDataStream()方法 // 读取数据源 SingleOutputStreamOperator<Sensor> sensor = env.fromSource(...) // 将数据流转换成表 Table sensorTable = tableEnv.fromDataStream(sensor); 由于
Flink - 自定义函数(UDF)
介绍Flink 自定义函数(UDF),根据我的搜索结果,有以下几个方面:UDF 是一种扩展开发机制,可以用来在查询语句里调用难以用其他方式表达的频繁使用或自定义的逻辑。UDF 可以用 JVM 语言(例如 Java 或 Scala)或 Python 实现,实现者可以在 UDF 中使用任意第三方库。UDF 有不同的种类,例如标量函数、表值函数、聚合函数、表值聚合函数和异步表值函数,它们分别对应不同
Flink SQL 使用Table API需要的依赖
maven 依赖:<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-table-api-java-bridge</artifactId> <version>${flink.version}</version>
Flink 调用 env.execute() 的场景
介绍只要代码中调用了 DataStreamAPI,就需要 execute,否则不需要
Build Project 的作用
介绍Build Project 是用来编译项目,生成字节码文件的。它会编译所有源代码文件,生成字节码文件。在IntelliJ IDEA中,当您单击“Build Project”按钮时,IntelliJ IDEA会执行以下操作:编译所有源代码文件,生成字节码文件;将生成的字节码文件打包到一个或多个字节码文件中,这些文件通常称为“JAR”文件(Java ARchive);运行项目中的单元测试(如果
Flink 分区算子和分区器的介绍
概述在Flink中,分区算子用于控制数据流的分区方式。分区器定义了如何将数据流中的元素分配到不同的并行任务中。Flink提供了多种内置的分区算子和分区器,包括:shuffle:随机分区。将数据流中的元素随机分配到不同的并行任务中。rebalance:循环分区。将数据流中的元素循环分配到不同的并行任务中。rescale:局部循环分区。与rebalance类似,但只在相邻的任务之间进行循环分配。b
Flink window join 介绍
概述Flink的窗口联结(window join)算子允许您定义时间窗口,并将两条流共享一个公共键(key)的数据放在窗口中进行配对处理。这些窗口可以使用窗口分配器定义,并对来自两个流的元素进行评估。 代码示例 import org.apache.flink.api.common.functions.JoinFunction; import org.apache.flink.api.ja
Flink 写 Kafka保证精确一次的方式
代码示例```javapublic class SinkKafka { public static void main(String[] args) throws Exception { StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); env.setPar