
Flink
文章平均质量分 93
大数据技术与数仓
欢迎关注我的公众号【大数据技术与数仓】
回复【资料】领取大数据书籍与视频
展开
-
实时数仓|以upsert的方式读写Kafka数据——以Flink1.12为例
在某些场景中,比如GROUP BY聚合之后的结果,需要去更新之前的结果值。这个时候,需要将 Kafka 消息记录的 key 当成主键处理,用来确定一条数据是应该作为插入、删除还是更新记录来处理。在Flink1.11中,可以通过 flink-cdc-connectors 项目提供的 **changelog-json format **来实现该功能。关于该功能的使用,见之前的分享Flink1.11中的CDC Connectors操作实践。在Flink1.12版本中, 新增了一个 upsert connecto原创 2021-01-13 16:30:20 · 6397 阅读 · 2 评论 -
Flink on Hive构建流批一体数仓
Flink使用HiveCatalog可以通过批或者流的方式来处理Hive中的表。这就意味着Flink既可以作为Hive的一个批处理引擎,也可以通过流处理的方式来读写Hive中的表,从而为实时数仓的应用和流批一体的落地实践奠定了坚实的基础。本文将以Flink1.12为例,介绍Flink集成Hive的另外一个非常重要的方面——Hive维表JOIN(Temporal Table Join)与Flink读写Hive表的方式。以下是全文,希望本文对你有所帮助。公众号『大数据技术与数仓』,回复『资料』领取大数据资料原创 2021-01-05 21:13:44 · 1802 阅读 · 0 评论 -
Flink集成Hive之Hive Catalog与Hive Dialect--以Flink1.12
在上一篇分享Flink集成Hive之快速入门–以Flink1.12为例中,介绍了Flink集成Hive的进本步骤。本文分享,将继续介绍Flink集成Hive的另外两个概念:Hive Catalog与Hive Dialect。本文包括以下内容,希望对你有所帮助。什么是Hive Catalog如何使用Hive Catalog什么是Hive Dialect如何使用Hive Dialect公众号『大数据技术与数仓』,回复『资料』领取大数据资料包什么是Hive Catalog我们知道,Hive使原创 2020-12-22 09:43:25 · 1390 阅读 · 0 评论 -
Flink集成Hive之快速入门--以Flink1.12为例
使用Hive构建数据仓库已经成为了比较普遍的一种解决方案。目前,一些比较常见的大数据处理引擎,都无一例外兼容Hive。Flink从1.9开始支持集成Hive,不过1.9版本为beta版,不推荐在生产环境中使用。在Flink1.10版本中,标志着对 Blink的整合宣告完成,对 Hive 的集成也达到了生产级别的要求。值得注意的是,不同版本的Flink对于Hive的集成有所差异,本文将以最新的Flink1.12版本为例,阐述Flink集成Hive的简单步骤,以下是全文,希望对你有所帮助。公众号『大数据技术原创 2020-12-21 09:37:21 · 6292 阅读 · 1 评论 -
项目实践|基于Flink的用户行为日志分析系统
用户行为日志分析是实时数据处理很常见的一个应用场景,比如常见的PV、UV统计。本文将基于Flink从0到1构建一个用户行为日志分析系统,包括架构设计与代码实现。本文分享将完整呈现日志分析系统的数据处理链路,通过本文,你可以了解到:基于discuz搭建一个论坛平台Flume日志收集系统使用方式Apache日志格式分析Flume与Kafka集成日志分析处理流程架构设计与完整的代码实现项目简介本文分享会从0到1基于Flink实现一个实时的用户行为日志分析系统,基本架构图如下:首先会先搭建一原创 2020-08-30 21:35:17 · 1604 阅读 · 0 评论 -
实时数仓|基于Flink1.11的SQL构建实时数仓探索实践
实时数仓主要是为了解决传统数仓数据时效性低的问题,实时数仓通常会用在实时的OLAP分析、实时的数据看板、业务指标实时监控等场景。虽然关于实时数仓的架构及技术选型与传统的离线数仓会存在差异,但是关于数仓建设的基本方法论是一致的。本文会分享基于Flink SQL从0到1搭建一个实时数仓的demo,涉及数据采集、存储、计算、可视化整个处理流程。通过本文你可以了解到:实时数仓的基本架构实时数仓的数据处理流程Flink1.11的SQL新特性Flink1.11存在的bug完整的操作案例古人学问无遗力,原创 2020-08-16 23:11:17 · 1795 阅读 · 2 评论 -
Flink1.11中的CDC Connectors操作实践
Flink1.11引入了CDC的connector,通过这种方式可以很方便地捕获变化的数据,大大简化了数据处理的流程。Flink1.11的CDC connector主要包括:MySQL CDC和Postgres CDC,同时对Kafka的Connector支持canal-json和debezium-json以及changelog-json的format。本文主要分享以下内容:CDC简介Flink提供的 table format使用过程中的注意点mysql-cdc的操作实践canal-json的操原创 2020-08-13 22:53:59 · 6574 阅读 · 12 评论 -
实时数仓|Flink SQL之维表join
维表是数仓中的一个概念,维表中的维度属性是观察数据的角度,在建设离线数仓的时候,通常是将维表与事实表进行关联构建星型模型。在实时数仓中,同样也有维表与事实表的概念,其中事实表通常存储在kafka中,维表通常存储在外部设备中(比如MySQL,HBase)。对于每条流式数据,可以关联一个外部维表数据源,为实时计算提供数据关联查询。维表可能是会不断变化的,在维表JOIN时,需指明这条记录关联维表快照的时刻。需要注意是,目前Flink SQL的维表JOIN仅支持对当前时刻维表快照的关联(处理时间语义),而不支持事实原创 2020-08-07 23:13:52 · 2968 阅读 · 1 评论 -
Flink的时间与watermarks详解
当我们在使用Flink的时候,避免不了要和时间(time)、水位线(watermarks)打交道,理解这些概念是开发分布式流处理应用的基础。那么Flink支持哪些时间语义?Flink是如何处理乱序事件的?什么是水位线?水位线是如何生成的?水位线的传播方式是什么?让我们带着这些问题来开始本文的内容。时间语义基本概念时间是Flink等流处理中最重要的概念之一,在 Flink 中 Time 可以分为三种:Event-Time,Processing-Time 以及 Ingestion-Time,如下图所示原创 2020-08-07 22:51:32 · 1696 阅读 · 1 评论 -
Flink Table API&SQL编程指南之时间属性(3)
Flink总共有三种时间语义:Processing time(处理时间)、Event time(事件时间)以及Ingestion time(摄入时间)。关于这些时间语义的具体解释,可以参考另一篇文章Flink的时间与watermarks详解。本文主要讲解Flink Table API & SQL中基于时间的算子如何定义时间语义。通过本文你可以了解到:时间属性的简介处理时间事件时间时间属性简介Flink TableAPI&SQL中的基于时间的操作(如window),需要指定时间语原创 2020-08-07 22:45:53 · 483 阅读 · 0 评论 -
Flink Table API & SQL编程指南之动态表(2)
在Flink Table API & SQL编程指南(1)一文中介绍了Flink Table API &SQL的一些基本的概念和通用的API,在本文将会更加深入地讲解Flink Table API &SQL的流处理的基本概念。Flink Table API &SQL是实现了批流处理的统一,这也意味着无论是有界的批处理输入还是无界的流处理输入,使用Flink Table API &SQL进行查询操作,都具有相同的语义。此外,由于SQL最初是为批处理而设计的,所有在无界流原创 2020-08-07 22:44:02 · 345 阅读 · 0 评论 -
Flink Table API & SQL编程指南(1)
Apache Flink提供了两种顶层的关系型API,分别为Table API和SQL,Flink通过Table API&SQL实现了批流统一。其中Table API是用于Scala和Java的语言集成查询API,它允许以非常直观的方式组合关系运算符(例如select,where和join)的查询。Flink SQL基于Apache Calcite 实现了标准的SQL,用户可以使用标准的SQL处理数据集。Table API和SQL与Flink的DataStream和DataSet API紧密集成在.原创 2020-06-01 09:33:23 · 783 阅读 · 0 评论 -
Flink DataSet API编程指南
Flink最大的亮点是实时处理部分,Flink认为批处理是流处理的特殊情况,可以通过一套引擎处理批量和流式数据,而Flink在未来也会重点投入更多的资源到批流融合中。我在Flink DataStream API编程指南中介绍了DataStream API的使用,在本文中将介绍Flink批处理计算的DataSet API的使用。通过本文你可以了解:DataSet转换操作(Transformation)Source与Sink的使用广播变量的基本概念与使用Demo分布式缓存的概念及使用DemoData原创 2020-05-12 22:23:11 · 697 阅读 · 0 评论 -
大数据、数仓、Flink、spark、机器学习视频文档资料分享
关注【大数据技术与数仓】免费领取大数据视频与书籍回复:【资料】,获取链接地址分享并转移具有实践意义的大数据知识大数据技术视频01关注公众号回复:资料Flink视频02关注公众号回复:资料机器学习视频03关注公众号回复:资料数据结构与算法04关注公众号回复:...转载 2020-05-08 13:01:37 · 352 阅读 · 0 评论 -
透过窗口看无限数据流——Flink的Window全面解析
欢迎关注我的公众号:大数据技术与数仓免费领取百G大数据资料窗口是流式计算中非常常用的算子之一,通过窗口可以将无限流切分成有限流,然后在每个窗口之上使用计算函数,可以实现非常灵活的操作。Flink提供了丰富的窗口操作,除此之外,用户还可以根据自己的处理场景自定义窗口。通过本文,你可以了解到:窗口的基本概念和简单使用内置Window Assigners的分类、源码及使用Windo...原创 2020-05-08 09:30:01 · 872 阅读 · 0 评论 -
Flink DataStream API 中的多面手——Process Function
在Flink的时间与watermarks详解这篇文章中,阐述了Flink的时间与水位线的相关内容。你可能不禁要发问,该如何访问时间戳和水位线呢?首先通过普通的DataStream API是无法访问的,需要借助Flink提供的一个底层的API——Process Function。Process Function不仅能够访问时间戳与水位线,而且还可以注册在将来的某个特定时间触发的计时器(timers...原创 2020-05-05 19:43:01 · 745 阅读 · 0 评论 -
你真的了解Flink Kafka source吗?
Flink 提供了专门的 Kafka 连接器,向 Kafka topic 中读取或者写入数据。Flink Kafka Consumer 集成了 Flink 的 Checkpoint 机制,可提供 exactly-once 的处理语义。为此,Flink 并不完全依赖于跟踪 Kafka 消费组的偏移量,而是在内部跟踪和检查偏移量。引言当我们在使用Spark Streaming、Flink等计算框...原创 2020-04-06 19:54:42 · 1240 阅读 · 0 评论 -
Flink1.10集成Hive快速入门
Hive 是大数据领域最早出现的 SQL 引擎,发展至今有着丰富的功能和广泛的用户基础。之后出现的 SQL 引擎,如 Spark SQL、Impala 等,都在一定程度上提供了与 Hive 集成的功能,从而方便用户使用现有的数据仓库、进行作业迁移等。Flink从1.9开始支持集成Hive,不过1.9版本为beta版,不推荐在生产环境中使用。在最新版Flink1.10版本,标志着对 Blink的整...原创 2020-04-01 14:03:33 · 2339 阅读 · 0 评论 -
Flink的八种分区策略源码解读
Flink包含8中分区策略,这8中分区策略(分区器)分别如下面所示,本文将从源码的角度一一解读每个分区器的实现方式。GlobalPartitionerShufflePartitionerRebalancePartitionerRescalePartitionerBroadcastPartitionerForwardPartitionerKeyGroupStreamPartition...原创 2020-03-30 21:23:38 · 1180 阅读 · 0 评论 -
基于Canal与Flink实现数据实时增量同步(二)
本文主要从Binlog实时采集和离线处理Binlog还原业务数据两个方面,来介绍如何实现DB数据准确、高效地进入Hive数仓。背景在数据仓库建模中,未经任何加工处理的原始业务层数据,我们称之为ODS(Operational Data Store)数据。在互联网企业中,常见的ODS数据有业务日志数据(Log)和业务DB数据(DB)两类。对于业务DB数据来说,从MySQL等关系型数据库的业务数据...原创 2020-03-29 12:56:32 · 2886 阅读 · 7 评论 -
基于Canal与Flink实现数据实时增量同步(一)
canal是阿里巴巴旗下的一款开源项目,纯Java开发。基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL(也支持mariaDB)。准备常见的binlog命令# 是否启用binlog日志show variables like 'log_bin';# 查看binlog类型show global variables like 'binlog_format';...原创 2020-03-29 12:52:29 · 5058 阅读 · 2 评论 -
Flink运行架构剖析
本文主要介绍 Flink Runtime 的作业执行的核心机制。首先介绍 Flink Runtime 的整体架构以及 Job 的基本执行流程,然后介绍Flink 的Standalone运行架构,最后对Flink on YARN的两种模式进行了详细剖析。Flink相关资料Flink Runtime作业执行流程分析整体架构图Flink Runtime 层的主要架构如下图所示,它展示了一个 Fl...原创 2019-10-23 13:40:02 · 573 阅读 · 0 评论 -
Flink on YARN执行流程
前置: YARN客户端需要访问Hadoop的配置文件,从而能够连接到YARN资源管理器和HDFS。主要使用以下方式确定Hadoop的配置文件: 测试是否按顺序配置了YARN_CONF_DIR,HADOOP_CONF_DIR或HADOOP_CONF_PATH。如果配置了其中一个变量,则会读取该配置文件。 如果上述方式失败(在正确的YARN设置中不...原创 2019-07-30 11:13:57 · 1158 阅读 · 0 评论 -
Flink Standalone集群部署
1.配置conf/flink-conf.yaml (1)env.java.home key:配置jdk安装路径 (2)jobmanager.rpc.address:Master节点的地址 (3)jobmanager.heap.mb:jobmanager JVM的堆内存大小,默认1024m (4)taskmanager.heap.mb:task...原创 2019-07-30 13:01:29 · 302 阅读 · 0 评论 -
Flink部署报错(Could not resolve ResourceManager address)处理
问题描述:启动集群之后,taskmanager无法连接到/resourcemanager,报错为:2019-08-06 13:38:54,733 INFO org.apache.flink.runtime.net.ConnectionUtils - Failed to connect from address 'flink001/132.232.80.1...原创 2019-08-06 13:51:45 · 39916 阅读 · 0 评论 -
Flink报错akka.pattern.AskTimeoutException: Ask timed out on [Actor[akka://flink/user/dispatcher#931521
问题描述:flink集群正常启动,但是提交作业之后会报错,再次刷新flink的web界面时,会显示:{"errors":["Could not retrieve the redirect address of the current leader. Please try to refresh."]}主要报错为:org.apache.flink.client.program.Progra...原创 2019-08-06 15:06:53 · 7343 阅读 · 10 评论 -
Flink零基础入门系列
Apache Flink 零基础入门(一):基础概念解析Apache Flink 零基础入门(二):开发环境搭建和应用的配置、部署及运行Apache Flink 零基础入门(三):DataStream API 编程Apache Flink 零基础入门(四):客户端操作----------------------------------------------------------...转载 2019-08-13 11:39:56 · 866 阅读 · 0 评论 -
Flink的状态后端(State Backends)
title: Flink的状态后端(State Backends)categories:Flinktags:flinkdate: 2019-08-23 11:38:00当使用checkpoint时,状态(state)会被持久化到checkpoint上,以防止数据的丢失并确保发生故障时能够完全恢复。状态是通过什么方式在哪里持久化,取决于使用的状态后端。可用的状态后端Memo...原创 2019-08-23 14:14:25 · 2770 阅读 · 1 评论 -
Apache Flink简介
一、发展历史Flink起源于一个名为Stratosphere的研究项目,目的是建立下一代大数据分析平台,于2014年4月16日成为Apache孵化器项目。Stratosphere的最初版本是基于Neffele的研究论文。下面的图表显示了Stratosphere随时间的演化:二、Flink架构Flink1.X的架构包括各种组件,比如deploy,core processing和API...原创 2018-11-13 18:04:46 · 1299 阅读 · 1 评论