Spark/Flink/Doris离线&实时数仓开发
文章平均质量分 82
本人长期从事大数据开发,从0到1做过多个互联网和政府类的数据仓库项目开发。本专栏介绍从0到1搭建数据仓库的过程,分享数据仓库开发过程遇到各种问题和如何优化,小白用户也能快速成为中高级的数仓开发工程师。
Doris来替代hive存储数据,可以解决hive占用存储空间大和ADS层查询慢等痛点。
大模型大数据攻城狮
移动互联网小兵,崇尚创新,注重用户体验,从事大数据和算法、Java后台、Android开发
展开
-
大数据面试必问的数据治理面试题大全及参考答案
数据分类通常按照数据的敏感程度和重要性进行,常见的方法是三层次分类法,即公开数据、内部数据和敏感数据。公开数据:对公众开放的信息,如企业宣传材料,这类数据虽然公开,但仍需确保其准确性和及时更新,维护企业形象。内部数据:仅限企业内部使用的非敏感信息,如运营报告、会议记录。这类数据需控制访问权限,确保不被未经授权的内部人员或外部人士获取。敏感数据:包括个人隐私信息、财务数据、知识产权等,这类数据要求最高级别的保护,如加密存储、访问控制、数据脱敏等措施,以防数据泄露或被非法使用。原创 2024-06-26 06:58:49 · 112 阅读 · 0 评论 -
数据中台/数据仓库必问的数量质量控制面试题
数据质量指的是数据满足其预定用途的程度,涉及数据的完整性、准确性、一致性、及时性和可访问性等多个方面。高质量的数据是指数据在这些维度上均表现良好,能够有效支持业务决策、分析以及运营活动,而不会因错误、不完整或不一致等因素导致误导性结论。原创 2024-06-25 14:50:28 · 76 阅读 · 0 评论 -
用python工具实现自动检测报表缺失哪些天日期的数据(亲测可用)
在前面的文章,详细介绍了如果监测mysql或hive当天或当月的表,看是否跑出数据,如果没有跑出数据,就如何调用海豚调度器的api来自动启动工作流。可参考下面的2篇文章。不过在实际中应用场景中,特别是新的离线数仓的项目,通常是需要跑历史数据。如果涉及表多的话,一个个手动检测很耗时间。下面提对前面的检测当天报表的代码进行升级,自动化地检查特定日期范围内多个数据库表的数据完整性,并记录缺失的数据日期到mysql中。原创 2024-06-21 09:10:48 · 141 阅读 · 0 评论 -
Apache Flink在IoT指标开发流处理全过程案例
IoT数据流往往需要基于时间窗口进行聚合计算,比如计算每5分钟内的平均温度。这涉及到定义窗口策略和使用parsedData.keyBy(0) // 根据设备ID分组.window(TumblingEventTimeWindows.of(Time.minutes(5))) // 定义5分钟滚动窗口.process(new AverageTemperature()) // 自定义窗口函数计算平均温度.print();原创 2024-06-20 08:22:56 · 225 阅读 · 0 评论 -
Flink assignTimestampsAndWatermarks 深度解析:时间语义与水印生成
在Apache Flink中,原创 2024-06-19 00:03:39 · 214 阅读 · 0 评论 -
2万字长文Doris运维问题大全及参考答案(持续更新)
Apache Doris(原Palo)是一个面向OLAP(在线分析处理)的MPP(大规模并行处理)数据库系统,专为实时分析和大数据处理场景设计。高性能分析:通过列式存储、向量化执行引擎和先进的查询优化器,Doris能够提供亚秒级的查询响应时间,特别适合复杂的分析查询。易用性:Doris支持标准SQL语法,降低了学习成本,同时提供了丰富的数据导入工具和灵活的数据模型设计,便于用户快速上手。高可扩展性:Doris采用分布式架构,可以轻松横向扩展,通过增加更多的服务器来提升数据处理能力和查询性能。高可用性。原创 2024-06-18 13:13:50 · 130 阅读 · 0 评论 -
Flink面试必问题:时间和窗口处理面试题及参考答案(3万字长文)
滚动窗口是Flink中一种常见的窗口类型,它的特点是窗口大小固定,并且窗口之间不重叠。这意味着每个元素只能属于一个窗口,一旦窗口达到指定的大小,就会触发计算,然后窗口关闭,开始新的窗口。定义一个滚动窗口需要指定窗口的长度,这个长度可以基于时间(例如,每5分钟)或基于元素的数量(例如,每100个元素)。在Flink的DataStream API中,可以如下定义一个基于时间的滚动窗口:// 原始数据流// 窗口大小,例如5分钟.keyBy() // 根据某些key对数据进行分区。原创 2024-06-17 06:57:23 · 314 阅读 · 0 评论 -
吃透Flink State面试题和参考答案
Flink 中的状态是指在 Flink 流处理程序中,操作符或函数用于存储和访问数据的机制。状态可以看作是在事件流处理过程中,随着时间推移而累积或变更的数据集合。在 Flink 的有状态流处理中,状态对于实现复杂的处理逻辑,如窗口操作、聚合计算、模式匹配等至关重要。状态使得 Flink 能够在分布式环境中保持计算的连续性和一致性,即使在出现故障时也能够通过状态的持久化和恢复来保证数据处理的正确性。是一种分区状态,它为数据流中的每个键维护一个独立的状态副本。原创 2024-06-17 06:56:49 · 249 阅读 · 0 评论 -
海豚调度器自动监测每日报表及自动重跑异常工作流(综合应用可用代码
在TABLE_QUERIES、HIVE_TABLE_QUERIES 定义好你需要监控的工作流名称和这个工作流输出结果的表(分为hive的表和mysql的表),检测当天这些表是否跑出结果,然后把这些工作流的名称和结果写入到bigdata_autocheck_days_run_data_result表中。第3步:从mysql表bigdata_autocheck_days_run_data_result找到失败工作流,获取processDefinitionId,启动工作流。原创 2024-06-13 13:34:21 · 107 阅读 · 0 评论 -
CDH远程监控所有HDFS节点磁盘空间和自动清除日志
为了在Java程序中使用SSH协议,我们选择了JSch库。JSch是一个纯Java实现的SSH2客户端库,它可以用于连接到SSH服务器,执行命令,传输文件,端口转发和X11 forwarding等。它的使用简单,功能强大,广泛应用于SSH操作的场景。原创 2024-06-13 00:04:10 · 441 阅读 · 0 评论 -
Cloudera Manager API详解和大数据组件异常自动恢复实例(亲测可用)
这是的升级篇。Cloudera Manager 是一个全面的集群管理和监控解决方案,专为Apache Hadoop生态系统设计。它提供了一站式的界面,用于部署、配置、管理和监控Cloudera Distribution Including Apache Hadoop (CDH)集群。Cloudera Manager通过其强大的API,使得自动化和集成变得更加容易,从而进一步增强了集群的可管理性。原创 2024-06-13 00:03:21 · 239 阅读 · 1 评论 -
利用Cloudera Manager API来监控CDH大数据组件并异常重启实例
Cloudera Manager API是一套基于RESTful风格的API接口,它允许用户通过HTTP请求与Cloudera Manager服务器进行通信,实现对集群的远程管理。这些API接口包括获取集群信息、服务状态、角色状态、启停服务等,为用户提供了丰富的监控和管理功能。Cloudera Manager提供丰富的RSEtfull API接口,并返回标准的JSON结果。具体地址可以参考:CM API接口官网文档说明:原创 2024-06-12 00:09:07 · 320 阅读 · 0 评论 -
KeyedProcessFunction 在 Flink项目中的应用实战
首先,我们定义一个简单的SensorData类,包含传感器 ID、温度和时间戳。在这个示例中,我们展示了如何在 Flink IoT 项目中使用处理传感器数据。通过这个示例,我们可以看到的强大之处:能够按 key 进行独立处理、管理状态以及注册计时器以实现定时任务。原创 2024-06-12 00:08:37 · 238 阅读 · 0 评论 -
海豚调度器调用api接口启动工作流(亲试可用)
在大数据时代,工作流调度器成为了数据管道和ETL任务中不可或缺的工具。DolphinScheduler作为一款强大的工作流调度器,支持多种任务类型和工作流的可视化管理。除了通过Web界面操作外,DolphinScheduler也提供了API接口,使得第三方系统集成和自动化脚本调用成为可能。在工作需要通过api接口启动海豚调度器的工作流,由于生产环境的海豚调度器是1.3.5版本,不同版本的api有所不同,请根据实际进行调整。原创 2024-06-05 15:35:31 · 233 阅读 · 0 评论 -
PySpark JDBC 读写 MySQL 数据库保姆级指南
通过上述步骤,您可以使用 PySpark 通过 JDBC 连接读写 MySQL 数据库。为了连接到 MySQL 数据库,您需要下载 MySQL 的 JDBC 驱动程序。在开始之前,确保您已经安装了 PySpark 和 MySQL 数据库,并且已经有一个 MySQL 数据库实例可供连接。下载后,确保 JDBC 驱动的 JAR 文件路径被添加到 PySpark 的类路径中。如果您的数据量很大,可以配置分区列和分区范围来并行读取数据。为了提高读写性能,您可以调整一些 JDBC 特定的配置选项。原创 2024-06-04 13:26:35 · 167 阅读 · 0 评论 -
NIO和Netty保姆级5万字面试题及参考答案
Java NIO(New Input/Output)是Java在1.4版本中引入的一种新的IO模型,它提供了一种更加高效的方式来进行IO操作。与传统的IO(也称为BIO)相比,NIO是一种基于缓冲区(Buffer)和通道(Channel)的IO方式,支持面向缓冲区的读写操作,并且是非阻塞的。NIO的核心组成部分包括缓冲区(Buffer)、通道(Channel)、选择器(Selector)以及文件通道(FileChannel)。原创 2024-06-04 06:59:33 · 200 阅读 · 0 评论 -
Pyspark和Pandas语法差异和调试技巧(附总结出来直接用代码)
pandas有一些函数是pyspark没有等价的,例如pandas的向上填充、向下填充,pyspark没有函数有ffill的功能,需要自己用时间函数来实现,这时候需要进行严格单元测试,看pyspark是不是完全等价于pandas的实现。通过日志打印,有时不能看到全部结果,这时需要把中间过程写入到文件(根据需要进行分组排序后输出,然后Beyond。在Pandas中,我们可以轻松地处理不同的数据类型和缺失值。在pyspark,就没有可以直接用的,需要用时间窗口函数来实现。方法来更改列的数据类型,并使用。原创 2024-05-23 07:06:49 · 315 阅读 · 0 评论 -
Java多线程和并发编程面试题和参考答案100多道(持续更新)
守护线程(Daemon Thread)是一种特殊的线程,它在执行时不会阻止JVM的退出。当所有的非守护线程都结束运行时,JVM会自动退出,即使守护线程还在运行。守护线程主要用于执行一些后台任务,如垃圾回收、监控等。用途举例垃圾回收线程:JVM内部的垃圾回收线程就是一个典型的守护线程,它负责监控对象的使用情况,并在适当的时候回收不再使用的对象,释放内存资源。日志记录线程。原创 2024-05-20 06:39:02 · 161 阅读 · 0 评论 -
海豚调度器(DolphinScheduler)生产环境问题及解决方案汇总(持续更新)
解决方案:工作流定义无法保存可能是由于前端UI的bug或后端服务的问题。首先,检查UI是否有错误信息,确认用户操作是否正确。然后,检查API服务器的日志,查看是否有关于工作流定义保存的错误记录。如果后端服务出现问题,可能需要调整数据库连接或优化数据库性能。对于前端问题,尝试清除浏览器缓存或使用不同的浏览器再次尝试。问题描述解决方案:工作流定义无法提交可能是由于Web界面的bug或者后端服务的问题。首先,检查Web界面是否有错误信息提示,确认用户操作是否正确。原创 2024-05-09 08:02:58 · 193 阅读 · 0 评论 -
2万字长文:海豚调度器(DolphinScheduler)面试题深入了解
DAG图(有向无环图)是海豚调度器中表示工作流任务依赖关系的一种方式。在DolphinScheduler中,每个任务是一个节点,任务之间的依赖关系通过有向边连接这些节点来表示。无环:保证了工作流的执行顺序是确定的,避免了无限循环的问题。有向:箭头指示了任务的执行方向,即上一个任务的输出可以作为下一个任务的输入。依赖表示:通过图形化界面,用户可以通过拖拽连接线来定义任务之间的先后顺序和依赖关系。并行处理:DAG图可以表示出任务的并行关系,允许多个任务在没有直接依赖关系的情况下同时执行。条件分支。原创 2024-05-05 12:32:53 · 333 阅读 · 0 评论 -
大数据面试高频问题:大数据相关基础组件的维护及调优案例大全
在大数据处理过程中,数据倾斜是一个常见问题,它会导致资源分配不均,从而影响作业的执行效率和集群的稳定性。数据倾斜通常发生在数据分布不均匀的节点上,如Hadoop的MapReduce作业中,某些Reducer节点处理的数据量远大于其他节点。通过上述案例的详细分析,可以看出大数据架构师在面对各种维护和调优问题时,需要具备深入的技术理解、丰富的实践经验和系统化的解决思路。首先,需要识别数据倾斜的原因和位置,然后通过调整数据分布策略和优化作业配置来减少数据倾斜的影响。: 首先,通过监控工具确定性能瓶颈所在。原创 2024-04-14 20:28:28 · 238 阅读 · 0 评论 -
互联网大厂大数据面试题汇总及参考答案(5万字长文)
NameNode 是 HDFS 的主节点,负责管理文件系统的命名空间和客户端对文件的访问。它存储了整个文件系统的元数据,包括文件和目录的信息,以及文件的数据块和它们在 DataNode 上的位置。: Spark 拥有一个更丰富的生态系统,包括 Spark SQL、Spark Streaming 和 MLlib 等组件,这些组件使得 Spark 在数据处理、流处理和机器学习等领域都有出色的表现。: 它运行在集群中的每个节点上,负责管理节点的资源使用情况,并向 ResourceManager 报告。原创 2024-04-11 16:43:16 · 193 阅读 · 0 评论 -
大数据面试临阵磨枪不知看什么?看这份心理就有底了-大数据常用技术栈常见面试100道题
YARN(Yet Another Resource Negotiator)是Hadoop的资源管理和作业调度层。它的主要角色是管理和调度集群资源,以及协调各种应用程序的执行。YARN的主要功能包括:资源管理:YARN负责分配和管理集群中的资源,如内存、CPU和存储资源。作业调度:YARN调度和监控各种作业的执行,确保资源得到合理利用。应用程序协调:YARN协调运行在集群上的各种应用程序,如MapReduce、Spark等。容错处理:YARN能够处理节点故障和应用程序失败,确保作业能够顺利完成。原创 2024-04-08 21:28:37 · 303 阅读 · 0 评论 -
万字长文:FineBI面试题及参考答案详解
在FineBI中,用户需要明确指定哪些字段作为维度,哪些作为度量。维度用于切片和切块数据,而度量用于计算和比较。原创 2024-04-05 22:44:57 · 694 阅读 · 0 评论 -
大数据手写面试题Scala语言实现大全(持续更新)
在大数据领域,Scala语言因其强大的函数式编程特性和对并发处理的良好支持而成为了开发者们的热门选择。有些面试官,为了考验面试者的基本功,需要让手写一些面试题,以数据结构和算法类的居多。本文将为您提供一些常见的Scala手写面试题及参考答案,帮助您在面试或工作中更好地运用Scala。原创 2024-03-29 07:15:03 · 334 阅读 · 0 评论 -
数据仓库建模方法万字详解
在数据仓库的建设过程中,数据建模是至关重要的一环。它决定了数据仓库的结构和性能,直接影响到数据分析和决策的效率和准确性。在进行数据建模之前,必须对企业进行全面的业务梳理。通过建立业务模型,我们可以全面了解企业的业务架构和整个业务的运行情况,能够将业务按照一定的标准进行分类和规范,以提高业务效率。通过构建数据模型,能够很好地将底层技术与上层业务分离开。当上层业务发生变化时,通过查看数据模型,底层技术可以轻松完成业务变动,从而提高整个数据仓库的灵活性。原创 2024-03-23 23:19:28 · 223 阅读 · 0 评论 -
模型设计和跑数优化1:开发数据仓库耗时复杂报表的策略
在使用Spark和Doris进行数据仓库开发时,报表生成的效率对于业务分析和决策支持至关重要。当报表复杂且数据量大时,任何改动都可能导致需要重新从零开始处理数据,这不仅耗时而且资源消耗巨大。更为严重的时,可以导致项目延期,影响了绩效,甚至因此失业。原创 2024-03-22 16:24:46 · 546 阅读 · 0 评论 -
Doris的3种数据模型详解和数据仓库每一层的模型选用
Apache Doris是一个用于离线数据仓库开发的分布式SQL查询和分析引擎。在使用Doris进行离线数据仓库开发时,可以采用三种不同的数据模型:Duplicate模型、Aggregate模型和Unique模型。每种模型都有其适用的场景和特点,同时也对于不同层次的数据仓库有着不同的使用建议。原创 2024-03-22 14:59:36 · 408 阅读 · 0 评论 -
Doris磁盘空间管理(生命周期管理、清理磁盘空间方法)
在进行数据仓库开发时,比较头疼的是历史数据不删除,磁盘空间不断增长,如果磁盘空间不足时,spark调度任务写入时就会报错。原创 2024-03-21 17:08:50 · 624 阅读 · 0 评论 -
数据仓库数据质量监控和处理方法最佳实践
指的是检查数据是否存在反常或者错误的情况,例如数值反常地过大或者过小,或者超过记录的波动值,对应的规则包括数值波动检查,最大值、最小值检查,跨表准确性等。指的是检查数据是否存在缺失的情况,这里的缺失可以是整个数据集的记录缺失,也可以是某个字段记录的缺失,对应的规则包括空值检查,表总行数检查。指的是检查数据是否符合规范,是否按照规定的格式存储,对应的规则包括正则表达式检查,字段长度检查,枚举集合检查,数值范围等。指的是检查哪些数据是重复数据或者数据的哪些属性是重复的,对应的规则例如主键唯一性检查。原创 2024-03-21 15:39:21 · 210 阅读 · 0 评论 -
不同环境迁移和hive等不同数据源迁移数据到Doris的解决方案
分享doris一键导出表结构和数据迁移的工具类代码。还介绍Apache Doris/Hive/Kudu、StarRocks 数据库往 Doris 或 SelectDB Cloud 迁移的工具。原创 2024-03-19 08:20:16 · 194 阅读 · 0 评论 -
java批量生成海量测试数据及用ChatGPT提示语一键生成的方法
在做大数据开发时,为了测试性能等,需要上千万,甚至TB或PB级别的,在测试环境可能没有那么多数据,这时可以考虑进行造测试数据。请将上述示例中的数据库连接信息和插入逻辑根据您的数据库设置和表结构进行相应的修改。此程序将会在数据库中插入海量测试数据。原创 2023-09-13 08:12:25 · 460 阅读 · 0 评论 -
DataX脚本告别手动编写,用大模型或Java代码自动生成
在离线数仓开发中,DataX支持多种数据源,性能好抽取速度快。美中不足的是,对需要抽取的每一张表都需要写配置文件,这样很繁琐和耗时。可以用大模型提示词来节省这方面的工作量。ChatGPT等大模型并不能很智能提供一个完全正确的,需要提供一个模板让它参考。原创 2024-03-19 06:57:23 · 70 阅读 · 0 评论 -
万字数据仓库面试题及参考答案
星型模型由一个中心的事实表和多个外围的维度表组成,事实表存储度量值和事实,维度表存储描述性属性和维度。星型模型和雪花模型的区别在于雪花模型将维度表进一步细化,形成多层次的结构,而星型模型由一个中心事实表和多个维度表组成,适用于查询较为简单的情况。维度建模通常采用星型模型或雪花模型,将数据分为事实表和维度表,其中事实表存储度量值和事实,维度表存储描述事实的属性。三者之间的关系可以这样理解:数据仓库主要关注历史数据的存储和分析,数据中台则关注数据的服务化和资产化,而数据湖则关注原始数据的存储和多样性。原创 2024-03-18 22:10:12 · 191 阅读 · 0 评论 -
本人遇到大数据面试题和参考答案(超过1万字精华版)
从事大数据开发8年以上,期间面试了不少公司,总结了大数据的面试题和参考答案。原创 2024-03-18 16:39:27 · 180 阅读 · 0 评论 -
Spark写数据到Doris报错node and exceeded the max retry times各种可能原因和解决方法
这种提示很不友好,有没有更好方式提示,方法是有的,可以用jdbc写入,发现错误时可以看到具体的提示。刚开始很困惑,后来发现是 dataFrame中的字段和目标表不一致。原创 2023-08-22 23:26:13 · 1082 阅读 · 0 评论 -
DataX对接数据如何在ODS加密脱敏数据(插件开发)
datax对接mysql数据,对姓名只保留姓,名变成**。对这种简单的脱敏,可以不用修改datax源码,直接在配置文件上实现。原创 2023-09-03 09:30:03 · 271 阅读 · 0 评论