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
Caffeine 的介绍
概述Caffeine 是一个高性能,高命中率,低内存占用,near optimal 的本地缓存。它是 Guava Cache 的优化加强版,有些文章把 Caffeine 称为“新一代的缓存”、“现代缓存之wang”。Caffeine 是基于 Java 8 开发的,提供了近乎最jia命中率的高性能本地缓存组件。从 Spring5 开始,Spring 不再支持 Guava Cache,改为使用 C
Guava的介绍
介绍Guava 是 Google 开源的一个 Java 工具库,它包含许多 Google 内部 Java 项目依赖的核心类。Guava 扩展了 Java 的基础类库,比如集合和并发等,并增加了一些其他强大功能,比如缓存和限流等。Guava 提供了新的集合类型(比如 multimap 和 multiset)、不变集合(immutable collections)、并发库(concurrency
Zilliz Cloud的介绍
介绍Zilliz Cloud 是一种全托管的向量数据库服务,它基于 Milvus,由 Milvus 的创造者打造。使用 Zilliz Cloud 可以轻松构建十亿级向量数据库,部署和扩展向量搜索服务。Zilliz Cloud 定位于依托公有云的全托管数据库即服务(DBaaS),旨在为向量数据处理、非结构化数据分析和企业 AI 应用开发提供一站式解决方案。Zilliz Cloud 提供了高性能的
大数据技术 - FlinkSQL join的方式
介绍Flink SQL 支持多种数据 Join 方式,主要包括以下三种:动态表(流)与动态表(流)的 Join,动态表(流)与外部维表(比如 Redis)的 Join,以及动态表字段的列转行(一种特殊的 Join)。细分 Flink SQL 支持的 Join 包括:Regular Join,Interval Join,Temporal Join,Lookup Join,Array Expans