
Spark/Flink/Doris离线&实时数仓开发
文章平均质量分 88
本人长期从事大数据开发,从0到1做过多个互联网和政府类的数据仓库项目开发。本专栏介绍从0到1搭建数据仓库的过程,分享数据仓库开发过程遇到各种问题和如何优化,小白用户也能快速成为中高级的数仓开发工程师。
Doris来替代hive存储数据,可以解决hive占用存储空间大和ADS层查询慢等痛点。
优惠券已抵扣
余额抵扣
还需支付
¥9.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
大模型大数据攻城狮
在阿里巴巴等多种类型公司工作过,第一份工作是在大厂做移动开发,后来在创业公司由于团队需要做后台开发、嵌入式开发等几乎全栈开发,最近这些年还保持必要全栈开发,精力更多在大数据、大模型等领域。
展开
-
数据分析工作流程全解析:从混沌到洞察的旅程
数据分析,听起来像是技术活,但本质上更像是一门艺术——从一堆杂乱无章的数字、文本和记录中,挖掘出可以指导行动的洞察。它不是简单地盯着表格发呆,而是通过工具、技术和流程,把原始数据变成能解决实际问题的“金子”。让数据说话,帮人做决策。分类的魔法:通过研究已有的分类数据,摸索出规律,然后用这些规律去预测未知。比如,电商平台根据用户的历史购买记录,判断哪些人可能是“剁手党”。关联与推荐:在大规模数据里找出事物之间的联系,比如“买了面包的人通常也会买牛奶”,这背后是关联规则的功劳,也是推荐系统的核心逻辑。原创 2025-03-21 08:52:30 · 437 阅读 · 0 评论 -
大数据 ETL 异常值缺失值处理完整方案
异常值,通常指在统计分布上远离大部分数据点的个体,这些数据可能由于录入错误、设备故障、传输异常或真实的极端事件所引发。了解异常值的本质和成因,有助于我们选择恰当的处理策略。原创 2025-03-19 11:57:20 · 1069 阅读 · 0 评论 -
Spark DataFrame、Dataset 和 SQL 解析原理深入解析(万字长文多张原理图)
Spark 是一个分布式计算框架,其架构设计旨在实现高效的并行处理和容错能力。核心计算引擎(Core Engine):核心计算引擎负责任务调度、内存管理以及容错机制。它通过 Driver 和 Executor 的协作完成分布式计算,其中 Driver 负责作业的协调和调度,Executor 负责具体任务的执行。相关源码可以参考类,它是 Spark 核心计算引擎的入口类。// 简化示意,创建 SparkContext 实例弹性分布式数据集(RDD)原创 2025-03-17 11:06:52 · 694 阅读 · 0 评论 -
深度剖析 Doris 数据倾斜,优化方案一网打尽
简单来说,数据倾斜指的是数据在分区或分桶时分布不均匀的现象。想象一下,你把一堆苹果分给几个篮子,结果有的篮子装得满满当当,有的却几乎是空的 —— 这就是数据倾斜在 Doris 中的写照。在分布式系统中,这种不均匀分布会直接影响到数据的存储、查询和计算效率。分区层面:数据按时间、地域等维度切分时,某些分区可能承载了绝大部分数据。分桶层面:数据按哈希值分配到不同桶中时,某些桶可能因为键值分布不均而 “超载”。原创 2025-03-14 00:02:08 · 962 阅读 · 0 评论 -
Hbase高阶知识:HBase的协处理器(Coprocessor)原理、使用实例、高级技巧和案例分析
HBase,作为一个开源的、分布式的、可扩展的以及基于列的NoSQL数据库,已被广泛应用于存储大规模数据集。其架构设计和数据模型是理解HBase工作原理和性能特点的基础。HBase的架构由多个关键组件构成,包括Client、Zookeeper、Master和RegionServer等。其中,Client负责与用户进行交互,接收用户的请求并返回结果;Zookeeper则负责协调和管理HBase集群中的各个组件,确保系统的高可用性;原创 2024-09-28 00:00:47 · 929 阅读 · 0 评论 -
指标异动拆解:数据分析师的实战指南
在数据分析的世界里,指标异动指的是业务指标出现长期、持续性且偏离常规走势的变化。这不仅仅是数字上的起伏,更像是业务发出的“信号”,提醒我们某些地方可能出了问题,或者隐藏着未被发现的机会。比如,电商平台的销售额突然暴跌,或者某个APP的日活用户数意外飙升,这些都可能是指标异动的表现。但要注意,异动和普通波动可不是一回事。真正的异动往往需要我们跳出数据的表面,去探究背后的业务含义。这就要求分析师不仅要对数字敏感,更得对业务有深刻的理解。只有这样,才能在茫茫数据海中抓住那些值得深挖的“异常信号”。原创 2025-02-27 00:13:28 · 777 阅读 · 0 评论 -
一文搞定 Linux 定时任务及脚本编写,运维大神都在用
函数是 Shell 脚本实现模块化的关键,它就像是脚本中的一个个 “功能小模块”,能够将一些常用的代码片段封装起来,提高代码的复用性和可维护性。函数的定义方式有两种,可以通过。原创 2025-02-22 10:39:08 · 389 阅读 · 0 评论 -
大数据选型对比追命连环50问及参考答案
Spark 比 MapReduce 运行快有多方面原因。首先,从数据处理模型来看,MapReduce 采用的是较为传统的两阶段模型,即 Map 阶段和 Reduce 阶段,数据在这两个阶段之间需要进行磁盘读写操作。例如,在一个简单的单词计数任务中,Map 阶段输出的中间结果需要写入磁盘,Reduce 阶段再从磁盘读取这些中间结果进行处理。而 Spark 基于内存计算模型,在可能的情况下,数据会被缓存在内存中,减少了磁盘 I/O 开销。原创 2024-10-28 00:10:31 · 517 阅读 · 0 评论 -
Flink Checkpoint 终极揭秘:不搞懂它,你的流计算就是裸奔!
在流式处理系统中,数据是连续不断地流动的。为了保证数据处理的容错性和一致性,Flink 引入了 Checkpoint 机制。Checkpoint 本质上是应用状态在某个时间点的全局快照。关键概念:在 Flink 流式应用中,算子(operators)为了进行有状态的计算(例如窗口聚合、连接操作等)需要维护自身的状态信息。状态包括算子的内部数据结构,例如哈希表、缓冲区、窗口的中间结果等等。Checkpoint 记录的是整个 Flink 应用在某一时刻所有算子状态的一致性视图。原创 2025-02-20 00:39:11 · 449 阅读 · 0 评论 -
Flink SQL与Doris实时数仓Join实战教程(理论+实例保姆级教程)
在实时数仓中,由于数据不断流动,如果状态数据长时间保留,会占用大量内存。例如,通过设置水位线来标记流中数据的时间进展,确保在进行连接操作时,只处理已经到达的最新数据,避免因数据乱序导致的错误连接。💡想象一下,我们有两个数据流,就像两条流淌的数据河流,Regular Joins 要做的就是在这两条河流中找到相互匹配的数据元素,并将它们组合在一起。在实时流数据中,每个数据元素都带有时间属性,而 Interval Joins 就是利用这些时间属性,在不同流的数据之间找到时间上有交集的记录,并将它们连接起来。原创 2025-02-18 07:25:15 · 1022 阅读 · 0 评论 -
数智融合:如何利用大模型解决离线数仓历史项目烟囱式开发的完整解决方案
许多企业的离线数仓存在烟囱式开发的问题,各个业务部门独立开发自己的数据处理流程和 SQL 代码,缺乏统一的规划和标准。这导致不同业务线的 SQL 文件分散在不同的地方,难以进行统一的管理和维护。有时项目为了赶进度,没时间考虑全局优化,匆忙写SQL上线,也会存在烟囱式问题。烟囱式开发会造成计算资源浪费,造成指标不一致,并为以后开发指标埋下隐患。如果人工的分析这些问题,如果项目复杂或之前没接手过的,会耗费不少时间,可以借助大模型来辅助整个优化过程,达到事半功倍的效果。原创 2025-02-12 00:09:26 · 626 阅读 · 0 评论 -
如何对比某个表在Hive和Doris磁盘空间大小和Doris表如何优化存储空间保姆级教程(亲试可用)
在列式存储中,表的每一列会独立存储,这为压缩技术的应用提供了便利,从而提高了存储效率。数据的顺序越有规律,压缩算法在压缩时可以识别出更多的重复模式,从而提升压缩比。在 Hive 中查看某个表占用的磁盘空间,通常依赖于底层的存储系统(如 HDFS)来查询表的实际存储情况。:通过合并小文件,减少存储碎片,提高存储效率。列中空值的比例较高时,压缩算法可能会更有效,因为压缩算法会将这些空值作为一种特殊的模式进行编码,减少存储空间。通常我们关注的并不是表定义中的字段长度,而是实际数据中的最大值或者存储中的数据特征。原创 2025-02-11 00:06:28 · 639 阅读 · 0 评论 -
Flink 背压与消息积压难题大揭秘!速看解决攻略
使用自定义 Partitioner,更均匀地分配数据。例如,使用。原创 2025-02-10 00:09:50 · 742 阅读 · 0 评论 -
Flink 调用海豚调度器 SQL 脚本实现1份SQL流批一体化的方案和可运行的代码实例
在大数据处理领域,传统的数据处理方式通常将批处理和流处理分开进行。批处理主要用于处理历史数据,通常以固定时间间隔(如每天、每周)进行数据处理和分析;而流处理则专注于实时数据的处理,对数据进行实时的响应和分析。这种分离的处理方式导致了开发和维护的复杂性增加,需要为批处理和流处理分别编写代码,并且在代码逻辑发生变化时,需要在两个不同的代码库中进行修改,容易出现不一致的情况。流批一体化的概念应运而生,它旨在通过统一的编程模型和执行引擎,实现批处理和流处理的统一。原创 2025-02-08 11:52:12 · 889 阅读 · 0 评论 -
一文吃透!DataStage 全面概述与核心知识要点大公开
DataStage 是 IBM 公司精心打造的数据集成工具,在 IBM WebSphere Data Integration Suite 里占据着举足轻重的地位。它主要应用于 ETL(Extract, Transform, Load)流程,也就是数据的抽取、转换与加载。想象一下,企业的数据就像一座庞大的宝藏库,里面有各种各样的宝贝(数据),但这些宝贝可能分散在不同的地方,而且有的还需要打磨(转换)才能真正发挥价值。原创 2025-02-08 00:09:07 · 522 阅读 · 0 评论 -
Doris更新某一列数据完整教程
在Doris,要更新数据,并不像mysql等关系型数据库那样方便,可以用update set来直接更新某个列。原创 2025-02-07 21:16:32 · 318 阅读 · 0 评论 -
Flink把kafa数据写入Doris的N种方法及对比。
用Flink+Doris来开发实时数仓,首要解决是如何接入kafka实时流,下面是参考Doris官方文档和代码,在自己项目开发的实践中总结,包括一些容易踩坑的细节。原创 2025-01-22 00:05:57 · 1210 阅读 · 0 评论 -
采用海豚调度器+Doris开发数仓保姆级教程(满满是踩坑干货细节,持续更新)
如果需要设置动态分区永不过期,要如下面这样设置: 'dynamic_partition.start' = '-2147483648',如果生命周期不要那么长,只需要30天,可以设置: 'dynamic_partition.start' = '30'。可以用navicat等工具,像连接mysql一样(不同的是端口默认是9030),先直接在doris进行开发调试,查询速度扛扛的,开发效率提升好多。的方式时来覆盖每天的分区。如果要接入的数据是主键不重复的,可以设置为Unique模型,这样可以删除或修改。原创 2025-01-17 00:06:30 · 1130 阅读 · 0 评论 -
Flink集成TDEngine来批处理或流式读取数据进行流批一体化计算(Flink SQL)拿来即用的案例
/ 使用 transient 避免序列化// JDBC连接参数在open()方法中初始化@Override// 在这里初始化数据库连接// 准备SQL查询语句@Override// 从ResultSet中提取数据并转换为RunData对象// 将数据发送到Flink的处理流中if (data!= null) {@Override// 关闭资源try {// 处理关闭资源时的异常// 提取单行数据。原创 2025-01-10 16:10:22 · 1021 阅读 · 0 评论 -
企业实战干货分享:Flink的实时数仓误差原因详解,如何利用离线计算修正结果保姆级教程
当节点重启后,从持久化存储恢复状态时,可能因状态快照不完整、恢复过程出错等,致使后续计算基于错误的初始状态,像实时统计用户连续登录天数,若状态恢复有误,就会给出错误的连续登录天数统计,误导业务分析。例如,在实时数据流中,如果某些数据源的传输延迟较高,或者数据被缓冲后才批量发送,Flink可能无法实时获得完整的最新数据,导致计算结果不准确。在实时计算过程中,当系统发现某些实时计算结果存在偏差时,可以通过增量修正的方式,即基于离线计算的最新数据,对误差较大的结果进行回填修正。原创 2024-12-26 00:01:30 · 1312 阅读 · 0 评论 -
万字长文详解Hive聚合函数 grouping sets、cube、rollup原理、语法、案例和优化
这种灵活性使得GROUPING SETS在处理特定维度组合时更为高效。在性能方面,由于CUBE需要计算所有可能的维度组合,因此在处理大型数据集时可能会面临更高的计算开销。GROUPING SETS通过只计算指定的维度组合,通常能够提供更好的查询响应速度。另一个值得注意的区别是NULL值的处理。CUBE会。原创 2024-11-03 00:13:40 · 756 阅读 · 0 评论 -
离线数仓开发SQL编写和调试的最佳实践(如何又快又好完成任务,学会几条就不用当很辛苦的牛马)
MPP架构:Impala采用Massively Parallel Processing(MPP)架构,能够在多个节点上并行处理查询,大大提高了查询速度。内存计算:Impala将数据和计算都放在内存中,避免了Hive中频繁的磁盘I/O操作,显著提升了查询性能。实时性:Impala支持实时查询,适合需要快速响应的场景。列式存储:Doris采用列式存储,能够高效地处理分析型查询,减少不必要的I/O操作。向量化执行:Doris支持向量化执行,能够批量处理数据,提高查询性能。实时更新。原创 2024-11-02 09:39:47 · 560 阅读 · 0 评论 -
面试拷打要懂:Hive sql优化最全总结
在大数据时代,HiveSQL优化成为提升数据分析效率的关键因素。通过合理的优化策略,如等,不仅能显著改善查询性能,还能有效降低计算成本。这些优化措施不仅提高了系统的响应速度和吞吐量,还为大规模数据处理提供了更可靠的保障。特别是在面对复杂查询和海量数据时,优化后的HiveSQL能够更好地应对挑战,为企业决策提供及时、准确的支持。在HiveSQL优化中,减少数据量是一个至关重要的核心思想。通过巧妙运用各种技术手段,我们可以显著提升查询性能,同时降低计算成本。原创 2024-11-01 12:33:28 · 531 阅读 · 0 评论 -
Spark面试必问:Spark sql优化最全总结(持续更新)
Spark SQL是Apache Spark生态系统中的核心模块,专门用于处理。作为Spark的重要组成部分,它不仅提供了强大的SQL查询功能,还实现了与Spark其他模块的无缝集成。Spark SQL的一个关键特点是其,能够轻松地从各种数据源(如Hive、RDD、Parquet文件等)获取数据,并支持多种性能优化技术,如内存列存储和字节码生成。此外,Spark SQL引入了DataFrame和DataSet这两个高级抽象,极大地简化了开发过程,提高了开发效率。原创 2024-11-01 12:39:36 · 564 阅读 · 0 评论 -
数据中台脱敏或加密完整解决方案(持续更新)
允许企业根据自身的业务需求和安全政策定制脱敏策略。这种定制化的能力使得动态数据脱敏能够更好地满足企业的特定需求,提高数据使用的安全性和效率。通过实施动态数据脱敏,企业可以在保护敏感信息的同时,确保数据的价值和可用性,为数据驱动的业务发展提供强有力的安全保障。原创 2024-11-01 08:14:43 · 483 阅读 · 0 评论 -
Redis 性能优化策略与实战保姆级教程
Redis作为一个高性能的内存数据库,在实际应用中可能遇到多种性能瓶颈。:由于Redis将所有数据存储在内存中,其性能直接受限于可用内存大小。当内存接近饱和时,可能会触发内存淘汰策略,影响系统稳定性。:特别是在分布式环境中,跨地域部署可能导致较高的网络延迟,限制Redis的高并发和高吞吐特性。例如,北京客户端访问上海的Redis服务器,约13毫秒的往返时间可能严重影响性能。:大key不仅占用过多内存,还可能导致内存碎片增加,影响Redis的整体性能。原创 2024-11-01 08:16:17 · 322 阅读 · 0 评论 -
Flink处理乱序的数据的最佳实践
在Flink处理乱序数据的过程中,自定义Watermark生成策略是一项强大的工具,能够显著提升系统的处理效率和准确性。通过灵活运用这一机制,开发者可以根据具体的数据特征和业务需求,实现更为精细化和高效的乱序数据处理方案。自定义Watermark生成策略的核心思想是通过实现WatermarkGenerator接口,根据数据流中的事件特性动态生成Watermark。这种方法允许开发者充分利用数据本身的特性,设计出最适合特定应用场景的Watermark生成算法。原创 2024-10-31 13:24:18 · 869 阅读 · 0 评论 -
大数据必懂知识点:万字长文看懂Flink各种Join
在探讨Flink的Join操作之前,我们需要理解其在整个系统架构中的核心地位。,它使开发者能够灵活地整合来自多个数据源的信息,从而实现更高级的数据分析和业务逻辑。Flink支持多种Join类型,包括等,每种类型都有其特定的应用场景和优势。这些多样化的Join选项使得Flink能够在处理各种复杂的实时数据流问题时表现出色,如等。通过巧妙运用这些Join操作,开发者可以构建出高效、精确的流处理应用程序,充分发挥Flink在大数据处理领域的强大能力。原创 2024-10-31 00:08:18 · 815 阅读 · 0 评论 -
Flink实时计算和离线计算在调试有什么不同,实时计算调试技巧
首先,需要定义一个或多个OutputTag对象,用于标识不同的侧输出流。每个OutputTag都关联一个特定的数据类型。原创 2024-10-30 12:40:19 · 93 阅读 · 0 评论 -
Flink难点和高频考点:Flink的反压产生原因、排查思路、优化措施和监控方法
在探讨Flink的性能优化时,我们首先需要理解反压这一关键概念。原创 2024-10-29 00:05:43 · 1235 阅读 · 0 评论 -
大数据面试必考题:Spark数据倾斜问题总结和优化措施
在Spark分布式计算环境中,原创 2024-10-25 06:44:53 · 995 阅读 · 0 评论 -
大数据面试必问题:flink中如何处理流式数据倾斜问题
数据分布可视化:通过Flink Web UI实时监控各subtask的负载情况,快速识别数据倾斜问题。灵活运用两阶段聚合:适用于需要精确分组但又面临数据倾斜挑战的场景。随机化技巧:在第一阶段keyBy中添加随机因素,有效打破热点数据聚集。性能监控与调优:持续监控系统性能,根据实际情况调整算法参数和系统配置。通过这个案例,我们可以看到,即使是看似简单的数据处理流程,也可能隐藏着复杂的性能问题。只有深入了解Flink的工作原理,灵活运用各种优化技巧,才能充分发挥其在大数据处理方面的优势。原创 2024-10-24 00:02:01 · 610 阅读 · 0 评论 -
如何预防数据打架?数据仓库如何保持指标数据一致性开发指南(持续更新)
大数据开发人员最经常遇到尴尬和麻烦的事是,指标开发好了,以为万事大吉了。被业务和运营发现这个指标在不同地方数据打架,显示不同的数值。为了保证指标数据一致性,要从整个开发流程做好。原创 2024-10-23 00:00:10 · 1126 阅读 · 0 评论 -
软件产品国际化:前后端及App多语言版本解决方案(超详细实现过程)
多语言版本解决方案是应对全球化趋势的关键策略,它通过构建灵活且可扩展的架构,支持软件产品在不同语言和文化环境下的顺畅运行与展示。此方案涵盖了前端多语言界面实现、后端多语言数据处理及大数据环境下的多语言支持等多个层面,确保公司能够高效地推出适应全球用户多样化需求的软件产品。在前端多语言界面实现方面,解决方案采用了国际化与本地化的结合方法。国际化过程确保软件的功能和代码设计能够处理多种语言和文化习惯,而本地化则针对特定地区进行界面和内容的调整。原创 2024-10-18 14:50:12 · 1364 阅读 · 0 评论 -
Flink Web UI 是使用和调试保姆级教程(持续更新)
Running Jobs(运行中的作业):显示正在运行的所有 Flink 作业的列表。每个作业都有一个独特的 Job ID,可以点击进入查看作业的详细信息。Completed Jobs(已完成的作业):显示已经完成或取消的作业列表。:显示当前集群中所有 TaskManager 的健康状态,包括 CPU 使用率、内存使用情况、Slot 数量等。Job Manager Configuration(JobManager 配置):显示 JobManager 的一些配置参数,帮助调试和优化 Flink 集群。原创 2024-10-17 00:07:23 · 1987 阅读 · 0 评论 -
Flink调试或查看中间结果保姆级教程(持续更新)
开发阶段:使用print()和是最简单的调试方式。生产环境:日志记录、Flink Web UI 监控和 Queryable State 是关键调试工具。推荐使用外部存储(如 Kafka、ElasticSearch)或灵活地输出中间结果。复杂问题:利用 Checkpoint 和 Savepoint 回滚作业状态,通过调整并行度和 Task Slot 来优化性能。原创 2024-10-16 00:01:44 · 1214 阅读 · 0 评论 -
Redis如何实现高性能和高可用
Redis,全称Remote Dictionary Server,是一种高性能的键值对存储系统。它支持多种类型的数据结构,包括字符串、哈希表、列表、集合等,这使得Redis能够灵活应对各种数据存储需求。除了作为数据库使用,Redis还常被用作缓存和消息中间件,以提升系统的整体性能。原创 2024-10-15 00:03:22 · 573 阅读 · 0 评论 -
小白进阶高手:使用Flink开发实时数仓的经验与技巧(理论结合超多实例)
Flink CEP使用Pattern类定义需要匹配的事件模式。例如,在电商场景中,连续三次浏览相同商品可以被视为用户的购买意向,系统可以对这种行为进行捕捉和分析。// 定义时间窗口首先,定义业务规则的流并将其广播给各个并行算子。原创 2024-10-15 00:04:58 · 668 阅读 · 0 评论 -
Doris和TDengine全方位对比
Doris由于其复杂的MPP架构,可能需要更多的技术人员进行维护和管理。此外,Doris的列式存储设计也有助于提升复杂查询的性能,因为它允许系统仅扫描与查询相关的列,而非整行数据,从而减少了不必要的数据读取。由于时序数据通常具有固定的结构和高度的连续性,TDengine能够通过高效的数据压缩和编码技术来减少存储空间的占用,并在数据查询时实现快速的解压缩和访问。而TDengine则通过其特有的时序数据模型、高效的压缩算法以及简洁高效的命令行接口和可视化管理工具,为用户提供了便捷的操作体验和强大的功能支持。原创 2024-10-10 00:02:24 · 1163 阅读 · 0 评论 -
Apache Doris的分区与分桶详解
Apache Doris,一款高性能的分布式分析型数据库,其起源可追溯至Apache Incubator项目中的Palo。通过深度融合MPP(Massively Parallel Processing)架构与列式存储技术,Doris专为应对大数据环境下的复杂查询与实时分析挑战而诞生。随着全球数据量呈现爆炸式增长,Apache Doris以其杰出的性能表现和灵活多变的数据管理能力,逐渐脱颖而出,成为众多企业解决大数据难题的优选方案。原创 2024-10-09 00:02:50 · 1073 阅读 · 0 评论