flink
文章平均质量分 79
springk
这个作者很懒,什么都没留下…
展开
-
一种基于流式计算实现海量数据滚动窗口聚合计算的方式
一、通用实现方式 在使用实时流式计算的时候,经常都会使用窗口的概念。对于storm而言,整体对事件窗口支持较弱,缓存整个窗口的所有数据,窗口结束时一起计算。而Flink,窗口支持较为完善,自带一些窗口聚合方法,并且会自动管理窗口状态。 伴随着大促以及相关秒杀等突发流量的行为下,会导致该窗口下数据量激增,导致数据处理延迟,当消息有延迟时,对应窗口内的信息数据会丢失,无法得到计算,需要对失效的数据做单独处理。整体不足主要体现在如下: 1、数据激...原创 2021-02-08 15:56:10 · 425 阅读 · 0 评论 -
Flink-DataStream-Event Time-Generating Watermarks(三)
一、水印策略介绍 为了处理event time,Flink需要知道事件时间戳,这意味着流中的每个元素都需要分配其事件时间戳。这通常是通过使用TimestampAssigner从元素的某个字段(访问/提取)时间戳来完成的。 时间戳分配与生成水印是同步进行的,它告诉系统事件时间上的进展。您可以通过指定水印生成器来配置它。 Flink API需要一个包含TimestampAssigner和水印生成器的水印策略。许多常用的策略都可以作为水印策略的静态...原创 2020-11-02 20:45:43 · 395 阅读 · 0 评论 -
Flink-Timely Stream Processing(二)
一、简介 实时流处理是有状态流处理的一种扩展,时间在其中起一定的作用。在进行时间序列分析时,在基于特定时间段(通常称为windows)进行聚合时,或者在进行事件处理时(事件发生的时间很重要),都会出现这种情况。在下面的小节中,我们将重点介绍使用Flink应用程序时应该考虑的一些主题。二、时间的概念:事件时间和处理时间 当在流媒体程序(例如定义窗口)中提到时间时,可以引用不同的时间概念: Processing time: 是指机器执行相应操作的系统时间。...原创 2020-10-30 16:24:48 · 249 阅读 · 0 评论 -
Flink-DataStream API 概述(一)
Flink中的数据流程序是在数据流上实现转换的常规程序(例如,过滤、更新状态、定义窗口、聚合)。数据流最初是从各种来源(例如,消息队列、套接字流、文件)创建的。结果通过接收器返回,例如可以将数据写入文件或标准输出(例如命令行终端)。Flink程序可以在各种上下文中运行,可以独立运行,也可以嵌入到其他程序中。可以在本地JVM中执行,也可以在许多机器的集群上执行。为了创建您自己的Flink DataStream程序,我们鼓励您从分析Flink程序开始,然后逐渐添加您自己的流转换。其余部分作为附加操作和高级特.原创 2020-10-30 13:33:01 · 398 阅读 · 0 评论 -
Flink-Table 配置(十一)
默认情况下,Table&SQL API是预配置的,用于生成具有可接受性能的准确结果。根据表程序的要求,可能需要调整某些参数以进行优化。例如,无边界的流程序可能需要确保所需的状态大小是有上限的(请参阅流概念)。目录概述执行选项优化器选项概述在每个表环境中,TableConfig都提供配置当前会话的选项。对于常见或重要的配置选项,TableConfig为gette...原创 2020-03-26 18:31:06 · 2426 阅读 · 0 评论 -
Flink-Table SQL 实践编程 StreamTableEnvironment(十)下
StreamTableEnvironment主要是流式数据处理,本文主要实现GroupBy Window Aggregation、Over Window aggregation对应sql api的代码实现,同时实现流数据表join 连接。代码中使用socket方式作为source数据输入方式,闲话不说,具体代码如下:StreamTableEnvironment tEnv = StreamTableEnvironment.create(env);原创 2020-03-25 23:23:12 · 3222 阅读 · 0 评论 -
Flink-Table SQL 实践编程 BatchTableEnvironment(十)中
BatchTableEnvironment用于批处理场景,针对SQL相关信息,具体代码实践内容如下: BatchTableEnvironment tEnv = BatchTableEnvironment.create(env); Table groupWindAggrTable = tEnv.sqlQuery("SELECT " + "TUMBLE_START(sysDate, INTERVAL '1' DAY) as wStart, " +原创 2020-03-25 22:42:24 · 1676 阅读 · 1 评论 -
Flink-Table SQL(十)上
一、Query SQL查询是用TableEnvironment的sqlQuery()方法指定的。方法将SQL查询的结果作为表返回。表可以用于后续的SQL和表API查询,可以转换为数据集或数据流,也可以写入表链接。SQL和表API查询可以无缝地混合,并进行整体优化并转换为单个程序。 为了访问SQL查询中的表,必须在TableEnvironment中注册该表。可以从表...原创 2020-03-15 16:30:24 · 2027 阅读 · 2 评论 -
Flink-Table API 实践编程 StreamTableEnvironment(九)下
这一节主要是实践编程StreamTableEnvironment下相关table api的使用信息,主要针对StreamTableEnvironment,对应实现GroupBy Window相关操作原创 2020-03-07 23:22:46 · 1517 阅读 · 0 评论 -
Flink-Table API 实践编程 BatchTableEnvironment(九)中
flink table api实践编程,主要针对BatchTableEnvironment,对应实现GroupBy Window相关操作,同时解决flink时间差问题原创 2020-03-06 23:38:21 · 966 阅读 · 0 评论 -
Flink-Table API(九)上
Table API是用于流和批处理的统一关系API。Table API查询可以在批处理或流式输入上运行,无需修改。Table API是SQL语言的一个超级集合,专门为使用Apache Flink而设计。Table API是Scala和Java的语言集成API。Table API查询不是像SQL一样将查询指定为字符串值,而是以Java或Scala中嵌入的语言样式定义的,支持IDE,如自动完成和语法验证Table API与Flink的SQL集成共享许多概念和部分API。原创 2020-03-03 14:21:55 · 381 阅读 · 0 评论 -
Flink-Table连接到外部系统(八)
Flink的Table API和SQL程序可以连接到其他外部系统来读写批处理表和流式表。表源提供对存储在外部系统(如数据库、键值存储、消息队列或文件系统)中的数据的访问。表接收器将表发送到外部存储系统。根据源和汇的类型,它们支持不同的格式,如CSV、Parquet或ORC。本页描述如何声明内置的表源和/或表汇,并在Flink中注册它们。注册源或接收器后,可以通过表API&SQL语句访问它。原创 2020-02-27 17:32:56 · 1871 阅读 · 0 评论 -
Flink-Table Streaming 时态表(Temporal Tables)(七)
时态表表示一个可变表上(参数化)视图的概念,该视图返回表在特定时间点的内容。变更表可以是跟踪变更的变更历史表(如数据库变更日志),也可以是具体化变更的变更维度表(如数据库表)。对于更改历史表,Flink可以跟踪更改,并允许在查询中的某个时间点访问表的内容。在Flink中,这种表由一个时态表函数表示。对于更改维度表,Flink允许在查询中的处理时间访问表的内容。在Flink中,这种表由一个时...原创 2020-02-13 23:25:47 · 1242 阅读 · 0 评论 -
Flink-Table Streaming 持续查询中的关联(六)
联接(Joins)是批处理数据处理中连接两个关系行的常见且易于理解的操作。然而,动态表上连接的语义不太明显,甚至不容易混淆。因此,有两种方法可以使用表API或SQL实际执行连接。Regular Joins(常规联接) 常规联接是最通用的联接类型,其中对联接输入的任何一侧的任何新记录或更改都是可见的,并且会影响整个联接结果。例如,如果左侧有一个新...原创 2020-02-13 22:40:18 · 1735 阅读 · 1 评论 -
Flink-Table Streaming 时间属性-Event time-实践编程(五)下
针对Flink-Table Streaming 时间属性 Event time 事件属性,实践编程如下,演示编码如下:需要依赖的公共实体类:@Datapublic class StudentInfo{ private String name; private String sex; private String course; private Float sc...原创 2020-02-11 17:54:55 · 734 阅读 · 2 评论 -
Flink-Table Streaming 时间属性-Processing time-实践编程(五)中
针对Flink-Table Streaming时间Processing time属性对应的,实践编程如下,演示编码如下:需要依赖的公共实体类:import lombok.Data;@Datapublic class StudentInfo { private String name; private String sex; private String cours...原创 2020-02-11 09:55:00 · 613 阅读 · 0 评论 -
Flink-Table Streaming 时间属性(五)上
一、时间属性 Flink能够处理基于不同时间概念的流数据。 处理时间是指执行相应操作的机器的系统时间(也称为“挂钟时间”)。 事件时间是指基于附加到每一行的时间戳对流数据的处理。时间戳可以在事件发生时进行编码。 摄取时间是事件进入Flink的时间;在内部,它的处理方式与事件时间类似。二、时间属性介绍 基于时间的操作(...原创 2020-02-10 15:22:17 · 863 阅读 · 0 评论 -
Flink-Table StreamTableEnvironment实践编程(四)下
七、实现UpsertStreamTableSink操作 public class TableStreamFlinkStudentUpsertTest { public static void main(String[] args) throws Exception { StreamExecutionEnvironment env = Stream...原创 2020-01-17 12:58:20 · 2275 阅读 · 0 评论 -
Flink-Table StreamTableEnvironment实践编程(四)中
六、实现RetractStreamTableSink操作 public class TableStreamFlinkStudentRetractTest { public static void main(String[] args) throws Exception { StreamExecutionEnvironment env = Stre...原创 2020-01-17 12:58:16 · 1778 阅读 · 0 评论 -
Flink-Table StreamTableEnvironment实践编程(四)上
在上一篇文章中掌握了StreamTableEnvironment的基本概念,下面就进入代码实战环节:一、实例中采用socket连接方式,获取数据流信息,使用 nc -l 端口号方式,开启端口监控,用来数据数据信息,实例中使用9999作为端口,命令行中输入:nc -l 9999二、本实例主要功能是完成根据学生姓名实现分数统计三、具体依赖实体类如下: @Data public ...原创 2020-01-17 12:58:00 · 5886 阅读 · 0 评论 -
Flink-Table StreamTableEnvironment基础知识(三)
StreamTableEnvironment用于流计算场景,流计算的对象是DataStream。相比 TableEnvironment,StreamTableEnvironment 提供了 DataStream 和 Table 之间相互转换的接口,如果用户的程序除了使用 Table API & SQL 编写外,还需要使用到 DataStream API,则需要使用 StreamTableE...原创 2020-01-16 11:53:15 · 9267 阅读 · 0 评论 -
Flink-Table BatchTableEnvironment实践编程(二)
了解了flink table 简单概念,在开发中实际操作起来,看一下代码的具体实践。Flink 1.9中保留了5个TableEnvironment,在实现上是5个面向用户的接口,在接口底层进行了不同的实现。5个接口包括一个TableEnvironment接口,两个BatchTableEnvironment接口,两个StreamTableEnvironment接口,5个接口文件完整路径如下:...原创 2020-01-14 19:21:03 · 6913 阅读 · 0 评论 -
Flink-Table API & SQL基础编程入门(一)
接触flink不久,开始学习flink table相关信息,记录下来学习过程,供大家参考学习一、引用的jar包 <properties> <scala.binary.version>2.12</scala.binary.version> <flink.version>1.9.1</flink.versi...原创 2020-01-14 17:34:59 · 1173 阅读 · 0 评论