
大数据
文章平均质量分 79
一号IT男
打铁还需自身硬,愿我们都能百炼成钢
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Spark中yarn-client和yarn-cluster区别详解
我们来详细讲解一下 Spark on YARN 模式下和(在 Spark 后期版本中统一为cluster模式,但 YARN 集群模式有其特殊性) 的区别。这是一个在学习和使用 Spark 时非常核心的概念,主要关系到,而这个差异又直接影响了应用程序的行为、容错、性能和适用场景。原创 2025-10-05 14:21:48 · 568 阅读 · 0 评论 -
xcall jps命令详解
xcall jps是一个通过自定义 Shell 脚本实现的、用于分布式集群运维的高效命令。核心价值:一键查看整个集群的 Java 进程状态,提升运维效率。前提条件需要一个自写的xcall脚本。集群节点间需配置 SSH 免密登录。适用场景:Hadoop、Spark、Flink、Kafka 等任何基于 JVM 的分布式系统的日常监控和故障排查。原创 2025-10-05 14:09:46 · 591 阅读 · 0 评论 -
大数据在物流行业的使用
大数据已经将物流从一个“黑盒”状态转变为一个高度透明、可预测、可优化的智能网络。它不再仅仅是辅助工具,而是成为了现代物流企业的核心竞争力和神经系统。未来的发展趋势将是与物联网、人工智能、区块链等技术更深度的融合,最终实现整个供应链的自适应、自决策和自优化,即“智慧供应链”。原创 2025-10-05 11:27:34 · 512 阅读 · 0 评论 -
大数据中的单一计算和迭代式计算
特性单一计算迭代式计算数据流有向无环图(DAG)有向有环图状态无状态有状态,依赖前次结果计算过程一次性完成循环多次,直到满足条件典型应用ETL、批处理报表、日志分析机器学习、图分析、数据挖掘容错重新执行失败的任务需要从最近的检查点恢复设计目标高吞吐量低迭代延迟、快速收敛经典模型MapReduce模型。原创 2025-10-05 11:19:03 · 535 阅读 · 0 评论 -
为什么scala和python比java更适合大数据开发
选择Scala:当你需要构建高性能、复杂、大规模数据处理的生产级Spark应用,并且团队具备足够的Scala技能时。它是性能和表达力之间的最佳平衡点。选择Python:当你的主要工作是数据探索、分析、机器学习原型设计,或者团队主要由数据科学家和分析师组成时。它的开发效率和生态库是无与伦比的优势。Java的角色:它是大数据生态的基石,是构建和维护底层分布式系统的强大工具。在应用层,它稳定可靠,但开发效率通常不如Scala和Python。因此,说Scala和Python“更适合”大数据开发,主要是从。原创 2025-10-05 11:12:28 · 469 阅读 · 0 评论 -
为什么维度模型适合大数据分析?
维度模型之所以适合大数据分析,是因为它将技术复杂性从查询阶段转移到了数据准备阶段(ETL/ELT)。数据工程师通过一次性的、复杂的ETL过程,构建出干净、集成、面向主题的维度模型。此后,所有的业务用户和分析应用都能从中享受到极速的查询性能、直观的数据理解和强大的可扩展性,这正是大数据分析成功的关键。简单来说,维度模型是为“读”而优化的,而大数据分析的核心就是“读”。原创 2025-10-04 16:25:51 · 387 阅读 · 0 评论 -
为什么ER模型不适合用作大数据分析
对比项ER模型大数据分析模型 (如维度模型)核心理念消除冗余,保证一致性接受冗余,优化查询性能数据结构规范化反规范化适用场景OLTP系统 (如MySQL, PostgreSQL)OLAP系统 (数据仓库,如Hive, Redshift, BigQuery)性能焦点快速的事务处理和点查询复杂的多表关联查询和全表扫描数据灵活性低,模式固定高,支持Schema-on-Read因此,结论是:ER模型本身并不“坏”,它只是被用在了错误的地方。原创 2025-10-04 16:24:06 · 545 阅读 · 0 评论 -
字典表的定义与创建方法
字典表,也常被称为码表枚举表或参考表,是数据库设计中一种非常重要的表。它的核心作用是存储系统中那些相对固定、可枚举的、基础性的数据。你可以把它想象成现实世界中的字典或通讯录:它提供了一个标准的、权威的“选项列表”,供其他数据去引用。原创 2025-09-23 21:35:38 · 742 阅读 · 0 评论 -
count(*)和count(某一个字段)有什么区别?
特性COUNT(*)计数目标结果集的行数指定列的非空值数量对 NULL 的处理包含值为 NULL 的行排除值为 NULL 的单元格性能(常见情况)在现代主流数据库(如 MySQL InnoDB, PostgreSQL)中,性能最优。优化器会选择最快的索引来统计行数,甚至直接使用表的元数据。通常需要读取该列的实际数据来判断是否为空,如果该列没有索引,可能会比COUNT(*)稍慢。使用场景当你需要知道总共有多少条记录时。例如,“计算订单总数”。当你需要知道某个特定字段有效数据的数量时。原创 2025-09-23 12:02:40 · 331 阅读 · 0 评论 -
大数据-join导致的数据倾斜总结
方法适用场景优点缺点Map Join一小一大简单高效,完全避免倾斜只适用于小表分离倾斜Key两大表,且有明显倾斜Key效果最好,能解决极端倾斜实现极其复杂,需要写大量SQLSpark 3.0+自动化或半自动化,简单依赖新版本Spark,不一定100%有效业务数据治理源头有大量无效值一劳永逸,从根本解决需要改造ETL流程,有业务影响排查流程建议先判断是否可用Map Join。如果不是,分析Join Key的分布,找到倾斜的元凶(是NULL还是某个具体值?如果主要是无效值。原创 2025-09-22 15:45:12 · 1030 阅读 · 0 评论 -
数据倾斜中的两阶段聚合总结
我们来详细拆解一下数据倾斜解决方案中非常经典的**两阶段聚合(两阶段聚合)**方案。这是一种“以空间换时间”和“以计算换均衡”的智慧。原创 2025-09-22 15:43:32 · 396 阅读 · 0 评论 -
Kafka如何做到精确一次消费总结
生产者发送: 你的流处理应用使用幂等且支持事务的生产者发送处理后的结果消息。原子性写入与提交: 应用将处理结果(输出消息)和消费位移的提交放在同一个事务中。这确保了它们要么都成功,要么都失败。消费者读取: 下游的消费者配置了,它只会读取到已成功提交的事务消息。最终效果如果整个流程成功,消息被处理一次,结果输出一次,位移推进一次。如果流程中任何地方失败,事务中止。输出消息不可见,位移不会前进。应用重启后,会重新消费并重新处理同一批输入消息。由于你的处理逻辑是幂等的。原创 2025-09-22 08:51:50 · 503 阅读 · 0 评论 -
大数据维度建模中三种事实表的区别-好理解版
类型比喻粒度(一行是什么)时间维度数据是否会变化?典型问题事务事实表流水账一个瞬时事件具体时间点不会“那一刻发生了什么?周期快照表每日盘点一个周期标准周期(日/周/月)不会(每日新增)“那一天/月总体情况如何?累积快照表项目进度一个流程的寿命多个时间点会(不断更新)“这个流程当前到哪一步了?耗时多久?怎么选?想分析用户行为(点击、购买、支付)?-> 用事务事实表。想做日报、月报,看KPI?-> 用周期快照事实表(性能快!想跟踪订单、物流、贷款申请等多步骤流程?-> 用。原创 2025-09-20 17:16:26 · 711 阅读 · 0 评论 -
如何快速排查永洪BI报表数据的差异,定位并解决问题
排查永洪BI报表数据差异是一个系统化的工作,需要耐心和清晰的思路。遵循以下步骤,可以高效地定位并解决问题。从最宏观的报表展示层开始,逐步深入到最底层的数据源,像剥洋葱一样,逐层排除,锁定问题根源。通过以上系统化的方法,绝大多数永洪BI的数据差异问题都可以被高效地定位和解决。如果初步检查未发现问题,请按照以下分层结构进行深入排查。在深入分析之前,先排除一些最常见的低级错误和误解。问题可能出在数据库、数据仓库或文件本身。问题可能出在创建数据集时的建模过程中。问题可能出在报表组件的计算和设置上。原创 2025-09-20 16:57:44 · 601 阅读 · 0 评论 -
大数据中维度建模中三种事实表的区别
事务事实表:回答“发生了什么事件?” 用于记录行为。周期快照事实表:回答“在某段时间末,状态是怎样的?” 用于评估绩效和状态。累积快照事实表:回答“某个东西的进展如何?花了多长时间?” 用于优化流程和效率。选择依据:业务过程特性:是需要跟踪原子事件(用事务),还是监控定期状态(用快照),或是分析带工作流的生命周期(用累积)?分析需求:业务用户最常问的问题是关于事件、状态还是效率和耗时?在实际的数据仓库中,这三种事实表通常会共存,从不同角度满足复杂的分析需求,共同构建起企业的单一可信数据源。原创 2025-09-20 15:19:31 · 611 阅读 · 0 评论 -
大数据项目开发流程总结
迭代性:不是一个一次性项目,而是不断演进和迭代的。数据驱动:一切围绕数据的价值展开。跨职能协作:需要数据工程师、数据科学家、数据分析师、业务人员、运维工程师紧密合作。技术复杂性:技术栈丰富,需要根据场景灵活选型。这个流程是一个通用框架,在实际项目中会根据具体规模和需求进行裁剪和调整。原创 2025-09-20 14:43:12 · 1018 阅读 · 0 评论 -
ER建模基础与实践详解
ER建模是数据库设计的基石,它以直观的方式将混乱的业务需求转化为清晰、结构化的数据模型。核心心法:找实体,加属性,连关系,定基数。最终目的:消除数据冗余,保证数据一致性,为构建高效、健壮的数据库应用打下坚实基础。希望这个从浅到深的讲解能让你对ER建模有一个扎实而清晰的理解!原创 2025-09-20 11:23:16 · 922 阅读 · 0 评论 -
大数据建模-ADS层重度汇总(业务方+BI展示)
特性说明比喻面向应用 (Application-Oriented)核心特征!表结构和内容是为特定应用或需求量身定制的。为糖尿病人准备的无糖餐,为健身人士准备的高蛋白餐。高度聚合 (Highly Aggregated)数据粒度非常粗,通常是最终的计算结果和指标。不是鸡肉和土豆,而是一盘已经炒好的宫保鸡丁。跨主题融合 (Cross-Topic Integration)经常会打破DWD/DWS的主题界限,融合多个主题的数据来满足一个复杂需求。一道菜里同时包含了肉、菜、汤,比如火锅。原创 2025-09-20 11:16:28 · 783 阅读 · 0 评论 -
大数据建模-DWS层(主题轻度汇总+建立宽表)
特性说明比喻轻度汇总按常见维度(日、用户、商品等)聚合,粒度比DWD粗,比ADS细。不是做成菜(ADS),也不是原始食材(DWD),而是腌好的肉、穿好的串。空间换时间核心价值!占用额外存储空间,预先计算好结果,换取查询时惊人的性能提升。档口提前备料,虽然占了冰箱空间,但高峰时出餐快。面向主题根据业务分析需求(用户、商品、流量等)组织数据。为麻辣烫、烧烤、煲汤等不同档口分别备料。减少关联通过创建宽表,将常用维度属性冗余,减少后续查询时复杂的JOIN操作。原创 2025-09-20 11:15:28 · 724 阅读 · 0 评论 -
大数据建模-DWD层主要工作(数据清洗+维度建模)
数据结构化:将ODS层中可能分散在几十张表(订单表、订单明细表、商品表、用户表…)里的信息,按照分析主题(如“下单”)重新组织,形成一张宽表(事实表+维度外键)。数据清洗与标准化统一脏数据:如性别统一为“男/女/未知”。处理代码值:如将业务系统中的0102转换成“已支付”、“未支付”等可读描述(有时这个会放在维度表里)。生成代理键:使用无意义的、自增的ID()替代业务ID(product_id),以应对业务ID变化的情况,保证历史数据稳定性。关系清晰化:明确的事实表和维度表关系,形成了。原创 2025-09-20 11:14:12 · 344 阅读 · 0 评论 -
大数据数仓建模与分层架构解析
数仓建模的本质:不是高深莫测的数学,而是一种管理哲学和工程思想。它用结构化的方式管理数据资产,将数据从“成本负担”变为“价值资产”。核心价值效率:快速响应复杂的分析查询。质量:保证数据口径一致、准确可信(One Truth)。成本:优化存储和计算资源。易用:让业务人员也能看懂和使用数据。现代发展:随着大数据技术(Hadoop, Spark)和云数据仓库(Snowflake, BigQuery, Redshift)的发展,存储和计算成本大幅下降,使得维度建模这种“用空间换时间”的思想优势更加明显。原创 2025-09-20 11:12:59 · 916 阅读 · 0 评论 -
实时报表与固定报表对比分析
在现代企业中,固定报表和实时报表不是相互替代,而是互为补充的。用实时报表(监控大屏)来**“治未病”**,实时把控业务脉搏,快速响应突发事件。用固定报表(月度报告)来**“治已病”**,深入分析根本原因,评估长期效果,指导未来战略。理解它们的区别和适用场景,能帮助企业和数据分析师更好地利用数据驱动决策。原创 2025-09-19 22:24:32 · 425 阅读 · 0 评论 -
FineBI 中的“蜘蛛网表”
蜘蛛网表(Spider Chart Table)是FineBI特有的一种预计算、宽表式的数据加速引擎。“用空间换时间”—— 通过预先消耗存储空间(磁盘)和计算资源(CPU/内存),将可能需要频繁计算的数据结果提前计算好并存储起来。当用户真正查询时,系统可以直接从这张结果表中快速读取数据,而无需进行实时的、耗时的关联、聚合等计算。蜘蛛网表 ≠ 一个你需要手动创建的表,而是FineBI提供的一种“一键加速”功能背后的技术实现。你可以把它理解为FineBI为了让你快速拿到分析结果,而。原创 2025-09-19 19:51:26 · 286 阅读 · 0 评论 -
FineBI优化方案与实践
蜘蛛网表(Spider Chart Table)是FineBI特有的一种预计算、宽表式的数据加速引擎。“用空间换时间”—— 通过预先消耗存储空间(磁盘)和计算资源(CPU/内存),将可能需要频繁计算的数据结果提前计算好并存储起来。当用户真正查询时,系统可以直接从这张结果表中快速读取数据,而无需进行实时的、耗时的关联、聚合等计算。蜘蛛网表 ≠ 一个你需要手动创建的表,而是FineBI提供的一种“一键加速”功能背后的技术实现。你可以把它理解为FineBI为了让你快速拿到分析结果,而。原创 2025-09-19 19:37:28 · 887 阅读 · 0 评论 -
Linux中使用grep排查错误日志指南
定位文件(找到所有相关日志文件)确定范围(先看看最近1000行发生了什么)广泛搜索(找出所有潜在问题点)精确分析(针对某一个具体错误代码,查看其详细的上下文信息)实时监控(在尝试修复后,实时观察错误是否再次出现)熟练掌握以上grep命令组合,你就能高效地处理绝大多数 Linux 下的日志排查工作。原创 2025-09-18 15:47:00 · 1033 阅读 · 0 评论 -
Shell中$*与$@的区别详解
特性$*$@建议不加引号参数会经历单词拆分和文件名扩展参数会经历单词拆分和文件名扩展避免使用,行为不可预测加引号"..."一个字符串:将所有参数合并为一个字符串参数列表:将每个参数作为独立的、被引用的字符串这是正确的用法何时使用当你需要将所有参数作为一个整体处理时,例如,将它们全部打印在一行或用自定义分隔符连接它们。几乎总是使用这个。当你需要将参数原封不动地传递给另一个命令,或者需要循环处理每个参数时。优先使用"$@"黄金法则:几乎在所有情况下,你都应该使用加引号的"$@"来访问脚本的位置参数。原创 2025-09-17 19:39:24 · 426 阅读 · 0 评论 -
Kettle变量设置与使用详解
方法适用场景作用域转换中的“设置变量”在转换流程中动态生成值,供后续步骤使用当前转换作业中的“设置变量”在作业流中设置值,并传递给所有子转换和子作业父作业(对子对象可见)文件设置全局、环境相关的静态配置(如数据库连接)全局(所有作业和转换)**命令行参数 () **在调度运行时动态传入参数(如日期、文件路径)根级别(对整个执行的作业/转换可见)掌握变量的设置和使用,是构建健壮、可维护、可配置的 ETL 流程的关键一步。原创 2025-09-14 19:59:50 · 850 阅读 · 0 评论 -
Hive存储过程详解与应用
Hive 除了存储过程,还提供了用户自定义函数(UDF)来扩展功能。特性存储过程 (Stored Procedure)用户自定义函数 (UDF, UDAF, UDTF)主要功能封装复杂的业务逻辑流程,包含多条 SQL 语句扩展 Hive 的表达式功能,用于处理单行或多行数据并返回结果执行方式使用CALL语句独立调用在 SQL 查询中像内置函数一样使用 (e.g.,返回值可以没有返回值,或有多个输出参数 (OUT)通常返回一个值 (UDF), 聚合值 (UDAF) 或表 (UDTF)适用场景。原创 2025-09-14 19:47:35 · 878 阅读 · 0 评论 -
DataX底层实现原理解析
解析配置: DataX 启动后,首先解析 JSON 格式的作业配置文件。初始化 JobContainer: 创建 JobContainer,它根据配置初始化 Reader 和 Writer 的插件实例。切分任务: JobContainer 调用 Reader 和 Writer 的split方法,根据通道数 (channel) 得到需要并发执行的任务列表。调度执行: 初始化 Channel,并启动 Reader Runner 和 Writer Runner 线程池。数据同步。原创 2025-09-14 11:31:12 · 743 阅读 · 0 评论 -
Sqoop底层实现原理解析
特性实现方式并行性将数据按“划分列”分片,生成多个独立的 Map 任务并行处理。** scalability(扩展性)**基于 MapReduce,可以轻松利用 Hadoop 集群的数百上千个节点。可靠性/容错性继承自 MapReduce 框架,任务失败会自动重试。性能1.批量操作(批量读取、批量插入)。2.Direct 模式使用原生数据库工具。3. 使用合适的文件格式(如 Avro)。数据类型映射。原创 2025-09-14 11:30:53 · 913 阅读 · 0 评论 -
Kafka Topic 概念与分区详解
特性描述好处逻辑通道特定类别消息的集合,生产者与消费者交互的桥梁。解耦系统,易于理解和设计。分区一个 Topic 被物理上分成多个有序的日志文件。水平扩展、高吞吐量、并行处理。偏移量分区内每条消息的唯一标识。允许消费者灵活管理消费进度,支持重播。多订阅者可被多个消费者组订阅。支持“发布-订阅”和“队列”两种模式。持久化消息会保存一段时间(可配置)。数据可靠性,支持故障恢复和回溯。简单来说,原创 2025-09-14 09:56:23 · 602 阅读 · 0 评论 -
数据中台:统一数据供应链
数据中台的本质,就是建立一个统一、高效、易用的“数据供应链”。它把公司内部各个地方产生的杂乱无章的数据(像菜市场的 raw material),经过专业的收集、清洗、加工、整合,变成标准、干净、好用的“数据半成品”或“数据服务”(像中央厨房里切配好的菜和调好的酱汁)。然后,前台的各种业务部门(像妈妈、爸爸、你)可以像点菜一样,随时随地、快速便捷地获取这些数据服务,从而支撑业务的快速决策、精准营销和创新尝试。“数据打通,业务赋能”。它不是一个具体的软件,而是一套组织架构、方法论、技术工具和数据标准。原创 2025-09-13 21:50:21 · 336 阅读 · 0 评论 -
数据湖与数据集市对比分析
数据湖数据集市哲学存储一切,以备不时之需服务特定群体,优化查询体验数据状态原始精炼主要问题“我将来可能会用什么数据?“我现在如何快速回答这个业务问题?选择哪一个取决于你的具体需求。通常,成熟的企业会同时拥有两者,让它们在各司其职的基础上协同工作。原创 2025-09-12 13:04:39 · 920 阅读 · 0 评论 -
Lambda与Kappa架构详解
特性Lambda 架构Kappa 架构核心思想批流分离,合并查询流处理统一一切,必要时重放历史架构复杂度高(两套系统,两套代码)低(一套系统,一套代码)运维成本高低数据一致性最终一致性更强的一致性(一套逻辑)处理延迟实时和延迟数据分开统一的低延迟处理重新处理能力批处理层天然支持,高效准确依赖流重放,可能较慢技术门槛需要掌握批处理和流处理两套技术栈需要精通一个强大的流处理引擎适用场景对历史数据准确性要求极高,实时性要求也高的复杂场景。原创 2025-09-12 12:18:59 · 840 阅读 · 0 评论 -
Flink安装部署详细指南
负责协调分布式任务的执行,如调度任务、协调检查点(Checkpoint)、故障恢复等。它是集群的“大脑”。负责执行数据流中的具体任务(Tasks),并提供内存来存储缓存数据。每个 Worker 都是一个 JVM 进程。先启动一个长期运行的集群(包含 JobManager 和 TaskManagers),然后向这个集群提交多个作业。所有作业共享集群资源。适合执行时间短、交互式的查询作业。为每个提交的作业启动一个独立的集群。作业完成后,集群资源释放。作业之间资源隔离性好,适合长期运行的大型作业。原创 2025-09-11 13:23:47 · 1046 阅读 · 0 评论 -
Flink安装部署详细指南
负责协调分布式任务的执行,如调度任务、协调检查点(Checkpoint)、故障恢复等。它是集群的“大脑”。负责执行数据流中的具体任务(Tasks),并提供内存来存储缓存数据。每个 Worker 都是一个 JVM 进程。先启动一个长期运行的集群(包含 JobManager 和 TaskManagers),然后向这个集群提交多个作业。所有作业共享集群资源。适合执行时间短、交互式的查询作业。为每个提交的作业启动一个独立的集群。作业完成后,集群资源释放。作业之间资源隔离性好,适合长期运行的大型作业。原创 2025-09-11 13:16:53 · 787 阅读 · 0 评论 -
Kafka消息确认机制详解
生产者端根据业务对可靠性和延迟/吞吐量的要求来选择acks。通用场景:使用默认的acks=1。高可靠性场景:使用acks=all并配合 Broker 端的(或更大)。同时,一定要配置生产者的retries参数为一个较大的值,以应对可重试的异常(如网络抖动、Leader 选举)。消费者端默认的自动提交在允许少量重复消费的场景下很方便。对于需要精确控制、避免重复消费的业务(如扣款、扣库存),强烈推荐使用手动提交。常见的模式是:拉取一批消息 -> 处理 -> 处理成功后同步提交()-> 继续下一批。原创 2025-09-11 13:08:17 · 751 阅读 · 0 评论 -
Flink DataStream API 常用操作总结
掌握 Flink DataStream API 的关键在于理解其有状态和基于时间的计算模型。入门三板斧mapfilterkeyBysumreduce。进阶核心Window(窗口)、(底层处理)、State(状态管理)。生产必备Producer(Kafka 连接)、Async I/O(异步访问)、(容错)。建议从简单的转换操作开始,逐步尝试使用keyBy和聚合,然后深入探索窗口和状态,最后再研究连接器、异步 I/O 等高级特性。原创 2025-09-11 13:07:25 · 559 阅读 · 0 评论 -
Flink 的精确一次(Exactly-Once)语义
组件如何贡献于精确一次例子Flink 运行时通过Checkpoint机制定期保存状态快照,故障时回滚。状态回滚到上个检查点。数据源 (Source)必须支持可重放,以便从记录的偏移量重新读取。可以基于 Offset 重新消费。输出端 (Sink)必须支持事务写入,与 Checkpoint 机制配合实现两阶段提交。Kafka Sink:写入事务性消息。JDBC Sink:利用数据库事务。因此,Flink 的精确一次语义是一个端到端的保证,需要Source、Flink 本身、Sink 三者共同协作。原创 2025-09-11 13:05:59 · 615 阅读 · 0 评论 -
Kafka支持的数据类型及应用场景
数据类型常见格式主要用途特点日志纯文本调试、监控、审计数据量大,半结构化事件/指标JSONAvro, Protobuf实时分析、监控、推荐结构化,带时间戳,价值高CDC数据同步、缓存更新高度结构化,保证顺序消息JSON, XML, 自定义服务间通信、任务队列业务指令,要求可靠二进制原始字节小文件传输不常见,需谨慎使用最佳实践建议:优先使用结构化格式:对于事件和 CDC 数据,强烈推荐使用 Avro(与 Kafka Schema Registry 配合使用)或Protobuf。原创 2025-09-11 12:49:07 · 800 阅读 · 0 评论