首页
学习
活动
专区
工具
TVP
发布

Flink实战剖析

专栏作者
95
文章
74131
阅读量
18
订阅数
OLAP介绍
OLAP(On-Line Analytical Processing)即联机分析处理,通过对数据大量分析,得出分析报告,提供决策支持,其侧重数据分析能力,比喻说用户行为分析。
Flink实战剖析
2022-11-21
1.3K0
ZooKeeper数据存储与数据同步机制
ZooKeeper中,数据存储分为两部分,内存数据(ZKDatabase)与磁盘数据(事务日志 + 事务快照)。
Flink实战剖析
2022-11-21
1.3K0
Flink中: 你的Function是如何被执行的
在Flink编程中,不管你是使用DataStream api还是 Table/SQL ,接触最多的就是UserFunction , 比喻说MapFunction、ScalarFunction, 在这些Function 里面可以自定义用户的业务处理逻辑,但是这些Function是如何被调用的呢?本文主要介绍Function 被调用的流程以及对应的方法如何被调用的。
Flink实战剖析
2022-11-21
8180
知根知底: Flink Kafka-Producer详解
在实时数仓分层中,Kafka是一种比较常见的中间存储层,而在分布式计算中由于硬件、软件等异常导致的任务重启是一种正常的现象,通过之前的Kafka-Consumer分析得知,offset 是跟随着checkpoint周期性的保存, 那么消息是有可能被重复消费的,而Kafka 作为输出端并不属于整个Flink任务状态的一部分,重复被消费的消息会重复的输出,因此为了保证输出到Kafka数据的一致性,Flink 在Kafka Sink端的事务语义。本篇主要介绍Kafka-Sink 的执行流程与核心设计。
Flink实战剖析
2022-06-10
5210
HBase写入全流程剖析
HBase采用LSM树架构,天生适用于写多读少的应用场景。在真实生产环境中,也正是因为HBase集群出色的写入能力,才能支持当下很多数据激增的业务。需要说明的是,HBase服务端并没有提供update、delete接口,HBase中对数据的更新、删除操作在服务器端也认为是写入操作,不同的是,更新操作会写入一个最新版本数据,删除操作会写入一条标记为deleted的KV数据。所以HBase中更新、删除操作的流程与写入流程完全一致。当然,HBase数据写入的整个流程随着版本的迭代在不断优化,但总休流程变化不大。
Flink实战剖析
2022-06-10
1K0
知根知底:Flink-KafkaConsumer 详解
Flink-Kafka Connector 是连接kafka 的连接器,负责对接kafka 的读写, 本篇主要介绍kafka consumer 的执行流程与核心设计。
Flink实战剖析
2022-06-10
6670
HBase RowKey 设计与查询实践
HBase 作为一款分布式的NoSQL数据库,数据的分布根据rowKey range方式来划分,每个Region 存储了一定范围rowKey 的数据, 数据的读写通常情况下需要指定rowKey 来定位到具体的Region 与 RegionServer, 如果大量的请求根据rowKey都打到同一个Region或者很少的Region上,那么这些Region就会形成热点, 无法使用集群特性有效负载均衡。因此,RowKey 的设计在实践中至关重要。
Flink实战剖析
2022-06-10
1K0
ZooKeeper在HBase集群中的作用
ZooKeeper作为分布式协调组件,在大数据领域的其他分布式组件中往往扮演着重要的辅助角色,因此我们就算不单独去研究ZooKeeper,也短不了要接触它。本文就以最典型的HBase为例,简要介绍ZooKeeper为HBase提供了哪些功能。
Flink实战剖析
2022-04-20
1.2K0
Clickhouse-MergeTree原理解析
表引擎是ClickHouse设计实现中的一大特色。可以说,是表引擎决定了一张数据表最终的“性格”,比如数据表拥有何种特性、数据以何种形式被存储以及如何被加载。ClickHouse拥有非常庞大的表引擎体系,截至本书完成时,其共拥有合并树、外部存储、内存、文件、接口和其他6大类20多种表引擎。而在这众多的表引擎中,又属合并树(MergeTree)表引擎及其家族系列(*MergeTree)最为强大,在生产环境的绝大部分场景中,都会使用此系列的表引擎。因为只有合并树系列的表引擎才支持主键索引、数据分区、数据副本和数据采样这些特性,同时也只有此系列的表引擎支持ALTER相关操作。合并树家族自身也拥有多种表引擎的变种。其中MergeTree作为家族中最基础的表引擎,提供了主键索引、数据分区、数据副本和数据采样等基本能力,而家族中其他的表引擎则在MergeTree的基础之上各有所长。例如ReplacingMergeTree表引擎具有删除重复数据的特性,而SummingMergeTree表引擎则会按照排序键自动聚合数据。如果给合并树系列的表引擎加上Replicated前缀,又会得到一组支持数据副本的表引擎,例如ReplicatedMergeTree、ReplicatedReplacingMergeTree、ReplicatedSummingMergeTree等。合并树表引擎家族如图所示:
Flink实战剖析
2022-04-18
1.2K0
Count-Distinct实践: 万亿级数据量任务优化方式
在默认情况下,相同的visit_type 的pv_id 会被分配到同一个reducer中处理,如果某个visit_type的数据量特别大,那么对应的reducer执行耗时会比较久或者可能会发生OOM,因此常规优化方式是:
Flink实战剖析
2022-04-18
6420
join实践: 万亿级数据量任务优化历程
重新分析两张表数据量,a 表数据量750w+, b 表数据量350w+, 在未做任何优化情况下数据是需要经过shuffle, 将相同的key分布到相同的节点上, 首先考虑使用mapjoin 解决,使其不用执行shuffle操作。
Flink实战剖析
2022-04-18
4470
数仓设计的几点原则
高内聚、低耦合是软件设计的常见概念,特别是在软件模块划分中会被常常提起,需要将功能相同的内聚在一起,将职责不同的功能解耦, 比喻说常见的MVC 分层模式,每一层负责单独的功能。高内聚、低耦合可以使得软件模块职责划分清晰,后期扩展性强,便于维护。
Flink实战剖析
2022-04-18
3300
闲聊面试
最近有不少同学咨询面试应该怎么准备?一般面试官会问哪些问题?对于这些比较困惑或者是感觉需要准备的东西太多了无从下手,所以这篇文章主要聊聊自己的看法,希望能够帮助建立系统性上的思考,应该怎么去准备。面试其实是自我检验的一个过程,不仅仅是技术上的考察,更是自我总结的能力的考察,因此,我会从技术细节、技术架构、项目目标三个维度上谈一谈自己的理解。
Flink实战剖析
2022-04-18
4970
Flink程序设计之道
软件架构的复杂性通常并不是由功能性需求来决定,而是取决于非功能性需求,例如高性能、高可用、易扩展、易运维、低成本等要求,功能性需求通常是易于实现的,但是为了满足非功能性需求需要去做不同的技术方案选型对比、架构设计等,比喻说为了实现高性能,要去做缓存、分库分表、预计算、异步等方案,这些方案会提高系统的复杂程度。对于Flink程序开发同样会面临这些问题,在设计、实现之初除了需要考虑如何满足功能性需求外,还需要考虑性能、容错等非功能需求。本文将结合自己的实际开发经验从以下几个方面来介绍做一个实时Flink程序设计需要关注的一些问题:
Flink实战剖析
2022-04-18
2830
AliExpress基于Flink的广告实时数仓建设
摘要:实时数仓以提供低延时数据指标为目的供业务实时决策,本文主要介绍基于Flink的广告实时数仓建设,主要包括以下内容:
Flink实战剖析
2022-04-18
9290
Flink端到端一致性
流式计算中,端到端表示从外部读取数据、中间处理、数据输出外部三个处理环节。在理想状态即7*24任务不出错或者异常情况下,也就是每一步处理都正常,那么就能保证最终处理输出的数据正确,但是在实际的情况中,可能会出现网络、磁盘、脏数据、OOM等各种异常导致程序失败,也就是端到端任何一个处理环节都有可能失败,为了保证最终数据的正确性,需要提供一种机制保障在面对任何情况的情况下,任务仍然恢复到正确的状态,也就是本篇要说的端到端的一致性。
Flink实战剖析
2022-04-18
9490
数仓指标一致性
正确性:正确性代表了指标的可信度,如果一个指标无法保证其正确性,那么是不能提供出去使用,因为很有可能会导致作出错误的业务决策,通常会使用明细数据对比、维度交叉对比、实时对比离线等方式校验数据的正确性;另外一方面可以增加一些DQC校验,例如唯一性验证、最大/最小值验证等。
Flink实战剖析
2022-04-18
3810
编码方式实现Split Distinct Aggregation功能
去重指标作为业务分析里面的一个重要指标,不管是在OLAP存储引擎还是计算引擎都对其实现做了大量工作,在面对不同的数据量、指标精确性要求,都有不同的实现方式,但是总体都逃脱不了硬算、两阶段方式、bitmap、hll等这些实现。本文将分析Split Distinct Aggregation实现原理与使用代码方式实现其功能。
Flink实战剖析
2022-04-18
4270
从需求场景下出发实操Clickhouse
本着以实时数仓为目标调研了几款OLAP引擎,像Clickhouse、Kylin、Druid等,在粗略了解其架构后,并且在接受各个大厂Clickhouse实践、高性能测试报告、最近业界发展势头凶猛的熏陶与PUA情况下,不得已选择了Clickhouse,当然自己也做过一些测试,本篇将介绍clickhouse的一些原理、实践方案(可能还未实现、可能并不是最佳)与遇到的一些问题,总之只是希望能够为您接下来选择clickhouse 或者解决一些问题提供一个参考的思路,仅此而已。
Flink实战剖析
2022-04-18
5470
Flink-Cep实现规则动态更新
规则引擎通常对我们的理解就是用来做模式匹配的,在数据流里面检测满足规则要求的数据。有人会问为什么需要规则动态变更呢?直接修改了规则把服务重启一下不就可以了吗,这个当然是不行的,规则引擎里面通常会维护很多不同的规则,例如在监控告警的场景下,如果每个人修改一下自己的监控阈值,就重启一下服务,必然会影响其他人的使用,因此需要线上满足规则动态变更加载。本篇基于Flink-Cep 来实现规则动态变更加载,同时参考了Flink中文社区刘博老师的分享(https://developer.aliyun.com/article/738454),在这个分享里面是针对在处理流中每一个Key使用不同的规则,本篇的讲解将不区分key的规则。
Flink实战剖析
2022-04-18
1.5K0
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档