Apache Flink

Flink 系例 之 TableAPI & SQL 与 MYSQL 数据查询

别来无恙 提交于 2021-01-30 01:17:07
使用Tbale&SQL与Flink JDBC连接器从MYSQL数据库表中SELECT选取数据。 示例环境 java .version : 1 .8 .x flink .version : 1 .11 .1 kafka :2 .11 示例数据源 (项目码云下载) Flink 系例 之 搭建开发环境与数据 示例模块 (pom.xml) Flink 系例 之 TableAPI & SQL 与 示例模块 SelectToMysql.java package com.flink.examples.mysql; import org.apache.flink.api.common.functions.FlatMapFunction; import org.apache.flink.streaming.api.datastream.DataStream; import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; import org.apache.flink.table.api.EnvironmentSettings; import org.apache.flink.table.api.Table; import org.apache.flink.table.api.bridge.java

Flink 助力美团数仓增量生产

对着背影说爱祢 提交于 2021-01-29 10:16:48
简介: 本文由美团研究员、实时计算负责人鞠大升分享,主要介绍 Flink 助力美团数仓增量生产的应用实践。内容包括:1、数仓增量生产;2、流式数据集成;3、流式数据处理;4、流式 OLAP 应用;5、未来规划。 一、数仓增量生产 1.美团数仓架构 先介绍一下美团数仓的架构以及增量生产。如下图所示,这是美团数仓的简单架构,我把它叫做三横四纵。所谓三横,第一是贯穿全链路的元数据以及血缘,贯穿数据集成、数据处理、数据消费、以及数据应用的全过程链路。另外一块贯穿全链路的是数据安全,包括受限域的认证系统、权限系统、整体的审计系统。根据数据的流向,我们把数据处理的过程分为数据集成、数据处理、数据消费、以及数据应用这 4 个阶段。 在数据集成阶段,我们对于公司内部的,比如说用户行为数据、日志数据、DB 数据、还有文件数据,都有相应的集成的系统把数据统一到我们的数据处理的存储中,比如说 Kafka 中。 在数据处理阶段,分为流式处理链路、批处理链路以及基于这套链路的数仓工作平台(万象平台)。生产出来的数据,经过 Datalink 导入到消费的存储中,最终通过应用以不同的形式呈现出来。 我们目前在 Flink 上面应用比较广泛的地方,包括从 Kafka 把数据导到 Hive,包括实时的处理,数据导出的过程。今天的分享就集中在这些方面。 2.美团 Flink 应用概况 美团的 Flink 目前大概有

Apache Flink 在实时金融数据湖的应用

左心房为你撑大大i 提交于 2021-01-29 04:55:24
简介: 本文由京东搜索算法架构团队分享,主要介绍 Apache Flink 在京东商品搜索排序在线学习中的应用实践 一、背景 在京东的商品搜索排序中,经常会遇到搜索结果多样性不足导致系统非最优解的问题。为了解决数据马太效应带来的模型商品排序多样性的不足,我们利用基于二项式汤普森采样建模,但是该算法仍存在对所有用户采用一致的策略,未有效考虑用户和商品的个性化信息。基于该现状,我们采取在线学习,使深度学习和汤普森采样融合,实现个性化多样性排序方案,实时更新模型的关参数。 在该方案中,Flink 主要应用于实时样本的生成和 online learning 的实现。在在线学习过程中,样本是模型训练的基石,在超大规模样本数据的处理上,我们对比了 Flink、Storm 和 Spark Streaming 之后,最终选择用 Flink 作为实时样本流数据的生产以及迭代 online learning 参数的框架。在线学习的整体链路特别长,涉及在线端特征日志、流式特征处理、流式特征与用户行为标签关联、异常样本处理、模型动态参数实时训练与更新等环节,online learning 对样本处理和参数状态处理的准确性和稳定性要求较高,任何一个阶段都有可能出现问题,为此我们接入京东的 observer 体系,拥有完整的全链路监控系统,保证各个阶段数据的稳定性和完整性

Flink 源码阅读环境搭建并调试 Flink-Clients 模块

