![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Flink
文章平均质量分 93
Flink
四月天03
能用钱解决的问题,千万别花时间
展开
-
Flink + Iceberg打造流批一体的数据湖架构
对于数据湖架构来说,数据文件在HDFS的分布组织是由写入任务决定的,而对于分布式数仓来说,数据一般是通过JDBC写入,数据的存储组织方式是由数仓本身决定的,所以数仓可以按照对于查询更加友好的方式组织数据的存储,比如对数据文件定期compact到合适的大小或者对数据进行合理排序和分组,对于大规模的数据来说,数据的优化组织可以大大提高查询的效率。在这里需要做一个概念上的澄清:数据湖关注的是对原始数据高效、灵活的处理,DWD 及其他数仓分层是充分设计的数据模型,它并不符合我们对数据湖的定义和需求。原创 2023-03-10 17:44:44 · 4542 阅读 · 0 评论 -
Kafka+Flink+Redis 实现 UV/PV 统计
通过自建 Kafka 集群采集数据,在流计算 Oceanus(Flink)中实时进行字段累加、窗口聚合等操作,将加工后的数据存储在云数据库Redis,统计到实时刷新的 UV、PV 等指标。这个方案在 Kafka json 格式设计时做了简化处理,将浏览记录和产品购买记录都放在了同一个 topic 中,重点通过打通自建 IDC 和腾讯云产品间的网络来展现整个方案。原创 2022-01-25 14:26:01 · 1309 阅读 · 0 评论 -
Flink实时数仓数据采集流程和技术架构
一、日志数据采集SpringBoot --> Nginx--> flume-->Kafka-->flink二、业务数据库数据采集MYsql/Oracle --> Maxwell/canal -->kafka -->flink原创 2021-08-07 23:19:56 · 4074 阅读 · 0 评论 -
Flink CDC 系列 - 同步 MySQL 分库分表,构建 Iceberg 实时数据湖
在 OLTP 系统中,为了解决单表数据量大的问题,通常采用分库分表的方式将单个大表进行拆分以提高系统的吞吐量。但是为了方便数据分析,通常需要将分库分表拆分出的表在同步到数据仓库、数据湖时,再合并成一个大表。这篇教程将展示如何使用 Flink CDC 构建实时数据湖来应对这种场景,本教程的演示基于 Docker,只涉及 SQL,无需一行 Java/Scala 代码,也无需安装 IDE,你可以很方便地在自己的电脑上完成本教程的全部内容。接下来将以数据从 MySQL 同步到 Iceberg[1] 为例原创 2022-01-17 16:28:28 · 3673 阅读 · 4 评论 -
Flink实时数仓:双流 join、维表 join
1、基于 Flink 实现典型的 ETL 场景这里我们主要介绍两大实时 ETL 场景:维表 join 和双流 join。流 join维表预加载维表(读取维度数据库,将数据全量的加载到内存) 热存储关联(Redis、HBase 这样的一些热存储中) 广播维表 Temporal table function join双流 join离线 join vs. 实时 join Regular join Interval join Window join一、 维表 join1...原创 2020-07-31 18:12:53 · 3528 阅读 · 1 评论 -
Spark Streaming 和 Flink 详细对比
Flink 与 Spark Streaming 区别这个问题是一个非常宏观的问题,因为两个框架的不同点非常之多。但是在面试时有非常重要的一点一定要回答出来:Flink 是标准的实时处理引擎,基于事件驱动。 而 Spark Streaming 是微批( Micro-Batch )的模型。下面我们就分几个方面介绍两个框架的主要区别:架构模型:Spark Streaming 在运行时的主要角色包括:Master、Worker、Driver、Executor, Flink 在运行时主要包:Job..原创 2021-10-29 15:06:54 · 3850 阅读 · 0 评论 -
流批一体--将Kafka流式数据摄取至Hudi
Hudi支持以下存储数据的视图读优化视图 : 在此视图上的查询将查看给定提交或压缩操作中数据集的最新快照。该视图仅将最新parquet文件暴露给查询,所以它有可能看不到最新的数据,并保证与非Hudi列式数据集相比,具有相同的列式查询性能 增量视图 : 对该视图的查询只能看到从某个提交/压缩后写入数据集的新数据。该视图有效地提供了更改流,来支持增量数据管道。 实时视图 : 在此视图上的查询将查看某个增量提交操作中数据集的最新快照。该视图通过动态合并最新的基本文件和增量文件来提供近实时数据集。一、将.原创 2021-11-16 11:40:51 · 3746 阅读 · 1 评论 -
Flink CDC + Hudi 海量数据入湖 重写
Flink 启动之后,首先读取当前的 Binlog 信息,标记为 StartOffset ,通过 select 方式将全量数据采集上来,发往下游 Kafka。全量采集完毕之后,再从 startOffset 采集增量的日志信息,发往 Kafka。最终 Kafka 的数据由 Spark 消费后写往 Hudi。但是此架构存在以下三个问题:全量与增量数据存在重复:因为采集过程中不会进行锁表,如果在全量采集过程中有数据变更,并且采集到了这些数据,那么这些数据会与 Binlog 中的数据存在重复;需要下游进行 Upse原创 2022-05-14 21:02:00 · 1090 阅读 · 0 评论 -
Doris 整合 Iceberg+Flink CDC 构建实时湖仓一体的联邦查询分析架构
这里Doris On Iceberg我们只演示了Iceberg单表的查询,你还可以联合Doris的表,或者其他的ODBC外表,Hive外表,ES外表等进行联合查询分析,通过Doris对外提供统一的查询分析入口。自此我们完整从搭建Hadoop,hive、flink 、Mysql、Doris 及Doris On Iceberg的使用全部介绍完了,Doris朝着数据仓库和数据融合的架构演进,支持湖仓一体的联邦查询,给我们的开发带来更多的便利,更高效的开发,省去了很多数据同步的繁琐工作,快快来体验吧。原创 2022-04-17 22:05:52 · 3101 阅读 · 0 评论 -
实时数仓:基于Flink Sql connector:kafka构建实时数仓
时数仓主要是为了解决传统数仓数据时效性低的问题,实时数仓通常会用在实时的OLAP分析、实时的数据看板、业务指标实时监控等场景。虽然关于实时数仓的架构及技术选型与传统的离线数仓会存在差异,但是关于数仓建设的基本方法论是一致的。本文会分享基于Flink SQL从0到1搭建一个实时数仓的demo,涉及数据采集、存储、计算、可视化整个处理流程。通过本文你可以了解到:实时数仓的基本架构 实时数仓的数据处理流程 Flink1.11的SQL新特性 Flink1.11存在的bug 完整的操作案...原创 2022-01-26 21:22:57 · 4941 阅读 · 1 评论 -
Flink实时数仓_DWD层数据准备
第1章 需求分析及实现思路1.1 分层需求分析在之前介绍实时数仓概念时讨论过,建设实时数仓的目的,主要是增加数据计算的复用性。每次新增加统计需求时,不至于从原始数据进行计算,而是从半成品继续加工而成。我们这里从 kafka 的 ods 层读取用户行为日志以及业务数据,并进行简单处理,写回到 kafka 作为 dwd 层。1.2 每层的职能分层 数据描述 生成计算工具 存储媒介 ODS 原始数据,日志和业务数据 日志服务器 maxw...原创 2021-08-07 23:36:10 · 1916 阅读 · 1 评论 -
Flink SQL时间属性和窗口介绍 ,窗口表值函数
在创建表的 DDL(CREATE TABLE 语句)中,可以增加一个字段,通过 WATERMARK语句来定义事件时间属性。WATERMARK 语句主要用来定义水位线(watermark)的生成表达式,这个表达式会将带有事件时间戳的字段标记为事件时间属性,并在它基础上给出水位线的延迟时间。具体定义方式如下:) WITH (...把 ts 字段定义为事件时间属性,而且基于 ts 设置了 5 秒的水位线延迟。原创 2021-08-05 16:36:39 · 2114 阅读 · 0 评论 -
基于 FlinkSQL 构建流批一体准实时数仓
一、背景 基于 Hive 的离线数仓往往是企业大数据生产系统中不可缺少的一环。Hive 数仓有很高的成熟度和稳定性,但由于它是离线的,延时很大。在一些对延时要求比较高的场景,需要另外搭建基于 Flink 的实时数仓,将链路延时降低到秒级。但是一套离线数仓加一套实时数仓的架构会带来超过两倍的资源消耗,甚至导致重复开发。想要搭建流式链路就必须得抛弃现有的 Hive 数仓吗?并不是,借助 Flink 可以实现已有的 Hive 离线数仓准实时化。 离线数仓...原创 2021-12-08 14:00:34 · 3498 阅读 · 0 评论 -
Flink 六道必考面试题总结
下游算子收到barrier之后,会暂停自己的数据处理过程,然后将自身的相关状态制作成快照,并保存到指定的持久化存储中,最后向CheckpointCoordinator报告自身快照情况,同时向自身所有下游算子广播该barrier,恢复数据处理。比如现在开了一个5秒的窗口,但是2秒的数据在5秒数据之后到来,那么5秒的数据来了,是否要关闭窗口呢?可想而知,关了的话,2秒的数据就丢失了,如果不关的话,我们应该等多久呢?,简单来说,就是数据来了之后就开启一个会话窗口,如果接下来还有数据陆续到来,那么就一直保持会话;原创 2021-08-05 18:01:43 · 2949 阅读 · 0 评论 -
Flink实时数仓--ClickHouse数据可视化接口实现、Sugar 数据大屏
1.1 设计思路之前数据分层处理,最后把轻度聚合的结果保存到 ClickHouse 中,主要的目的就是提供即时的数据查询、统计、分析服务。这些统计服务一般会用两种形式展现,一种是为专业的数据分析人员的 BI 工具,一种是面向非专业人员的更加直观的数据大屏。以下主要是面向百度的 sugar 的数据大屏服务的接口开发。1.2.2 分析可视化大屏...原创 2021-08-10 17:33:31 · 2279 阅读 · 1 评论 -
Flink SQL 连接Hive并写入/读取数据
1. 添加依赖下载后把flink-sql-connector-hive-2.2.0_2.11-1.13.0.jar放到flink的lib目录下2. 创建blink版本的批处理Table执行环境EnvironmentSettings bbSettings = EnvironmentSettings.newInstance() .useBlinkPlanner() .inBatchMode() .bui原创 2021-11-05 18:02:39 · 8409 阅读 · 5 评论 -
Flink实时数仓:MySQL 关联 HBase维表数据到写入ClickHouse
本文介绍了结合 MySQL 数据库、Flink、HBase 以及clickhouse来构建实时数仓,并通过流计算 Flink读取 MySQL 数据、关联 HBase 中的维表,最终将数据存入clickhouse进行指标分析,实现完整实时数仓的全流程操作指导。原创 2021-08-10 17:28:53 · 1641 阅读 · 1 评论 -
实时数仓建设
数据智性就显得尤为重要,快速的获取数据反馈能够帮助公司更快的做出决策,更好的进行产品迭代,实时数仓在这一过程中起到了不可替代的作用。原创 2020-07-22 17:55:20 · 22421 阅读 · 5 评论