草庐IT

使用Flink CDC将Mysql中的数据实时同步到ES

前言最近公司要搞搜索,需要把mysql中的数据同步到es中来进行搜索,由于公司已经搭建了flink集群,就打算用flink来做这个同步。本来以为很简单,跟着官网文档走就好了,结果没想到折腾了将近一周的时间……我也是没想到,这玩意网上资源竟然这么少,找到的全部都是通过flinksql-client实现的,但这有个问题,当fink集群重启,JOB就没有了,没有办法通过savePointing来恢复。所以还是记录下。代码直接上代码:publicstaticvoidmain(String[]args)throwsException{StreamExecutionEnvironmentenv=Strea

Flink 状态后端

Flink状态后端配置状态后端(statebackend):负责管理本地状态的存储方式,位置Flink的状态后端有两类:哈希表状态后端(HashMapStateBackend):状态放在内存内嵌RocksDB状态后端(EmbeddedRocksDBStateBackend):状态放在RocksDB数据库哈希表状态后端:实现:将状态当作对象(objects),保存在Taskmanager的JVM堆上优点:内存计算,读写速度很快缺点:状态的大小受集群可用内存的限制,当状态随时间增长,会耗尽内存RocksDB状态后端:实现:异步存储到TaskManager的本地目录优点:硬盘存储,适合海量状态的存储

Flink中常用的去重方案

FlinkSql去重方案1、状态去重将数据保存到状态中,进行累计selectwindow_start,window_end,count(distinctdevId)ascntfromtable(tumble(tablesource_table,descriptor(rt),interval'60'minute))--滚动窗口groupbywindow_start,window_end;2、利用HyperLogLog进行去重selectwindow_start,window_end,hllDistinct(distinctdevId)ascntfromtable(tumble(tablesour

Flink中常用的去重方案

FlinkSql去重方案1、状态去重将数据保存到状态中,进行累计selectwindow_start,window_end,count(distinctdevId)ascntfromtable(tumble(tablesource_table,descriptor(rt),interval'60'minute))--滚动窗口groupbywindow_start,window_end;2、利用HyperLogLog进行去重selectwindow_start,window_end,hllDistinct(distinctdevId)ascntfromtable(tumble(tablesour

Flink面试题二十道

问题1:什么是ApacheFlink?答案:ApacheFlink是一个开源的流处理和批处理框架,它提供了高吞吐量、低延迟和容错性等特性。Flink支持事件驱动的流处理和批处理,可以处理有界和无界的数据集,并具有灵活的编程模型和丰富的功能库。问题2:Flink的主要特点是什么?答案:Flink的主要特点包括:流式处理和批处理一体化:Flink既支持流式处理,也支持批处理,可以无缝地在流处理和批处理之间切换。事件驱动的处理模型:Flink使用事件时间和处理时间的概念,支持基于事件的处理和窗口操作,适用于实时数据处理和分析。高性能和低延迟:Flink的优化引擎可以实现高吞吐量和低延迟的数据处理,适

flink 对每天的数据进行汇总

使用flink对kafka中每天的数据进行汇总,来一条数据统计一次结果,并将结果进行持久化publicstaticvoidmain(String[]args)throwsException{finalStreamExecutionEnvironmentenv=StreamExecutionEnvironment.getExecutionEnvironment();env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime);Propertiesprops=newProperties();props.setProperty("grou

Flink sql 创建 视图-view

1.场景是通过flinksql对表的操作,通过添加多个算子对结果的操作如图:例子不是很恰当主要是我们在创建数仓表时,通过先将一个函数的结果集放到一个视图中,在通过一个函数将上一个视图结果放入到视图中然后在通过视图的结果放入到数仓新表中。比如对一张表中的一列进行函数的结果放入到一个视图中在对视图进行一个函数结果集放入到视图中,最终将视图中的结果放入到表中。其实这样做的好处是可以创建多个函数的视图,优点在于不占用数据的存储,2.版本mysqlflink5.7.20-logfink14.53.先创建mysql表CREATEDATABASE;USE`test`;DROPTABLEIFEXISTS`Fl

Flink自定义source(单并行度和多并行度)

文章目录1.Source简介2.Flink预定义的Source3.自定义单并行度Source4.自定义多并行度SourceDataStream是Flink的较低级API,用于进行数据的实时处理任务,可以将该编程模型分为Source、Transformation、Sink三个部分,如下图所示。本文来介绍常用的并行度Source和多并行度Source。1.Source简介source是程序的数据源输入,你可以通过StreamExecutionEnvironment.addSource(sourceFunction)来为你的程序添加一个source。flink提供了大量的已经实现好的source方法

Flink自定义source(单并行度和多并行度)

文章目录1.Source简介2.Flink预定义的Source3.自定义单并行度Source4.自定义多并行度SourceDataStream是Flink的较低级API,用于进行数据的实时处理任务,可以将该编程模型分为Source、Transformation、Sink三个部分,如下图所示。本文来介绍常用的并行度Source和多并行度Source。1.Source简介source是程序的数据源输入,你可以通过StreamExecutionEnvironment.addSource(sourceFunction)来为你的程序添加一个source。flink提供了大量的已经实现好的source方法

Iceberg从入门到精通系列之九:flink sql修改Iceberg表和删除Iceberg表

Iceberg从入门到精通系列之九:flinksql修改Iceberg表一、修改表属性二、修改表名三、删除表一、修改表属性ALTERTABLE`hive_catalog`.`default`.`sample`SET('write.format.default'='avro');二、修改表名ALTERTABLE`hive_catalog`.`default`.`sample`RENAMETO`hive_catalog`.`default`.`new_sample`;三、删除表DROPTABLE`hive_catalog`.`default`.`sample`;