爱⌒轻易说出口 提交于 2021-01-29 01:41:15
本文大纲 一、Flink 官方文档这么全面,为什么还要读 Flink 源码 读文档和读源码的目的是不一样的,就拿 Apache Flink 这个项目来说,如果你想知道 Flink 的使用功能,设计思想,实现原理,看官方文档就足够了;如果你想了解的就是具体细节,比如说 StreamGraph 是怎么生成的或者是 Exactly Once 究竟如何实现的,那么就需要去阅读源码了。 关键是看你的目的是什么,如果你想了解思想,经验等看文档就够了,因为文档是人写给人的;如果你想了解具体细节,那应该去看源码,因为源码是人写给机器的,源码里有到底做了什么这些事情。 那么我写这篇的文章目的是什么?我的目的是,万一你已经在生产上身经百战了,对 Flink 的原理都把握住了,那么看源码是对你来说最好的进阶方式,所以我为你准备了这篇搭建环境的教程,为你节约宝贵的时间陪家人陪孩子不香吗? 二、Flink 源码几百万行,该如何下手 通常对于阅读源码这件事情来说是有方法论可循的。 1、首先得具备前提条件 相关语言和基础技术知识。比如 Java,Maven,Git,设计模式等等。如果你只会 C++,哪天心血来潮去阅读 Flink 源码,那是不现实的; 开源项目的功能。需要知道这个项目是为了解决什么问题,完成什么功能,有哪些特性,如何启动,有哪些配置项。先把这个项目跑起来,能运行简单的 Demo; 相关的文档

Flink 水位线

泪湿孤枕 提交于 2021-01-26 10:36:24
水位线是什么 窗口 有了,但是要知道我们面对的是实时数据,而这些数据随时会出现延迟的情况,从几秒到几小时都有可能。如果要忽略这些数据,那么显然对于结果的计算是不准确的,可是要等待这些延迟数据的话, 那岂不是等同于批处理了,我们等不了那么久的。这个时候水位线恰好就是来描述和解决这个问题的。它指定一个时间 T,表示时间 T 之前的数据已经全部到达,后续再迟到的数据会被直接丢弃。 水位线用在哪里 显然,使用处理时间来处理事件不会有延迟,因此也不需要水位线。所以水位线只出现在事件时间窗口,因而也可以将水位线看成是事件时间的进度条。通常,当水位线通过窗口的末尾时,会触发窗口的计算操作。 在 Flink 中如何产生水位线 在 data source 中发射水位线 即在 data source 函数中,使用 SourceContext 的 emitWatermark 方法来发射一个水位线 T。 使用水位线生成器 按照固定周期生成 这种情况下,Flink 会定时(可以自定义)获取水位线,这里水位线的具体方法由用户实现。 从特定元素生成 在数据流中有某种中止信号(如-1、EOF)的时候,特别有用。此外需要注意的是由于这种获取水位线的操作会作用于每一个元素,所以可能会带来性能影响。 并发中的水位线 关于水位线的使用,有两点需要知道: 水位线是单调递减的,也就是说不允许后出现的水位线比之前的小。

Flink State 测试

喜欢而已 提交于 2021-01-26 08:35:35
1. 任务异常从checkpoint恢复 环境:Flink1.8 local模式 根据运行结果可以看出,在设置显式设置uidHash值的情况下当前版本会导致flink自身的checkpoint恢复失败。 测试结果如下图: 2. SavePoint恢复验证 测试基准版本:Flink1.8 local 指定SavePoint重启 指定之前的Checkpoint重启,在设置uid或者uidHash的情况下 可以正常恢复。 3. SavePoint 切换checkpoint验证 测试基准版本:Flink1.8 local 在使用uid/uidHash情况下 验证下 operater state切换backend能正常恢复,key state恢复异常(只有Fs到Memory 可以完全正常恢复) 来源: oschina 链接: https://my.oschina.net/u/2420680/blog/3084194

flink state状态管理

[亡魂溺海] 提交于 2021-01-26 08:16:15
一、flink状态原理 1.1 什么是flink中的状态?为什么需要状态管理? ​ flink运行计算任务的过程中,会有很多中间处理过程。在整个任务运行的过程中,中间存在着多个临时状态,比如说某些数据正在执行一个operator,但是只处理了一半数据,另外一般还没来得及处理,这也是一个状态。 ​ 假设运行过程中,由于某些原因,任务挂掉了,或者flink中的多个task中的一个task挂掉了,那么它在内存中的状态都会丢失,如果这时候我们没有存储中间计算的状态,那么就意味着重启这个计算任务时,需要从头开始将原来处理过的数据重新计算一遍。如果存储了中间状态,就可以恢复到中间状态,并从该状态开始继续执行任务。这就是状态管理的意义。所以需要一种机制去保存记录执行过程中的中间状态,这种机制就是状态管理机制。 1.2 flink中状态的分类 flink中包括两种基础状态:keyed state(keyed状态)和operator state(operator状态) 1.2.1 keyed状态 keyed状态总是与key一起,且只能用在keyedStream中。这个状态是跟特定的key绑定的,对KeyedStream流上的每一个key,可能都对应一个state。唯一组合成(operator--key,state)的形式。 1.2.2 operator状态 与Keyed State不同

