flink中sql关键字一不小心使用了状态,你真的都知道吗 以下操作会引入状态:(1)聚合:SUM, COUNT, AVG, MAX, MIN 等。(2)窗口:TUMBLE, HOP, SESSION, CUMULATE 等。(3)JOIN:时间窗口 Join、流对表 Join。(4)DISTINCT去重操作 和 GROUP BY 分组操作。(5)OVER 窗口:滑动窗口聚合。(6)TOP N:ROW_NUMBER(), RANK() 等。(7)自定义 UDF/UDAF。(8)使用Lookup Join 开启缓存状态引入的优化建议。
使用Flinkcdc 采集mysql数据 验证 MySQL 配置: Flink CDC 依赖 MySQL 的 binlog 功能进行数据采集。log_bin = mysql-bin # 开启 binlog 功能,文件名为 mysql-bin。expire_logs_days = 30 # binlog 日志保留天数,自动清理超过30天的日志。(2)将下载的 JAR 文件放到 Flink 集群的 lib/ 目录 中,重启flink集群。启动flink sql客户端。(1)或者虚拟机在线下载。
FlinkCDC的一些概念 Flink CDC 基于数据库日志的 Change Data Caputre 技术,实现了全量和增量的一体化读取能力,并借助 Flink 优秀的管道能力和丰富的上下游生态,支持捕获多种数据库的变更,并将这些变更实时同步到下游存储。目前,Flink CDC 的上游已经支持了 MySQL、MariaDB、PG、Oracle、MongoDB 等丰富的数据源,对 Oceanbase、TiDB、SQLServer 等数据库的支持也已经在社区的规划中。
linux安装docker和mysql 出现 request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers) 错误通常是因为 Docker 无法连接到 Docker Hub 官方镜像库。所以配置阿里云加速器。
kafka不同的消费场景 只消费从启动后产生的新数据(latest-offset)。默认消费模式,从 Kafka 提交的偏移量继续消费。从 Kafka 的特定分区和偏移量开始消费。消费从指定时间戳之后的 Kafka 消息。
Flink Lookup Join(维表 Join) Lookup Join 其实就是维表 Join,比如拿离线数仓来说,常常会有用户画像,设备画像等数据,而对应到实时数仓场景中,这种实时获取外部缓存的 Join 就叫做维表 Join。
FlinkSQL 中lateral table LATERAL TABLE 用于在查询中扩展表,并将表值函数的结果与查询的其余部分进行连接(LATERAL TABLE 可以用于将。使用LATERAL TABLE可以在查询中实现更复杂的逻辑,可以在SELECT子句中使用LATERAL TABLE关键字并调用表值函数,来查询所需要的列,得到的结果是:原表select查询的数据+LATERAL TABLE查询结果返回的数据,更加灵活。这是通过在查询的 FROM 子句中使用 LATERAL TABLE 关键字来实现的。作为参数,并返回一个包含地址信息的表。