- 博客(95)
- 资源 (13)
- 收藏
- 关注
原创 (二十)Flink Paimon
数据湖、湖仓一体是当前大数据领域发展的重要趋势。近几年开源数据湖如Apache Hudi、Apache Iceberg、Apache Paimon、DeltaLake等不断涌现,基于湖仓一体架构的统一元数据管理、数据治理也越来越受到关注。从传统数仓到数据湖、湖仓一体架构,从流批一体计算到基于数据湖的流批一体存储,越来越多的企业基于开源技术,在集成、计算、存储、查询分析等方面不断优化,形成适合自身业务发展的湖仓平台。本章我们将介绍Apache Paimon的概念以及 Flink Paimon 的实现方式。
2024-08-26 10:13:52 657
原创 (十九)Flink CDC
Flink CDC (Flink Change Data Capture) 是基于数据库的日志 CDC 技术,实现了全增量一体化读取的数据集成框架。搭配 Flink 计算框架,Flink CDC 可以高效实现海量数据的实时集成。本章将从 CDC 简介、Flink CDC 简介、Flink CDC 使用三个方面,结合实际案例,进行详细讲解。
2024-08-26 09:56:55 808
原创 (十八)Flink CEP 详解
Flink CEP 是在 Flink 上层实现的复杂事件处理库。它可以让你在无限事件流中检测出特定的事件模型,有机会掌握数据中重要的部分。Flink CEP 主要用于实时流数据的分析处理。这在企业项目的风控管理、用户画像和运维监控中,都有非常重要的应用。通过本章的介绍结合实际案例,让你进一步了解Flink CEP 的使用。
2024-08-25 18:16:46 678
原创 (十七)Flink 容错机制
对于不间断 24 小时运行的程序来说,容错至关重要。Flink 定期对每个算子的所有状态进行持久化快照,并将这些快照复制到更持久的地方,例如分布式文件系统。如果发生故障,Flink 可以恢复应用程序的完整状态并恢复处理,就好像没有出现任何问题一样。本章我们针对 Checkpoint、Savepoint、作业重启调度策略做详细介绍
2024-08-25 18:09:52 587
原创 (十六)Flink 状态管理
根据数据集是否按照 Key 划分,将状态分为 Keyed State 和 Operator State(Non-keyed State)两种类型。本章我们将从状态的类型、状态有效期、状态存储、状态持久化方面,结合实际案例,详细进行介绍。
2024-08-24 11:43:33 931
原创 (十五)Flink 内存管理机制
在大数据领域,很多开源框架(Hadoop、Spark、Storm)都是基于 JVM 运行,但是 JVM 的内存管理机制存在着诸多类似 OutOfMemoryError 的问题,主要是因为创建大量的实例,超过 JVM 的最大堆内存限制,没有被有效的回收。这在很大程度上影响了系统的稳定性,因此很多框架都实现了自己的内存管理。本章我们通过对 Flink 内存模型、JobManager 以及 TaskManager 内存配置的介绍,全方位了解 Flink 在内存方面是如何自主管理的
2024-08-24 11:37:11 405
原创 (十四)基于 Flink SQL 应用案例
在 11.11 购物节大促活动中,天猫、京东等商家会对外发布购物节对应的交易金额、单量等信息,下面我们以 2023.11.11 购物节大促为背景,完成任务指标计算
2024-08-23 09:43:46 484
原创 (十三)Flink SQL
Flink 对 SQL 的支持基于实现了 SQL 标准的 Apache Calcite,包括数据定义语言、数据操纵语言以及查询语言。本章我们结合实际应用,来讲解如何使用 Flink SQL
2024-08-23 09:38:36 542
原创 (十二)Flink Table API
Table API 是批处理和流处理的统一的关系型 API。Table API 的查询不需要修改代码就可以采用批输入或流输入来运行。Table API 是 SQL 语言的超集,并且是针对 Apache Flink 专门设计的。本章我们将讲解 Table API 具体使用方法,并针对常见的 Join 操作提供完整案例。
2024-08-22 10:54:13 212
原创 (十一)Flink 动态表
动态表是 Flink 支持流数据的 Table API 和 SQL 的核心概念。与表示批处理数据的静态表不同,动态表是随时间变化的。可以像查询静态批处理表一样查询它们。查询动态表将生成一个连续查询。一个连续查询永远不会终止,结果会生成一个动态表。查询不断更新其 (动态) 结果表,以反映其 (动态) 输入表上的更改。本质上,动态表上的连续查询非常类似于定义物化视图的查询。
2024-08-22 10:48:04 60
原创 (十)Flink Table API 和 SQL 基本概念
Apache Flink 有两种关系型 API 来做流批统一处理:Table API 和 SQL。Table API 是用于 Scala 和 Java 语言的查询 API,它可以用一种非常直观的方式来组合使用选取、过滤、join 等关系型算子。Flink SQL 是基于 Apache Calcite 来实现的标准 SQL。无论输入是连续的(流式)还是有界的(批处理),在两个接口中指定的查询都具有相同的语义,并指定相同的结果。
2024-08-21 20:08:36 218
原创 (九)基于 Flink DataStream API 应用案例
在 11.11 购物节大促活动中,天猫、京东等商家会对外发布购物节对应的交易金额、单量等信息,下面我们以 2023.11.11 购物节大促为背景,结合 DataStream API,完成技术方案设计,并输出实现代码。
2024-08-21 20:05:39 437
原创 (八)Flink Join 连接
在分布式数据处理中,JOIN 是一个非常重要的操作。Flink 的 JOIN 是用于将两个数据流按照一定的条件进行连接,生成新的数据流。Flink 双流 JOIN 主要分为两大类:一类是基于窗口的 JOIN 操作,另一类是基于原生 State 的 Connect 算子操作。其中基于窗口的 JOIN 可细分为 Window Join、coGroup、Interval Join 三种。下面我们将对这三种 JOIN 做详细介绍。
2024-08-20 11:16:09 425
原创 (七)Flink Watermark
Flink 的 Watermark 是用来标识数据流中的一个时间点。Watermark 的设计是为了解决乱序数据处理的问题,尤其是涉及到多个分区的 Kafka 消费者时。在 Watermark 的作用下,即使某些数据出现了延迟到达的情况,也不会导致整个处理流程的中断。此外,Watermark 还能防止过期的数据被处理,从而提高了数据处理的准确性。
2024-08-20 11:11:06 288
原创 (六)Flink 窗口计算
窗口(Window)是处理无界流的关键所在。窗口可以将数据流装入大小有限的“桶”中,再对每个“桶”加以处理。本章我们将详细介绍时间概念、窗口类型、窗口划分、窗口的生命周期、Window Assigners、窗口函数、Triggers 窗口触发器、Evictor 数据剔除器、Allowed Lateness、旁路输出的概念,并输出实现案例。
2024-08-19 17:45:45 248
原创 (五)Flink Sink 数据输出
经过 Transformation 操作之后,最终形成用户所需要的结果数据集。通常情况下,用户希望将结果数据输出到外部存储介质或者传输到下游的消息中间件中,在 Flink 中,将 DataStream 数据输出到外部系统的过程被定义为 Sink 操作。
2024-08-19 15:37:48 340
原创 (四)Flink Transformation 数据转换
用户通过算子能将一个或多个 DataStream 转换成新的 DataStream,在应用程序中可以将多个数据转换算子合并成一个复杂的数据流拓扑。 这部分内容将描述 Flink DataStream API 中基本的数据转换 API。
2024-08-19 15:07:20 202
原创 (三)Flink Source 数据源
Flink 数据源主要分为内置数据源和第三方数据源。其中内置数据源包含文件、Socket 连接、集合类型数据等,不需要引入其它依赖库。第三方数据源定义了 Flink 和外部系统数据交互的逻辑,Flink 提供了非常丰富的数据源连接器,例如 Kafka、Elasticsearch、RabbitMQ、JDBC 等。
2024-08-19 15:03:05 214
原创 (一)Flink 概览
本章针对 Apache Flink 的基本概念、应用场景、主要组件、运行架构、版本历史进行介绍,让学者对 Flink 这项分布式处理技术能够有初步的了解。
2024-06-05 21:29:38 67
原创 一种通用的基于实时指标监控管理方法
针对我们对实时数据指标监控告警功能的使用功能角度出发,在我们现有数据指标计算的基础上,搭建一套灵活完整的数据监控告警体系,一方面防止数据重复写入浪费资源,另一方面针对现有实时数据指标结果信息完成告警监控。
2022-10-14 10:29:33 990
原创 特征工程之特征选择——来自小白的进阶之路(二)
在机器学习和统计学中,特征工程下的特征选择也被称为变量选择、属性选择或变量子集选择。它是指为了构建模型而选择相关特征(即属性、指标)子集的过程。使用特征选择技术有三个原因:简化模型,使之更易于被用户理解缩短训练时间改善通用性、降低过拟合(即降低方差)要使用特征选择技术的关键假设是:训练数据包含许多冗余或无关的特征,因而移除这些特征并不会导致丢失信息。冗余或无关特征是两个不同的概念。如果一个特征本身有用,但如果这个特征与另一个有用特征强相关,且那个特征也出现在数据中,那么这个特征可能
2021-10-13 11:22:48 1817
原创 特征工程之特征预处理——来自小白的进阶之路(一)
特征工程-特征选择:在机器学习和模式识别中,特征是被观测对象的可测量性能或特性。在模式识别、分类和回归中,信息特征的选择、判别和独立特征的选择是有效算法的关键步骤。特征通常是数值型的,但语法模式识别可以使用结构特征(如字符串和图)。“特征”的概念与线性回归等统计技术中使用的解释变量有关。特征也就是我们常常说的变量/自变量,一般分为三类:无序类别(离散)型有序类别(离散)型连续型根据不同类型的特征进行数据预处理,对算法准确性尤为重要
2021-10-09 16:08:42 1236
转载 什么是类别、离散和连续变量?
定量变量可以分为离散变量和连续变量。类别变量类别变量包含有限的类别数或可区分组数。类别数据可能不是逻辑顺序。例如,类别变量包括性别、材料类型和付款方式。离散变量离散变量是在任意两个值之间具有可计数的值的数值变量。离散变量始终为数值变量。例如,客户投诉数量或者瑕疵或缺陷数。连续变量连续变量是在任意两个值之间具有无限个值的数值变量。连续变量可以是数值变量,也可以是日期/时间变量。例如,零件的长度,或者收到付款的日期和时间。如果您有离散变量而且想要将其包括在回归或方差分析模型中,可以决
2021-09-08 18:50:40 12466
原创 JAVA轮询调度实现主从切换热启动
目录现有技术解决方案方案详情1、配置文件初始化2、注册运行具体的代码信息 a)、初始化实体类 b)、HA分发监测机制执行 c)、节点应用服务运行 d)、主从节点轮询监控现有技术很多时候我们都需要使用调度任务,按照指定周期执行对应的应用程序,简单的可以借助Spring的定时任务完成,复杂的可以借助一些通用的调度任务框架,例如XXL-JOB。使用Spring调度任务时,需要考虑分布式加锁机制,防...
2021-08-12 20:08:16 521
原创 一种通用的付费会员生命周期划分方式
开始接触智慧运营,刚开始对这个概念的理解觉得应该是通过数据分析最终指导实际的运营策略吧,其实也没有太大的概念,只是想着为什么大家非要通过数据算法的使用才能算得上是智慧运营呢?虽然也有一些数据相关的数据开发经验,但是认知确实是跟不上,只是记录一下自己在这条路上所有的经过。 由于做的项目主要是付费会员,那就先从这方面开始一、现有技术在互联网业务中,出于精细化运营的需要,通常将用户生命周期划分为5个时期:引入期、成长期、成熟期、休眠期和流失期,然后基于不...
2021-07-16 11:03:51 877 2
原创 一种基于流式计算实现海量数据滚动窗口聚合计算的方式
一、通用实现方式 在使用实时流式计算的时候,经常都会使用窗口的概念。对于storm而言,整体对事件窗口支持较弱,缓存整个窗口的所有数据,窗口结束时一起计算。而Flink,窗口支持较为完善,自带一些窗口聚合方法,并且会自动管理窗口状态。 伴随着大促以及相关秒杀等突发流量的行为下,会导致该窗口下数据量激增,导致数据处理延迟,当消息有延迟时,对应窗口内的信息数据会丢失,无法得到计算,需要对失效的数据做单独处理。整体不足主要体现在如下: 1、数据激...
2021-02-08 15:56:10 429
原创 一种毫秒级可视化页面、数据渲染展示的实现方式
数据可视化技术目前在应用中越来越受到重视,通过可视化表示来传达数据见解。其主要目标是将大型数据集提取为可视化图形,以便轻松了解数据中的复杂关系。它经常与信息图形、统计图形和信息可视化等术语互换使用。可视化页面通过配置管理平台选择对应的图形样式,各个图形元素组合形成整个完整的页面,页面通根据组件调用频率获取数据,完成整体流程,实现实时数据更新为了减少多频率页面渲染、数据获取的耗时,实现页面元素版本快速变更,完成版本切换,不同的接口数据按照不同的频率调用。页面元素动态渲染,元素样式缓存获取,缩短前端页面响应时
2020-12-19 14:58:31 726 1
原创 Flink-DataStream-Event Time-Generating Watermarks(三)
一、水印策略介绍 为了处理event time,Flink需要知道事件时间戳,这意味着流中的每个元素都需要分配其事件时间戳。这通常是通过使用TimestampAssigner从元素的某个字段(访问/提取)时间戳来完成的。 时间戳分配与生成水印是同步进行的,它告诉系统事件时间上的进展。您可以通过指定水印生成器来配置它。 Flink API需要一个包含TimestampAssigner和水印生成器的水印策略。许多常用的策略都可以作为水印策略的静态...
2020-11-02 20:45:43 397
原创 Flink-Timely Stream Processing(二)
一、简介 实时流处理是有状态流处理的一种扩展,时间在其中起一定的作用。在进行时间序列分析时,在基于特定时间段(通常称为windows)进行聚合时,或者在进行事件处理时(事件发生的时间很重要),都会出现这种情况。在下面的小节中,我们将重点介绍使用Flink应用程序时应该考虑的一些主题。二、时间的概念:事件时间和处理时间 当在流媒体程序(例如定义窗口)中提到时间时,可以引用不同的时间概念: Processing time: 是指机器执行相应操作的系统时间。...
2020-10-30 16:24:48 254
原创 Flink-DataStream API 概述(一)
Flink中的数据流程序是在数据流上实现转换的常规程序(例如,过滤、更新状态、定义窗口、聚合)。数据流最初是从各种来源(例如,消息队列、套接字流、文件)创建的。结果通过接收器返回,例如可以将数据写入文件或标准输出(例如命令行终端)。Flink程序可以在各种上下文中运行,可以独立运行,也可以嵌入到其他程序中。可以在本地JVM中执行,也可以在许多机器的集群上执行。为了创建您自己的Flink DataStream程序,我们鼓励您从分析Flink程序开始,然后逐渐添加您自己的流转换。其余部分作为附加操作和高级特.
2020-10-30 13:33:01 407
原创 详解Mocktito单元测试
什么是单元测试?在维基百科中给出的答案是:在计算机编程中,单元测试(英语:Unit Testing)又称为模块测试,是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。在过程化编程中,一个单元就是单个程序、函数、过程等;对于面向对象编程,最小单元就是方法,包括基类(超类)、抽象类、或者派生类(子类)中的方法。通常来说,程序员每修改一次程序就会进行最少一次单元测试,在编写程序的过程中前后很可能要进行多次单元测试,以证实程序达到软件规格书要求的工作...
2020-08-14 15:45:38 662
原创 Java GC常用命令汇总
1、查看java进程:ps -ef|grep java 使用该命令可以详细的查出对应的java进程详细信息2、使用jps命令,可以列出本机所有java进程的pid3、jstat -gcutil pid 5000 ,以5秒的维度输出对应java进成的GC情况 参数说明如下: S0: 新生代中Survivor space 0区已使用空间的百分比 S1: 新生代中Survivor space 1区已使用空间的百分比 E: 新生代已使用空间的百分比 O: 老年...
2020-08-07 18:55:24 3939
原创 小白storm集群部署
Java应用开发好多年,随着公司架构的变更,初步接触实时数据计算,从初期的Storm,到现在的Flink,开始对实时数据计算产生了深厚的兴趣,虽然目前主流实时开发架构选择都是Flink,但是前期Storm依旧遗留了一下工程,在搭建Storm集群过程中也是耗费了一下时间,简单的把Storm集群搭建过程记录下来,希望帮到有需要的人Strom集群搭建涉及三个概念:Zookeeper、Nimbus、SupervisorZookeeper:完成nimbus和supervisor之间协调的服务。...
2020-07-08 15:21:10 226
原创 Java架构基础知识(二)缓存
缓存是我们在开发中经常遇到要解决的问题,有页面缓存、应用级别的缓存,应用级缓存又分为本地缓存、分布式缓存,在本地缓存中,常用的有成员变量或局部变量实现、静态变量实现、Ehcache、Guava组件、Spring注解缓存等,分布式缓存常用的有redis、mongdb、memched等,同时hbase也会作为缓存数据库在开发中经常被使用。缓存在使用中,还会涉及命中率、最大元素(或最大空间)、清空策略,...
2020-04-11 22:45:54 234
原创 Java架构基础知识(一)
工作使用java好多年了,每次使用的时候总是查查找找,这次看看书,梳理一下,相关的架构信息整理出来,也便于后续继续使用这一节主要整理网关泛化调用、java管道技术、IO/NIO、Netty以及异步骤处理相关支持,整理为导图,把学习中的关键技术点整理出来,同时参考的文章给大家一并整理好,废话不说,直接上图如下:...
2020-04-11 19:06:11 216
原创 Flink-Table 配置(十一)
默认情况下,Table&SQL API是预配置的,用于生成具有可接受性能的准确结果。根据表程序的要求,可能需要调整某些参数以进行优化。例如,无边界的流程序可能需要确保所需的状态大小是有上限的(请参阅流概念)。目录概述执行选项优化器选项概述在每个表环境中,TableConfig都提供配置当前会话的选项。对于常见或重要的配置选项,TableConfig为gette...
2020-03-26 18:31:06 2440
原创 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 3252
原创 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 1680 1
原创 Flink-Table SQL(十)上
一、Query SQL查询是用TableEnvironment的sqlQuery()方法指定的。方法将SQL查询的结果作为表返回。表可以用于后续的SQL和表API查询,可以转换为数据集或数据流,也可以写入表链接。SQL和表API查询可以无缝地混合,并进行整体优化并转换为单个程序。 为了访问SQL查询中的表,必须在TableEnvironment中注册该表。可以从表...
2020-03-15 16:30:24 2039 2
Java架构基础知识(二)缓存.svg
2020-04-11
Java技术总结第一章.svg
2020-04-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人