Flink从入门到真香(18、使用flink table api 从文件和kafka中读取数据)

假装没事ソ 提交于 2021-01-25 04:09:18
还是一样,要先引入依赖,在pom.xml <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-table-planner_2.12</artifactId> <version>1.10.1</version> </dependency> 从文件中读取数据 新建一个 TableApiFromFile的object: /** * * @author mafei * @date 2020/11/22 * * 把txt内容注册成为表,按照预期的格式输出出来 */ package com.mafei.apitest.tabletest import org.apache.flink.streaming.api.scala._ import org.apache.flink.table.api.{DataTypes, Table} import org.apache.flink.table.api.scala._ import org.apache.flink.table.descriptors.{Csv, FileSystem, OldCsv, Schema} object TableApiFromFile { def main(args: Array[String]): Unit = { //1 、创建环境

kafka之consumer参数auto.offset.reset 0.10+

独自空忆成欢 提交于 2021-01-24 02:52:13
https://blog.csdn.net/dingding_ting/article/details/84862776 https://blog.csdn.net/xianpanjia4616/article/details/84347087 kafka-0.10.1.X版本之前: auto.offset.reset 的值为smallest,和,largest.(offest保存在zk中) kafka-0.10.1.X版本之后: auto.offset.reset 的值更改为:earliest,latest,和none (offest保存在kafka的一个特殊的topic名为:__consumer_offsets里面) auto.offset.reset: 可理解为kafka consumer读取数据的策略,本地用的kafka版本为0.10,因此该参数可填earliest|latest|none。 earliest: 当各分区下有已提交的offset时,从提交的offset开始消费;无提交的offset时,从头开始消费 latest: 当各分区下有已提交的offset时,从提交的offset开始消费;无提交的offset时,消费新产生的该分区下的数据 none: topic各分区都存在已提交的offset时,从offset后开始消费;只要有一个分区不存在已提交的offset

今日立秋

核能气质少年 提交于 2021-01-24 01:48:12
乳鸦啼散玉屏空, 一枕新凉一扇风。 睡起秋声无觅处, 满阶梧桐月明中。 今天3时13分 秋天的第一个节气 “立秋”正式亮相 又一个美好的季节,来了! 每年8月初 当太阳达到黄经135度时 为立秋节气开始 意味着炎热的夏天即将过去 凉爽的秋天就要到来 今年立秋时节 仍处在中伏和末伏时段 暑热一时难消 但天气渐凉已是大势所趋 送夏迎秋 你准备好了吗? 立秋之后,由于午热夜凉 形成了一定的昼夜温差 清晨时分的植物枝叶上 常常会挂满晶莹的露珠 随着天气转凉 感阴而鸣的寒蝉也开始鸣叫 仿佛在传达着 夏天即将过去的消息 立秋到,贴秋膘 冬去春来身体好 天凉以后,人们应该多吃些肉食 补充因伏天食欲差、流汗多 而带来的亏虚,提高免疫力 立秋之后要“啃秋” 在有些地方也称为“咬秋” 这一天,买个西瓜带回家 全家一起围聚而食 谈天说地,消暑解渴 立秋过后,要注重养生 也许白天还是烈日炎炎 到了夜里却会有凉风袭来 注意别着凉 秋天干燥,人体容易缺水 要注意养阴清热、润燥止渴 多吃一些银耳、藕片等 有助于清心安神 立秋之后,暑热渐消 人们的心情也更加闲适 律变新秋至,萧条自此初。 花酣莲报谢,叶在柳呈疏。 澹日非云映,清风似雨余。 卷帘凉暗度,迎扇暑先除。 唐代诗人司空曙很是逍遥 卷起珠帘,凉风暗度 挥扇小憩,暑气全除 秋风秋雨,愁思愁绪 这一时节,也最易引人感怀 万事销身外,生涯在镜中。 惟将两鬓雪