自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 资源 (1)
  • 收藏
  • 关注

原创 轻量级实时数仓架构选型指南

本文探讨了针对300GB数据量、250张表的轻量级实时数仓架构选型方案。针对冷热数据分明的业务场景(10张大表长期保留,200+流水表14天TTL),对比分析了Flink+Fluss与Apache Doris两种方案。重点评估了自动TTL管理、OSS存储整合和实施难度等维度,最终推荐采用Flink CDC 3.0+Apache Doris冷热分层架构。该方案通过Doris的动态分区和冷热分层功能,完美实现数据生命周期管理和成本优化,同时保持较低实施复杂度。文中还提供了详细的配置示例和资源预估,证明该方案在小

2026-02-08 22:13:45 692 1

原创 AI时代的架构重构:终结「买软件」还是「造软件」的二选一

AI时代重构软件架构:终结"买还是造"的困境 摘要:本文探讨AI如何解决企业软件定制化难题。传统选择要么是购买不贴合的通用软件,要么投入高昂成本定制开发。AI技术通过"三明治架构"实现突破:底层使用通用基础设施,中层AI编排层动态处理业务逻辑,顶层轻量应用快速响应需求。典型案例显示,企业能以10%的成本和1/10的时间,通过AI增强现有系统实现定制化效果。关键在于积累业务数据、开放系统接口,并培养能将业务需求转化为AI提示词的"AI产品经理"。AI

2026-02-06 13:14:50 329

原创 反直觉的数据开发哲学:10 个打破常规的高性能架构模式

在数据规模迈向 PB 级的今天,传统的软件工程“直觉”往往成为系统性能的瓶颈。本文以全栈架构师的视角,深入剖析了数据开发领域 10 个“反直觉”的高性能架构模式。文章涵盖计算性能(如惰性求值、微批处理)、存储架构(如宽表冗余、Schema-on-Read)及治理流程(如 ELT、DataOps)三大维度,结合 Spark、Kafka、ClickHouse 等技术的底层原理(Page Cache、Shuffle、谓词下推),揭示了如何通过“空间换时间”、“最终一致性”等逻辑打破思维定势,构建高吞吐、低延迟且易

2026-01-30 14:44:29 587

原创 AI辅助快速编码时代,程序员的核心竞争力究竟是什么?

AI时代程序员的核心竞争力解析 随着AI编码工具的普及,程序员的核心价值正在从代码编写转向更高维度的能力:1)业务需求抽象与问题定义能力,AI无法替代人类对复杂业务的理解;2)系统架构设计能力,全局把控大型系统;3)沟通协调与跨界协作能力;4)底层原理掌握与复杂问题调试能力;5)驾驭AI工具的能力,将AI转化为生产力放大器;6)持续学习与适应新技术的能力;7)创造业务价值的综合能力。未来优秀的程序员将是"技术+业务+AI应用"的复合型人才,通过人机协作创造实际价值,而非简单的代码生产者。

2026-01-30 10:26:32 539

原创 软件设计的两个极端:过度简化与过度复杂化

软件设计中的平衡之道:避免过度简化与过度复杂化 在软件开发中,设计失衡常表现为两种极端:过度简化(如"上帝类"、意大利面条式代码、硬编码配置)和过度复杂化(如不必要的抽象层、过早优化、设计模式滥用)。过度简化导致代码难以维护和扩展,而过度复杂化则增加了不必要的系统复杂度。理想的软件设计应在这两个极端之间找到平衡点,既保持代码简洁可维护,又具备适度的灵活性和扩展性。开发者需要根据实际需求评估设计决策,避免"为了设计而设计"或"为了快速交付而牺牲质量"

2026-01-20 16:58:29 644

原创 量体裁衣在技术方案中的应用

本文阐述了"量体裁衣"理念在技术方案设计中的应用。通过四个典型案例(电商架构、数据分析系统、移动应用开发和日志监控系统),展示了如何根据业务规模、团队能力和预算约束选择最合适的技术方案。文章提出五大实践原则:避免技术崇拜、考虑团队能力、预留演进空间、成本效益分析和分阶段实施,并提供了数据库、缓存等常见技术选型的决策框架。最后指出了过度设计、经验主义等常见误区及规避方法,强调技术方案应匹配实际需求而非盲目追求先进性。

2026-01-20 15:17:49 1024

原创 微服务设计模式在数据开发领域的应用实践

微服务设计模式在数据开发领域的应用实践 摘要:本文探讨了微服务设计模式在数据架构中的创新应用。通过单一职责原则实现数据域划分和ETL任务拆分,构建清晰边界;采用数据网格架构将数据产品化,各业务域团队自主管理;利用断路器模式实现数据源故障隔离和质量熔断机制。这些实践显著提升了数据系统的灵活性、可维护性和可靠性,为现代数据架构设计提供了新思路。

2026-01-20 14:49:06 1014

原创 拨开迷雾:如何在错综复杂的因果链中锁定“主要原因”

摘要: 在复杂因果链中锁定“主要原因”需多维分析。首先厘清因果类型(直接/间接、内因/外因、根本/表面原因),再通过四个维度综合判断:1. 必然性(内因主导性质变化);2. 不可替代性(反事实推理,剔除后结果是否改变);3. 系统能级(顶层架构因素重于局部偶发);4. 临界触发(在系统不稳定时直接原因可能起关键作用)。实战中可用“五问法”“鱼骨图”等工具,最终答案取决于分析目的——追责侧重直接原因,预防重根本原因,历史解释需结合内外因。核心在于识别决定事物性质、导致必然结果的支配性因素。

2026-01-19 10:48:14 613

原创 深度与广度的博弈:软件与数据架构中“专用”与“通用”路线的终极抉择

在软件与数据架构决策中,技术管理者面临"专用解决方案"与"通用解决方案"的根本抉择。专用方案(如Shopify、Salesforce)提供快速部署但定制受限,适合初创企业验证MVP;通用方案(如自研微服务架构)灵活性高但成本大,适合核心业务差异化竞争。关键决策因素包括:业务是否核心、发展阶段、人才储备和长期成本结构。成熟企业趋向"可组合架构",将专用方案用于标准化运营,通用方案用于核心竞争力构建。建议初创期优先采用SaaS,成长期开始解耦核心业务,

2026-01-18 17:31:28 671

原创 某些场景自行维护 ECS 比使用托管服务成本更低

摘要: 云托管服务(PaaS/SaaS)收取管理溢价,而自建ECS可通过人力成本和可用性风险换取资源成本降低。适用场景包括:低SLA的非核心数据处理(如日志收集)、开发测试环境(混部降低开销)、内部工具(低频访问)、深度定制需求(特殊插件)、无状态任务(抢占式实例)、单机伪集群(如MinIO)及简单流量转发。核心原则是运维成本低于托管溢价或允许单点故障时,自建更优;但核心数据库、超大规模集群等仍需托管服务保障可靠性。

2026-01-15 14:50:14 548

原创 拒绝“黑盒运维”:如何将散乱脚本进化为企业级监控服务?

摘要: 本文探讨了如何将零散的运维脚本升级为企业级监控服务。传统Crontab+Script模式随着业务发展会变成维护噩梦,表现为硬编码、黑盒化和依赖个人。解决方案在于思维转变:从"写代码"到"做产品",通过标准化(分离逻辑与配置)、数据化(结构化业务逻辑)和服务化(建立执行日志)三个阶段重构。最终构建包含展现层、调度执行层和报警层的全景监控中台,实现业务方自助配置、历史追溯和分级报警。这种转型不仅提升系统可靠性,更能让工程师从"救火队员"成长为&

2026-01-15 13:42:35 639

原创 LVS 负载均衡核心原理深度剖析:从 NAT 到 DR 模式详解

本文深入剖析了LVS负载均衡的四种核心模式:NAT、TUN、DR和FULLNAT。NAT模式通过IP转换实现负载均衡,适合小规模集群;TUN模式采用IP隧道封装,适用于跨机房场景;DR模式通过修改MAC地址实现高性能负载均衡,是互联网公司首选;FULLNAT模式支持跨VLAN部署但性能稍逊。文章详细分析了各模式的数据包流向、核心原理及优缺点,并提供了选型指南,强调DR模式最适合高并发场景,而FULLNAT适用于复杂网络环境。理解这些原理对架构设计和故障排查至关重要。

2026-01-13 19:10:12 731 1

原创 Canal数据过滤配置技术文档

Canal数据过滤配置技术摘要 Canal是阿里开源的MySQL增量日志解析工具,通过binlog解析实现数据订阅。本文档详细介绍了Canal的数据过滤配置方法,包括: 配置场景:数据范围限制、性能优化和业务隔离 配置位置:instance.properties文件 过滤类型: 表级过滤(正则表达式) 字段级过滤(支持多种数据类型条件) 实践案例:日期、数值、字符串等字段的过滤配置示例 版本兼容:1.0.x支持基础表过滤,1.1.4+支持字段级过滤 优化建议:推荐使用时间戳格式提高效率 (149字)

2026-01-13 14:11:38 431

原创 Python 的“非直接原因”报错

Python开发中常见误导性错误根源分析: 变量作用域陷阱:函数内赋值语句导致变量被误判为局部变量,引发UnboundLocalError 闭包延迟绑定:循环中创建的lambda函数会引用最终循环变量值 可变默认参数:函数默认参数在定义时只评估一次,多次调用共享同一对象 循环导入问题:模块相互导入导致半初始化状态,报错信息不直观 类方法self缺失:实例方法调用时自动传入self参数,定义时遗漏会导致参数不匹配 GIL限制:多线程无法真正并行执行CPU密集型任务 编码问题:Windows默认使用GBK编码,

2026-01-09 14:45:35 642

原创 在 Java 开发及其生态圈中“声东击西”的误导性错误

Java开发中常见的"非直接原因"错误解析:类加载问题(如NoClassDefFoundError实际是静态初始化失败)、框架陷阱(Spring事务失效可能因同类调用绕过代理)、并发问题(OOM可能由元空间动态类过多导致)和序列化异常(NotSerializableException可能因内部类引用)。这些错误往往表象与根源不符,需深入分析JVM机制和框架原理才能准确定位。建议排查时关注底层原因而非表面错误,注意类加载器、代理机制和异常处理等关键环节。

2026-01-09 14:42:29 928

原创 在数据库开发和运维中的“错误信息误导(Red Herring)”

看错误码 (Error Code):比如1064永远是语法解析层面的问题(包括截断),2006永远是连接层面的问题。怀疑环境:本地能跑线上不能跑?查大小写配置、查防火墙。怀疑数据:SQL 看着没毛病但报错?查特殊字符 (\x00、Emoji)、查保留字。怀疑配置:连接莫名断开?查和timeout。

2026-01-09 14:35:06 515

原创 在linux环境下修改可运行jar包配置并重新打包

以上两步联合操作,则可以修改springboot打成的可运行jar包中的lib下依赖包里的配置。4)保存文件内容,并退出vim 退出方法与vi命令退出方法一样。重新生成的 XXX.jar 为修改过配置的可运行jar包。-M 不生成清单文件MANIFEST.MF。-m 指定MANIFEST.MF文件。-i 为指定的jar文件创建索引文件。-0 生成jar包时不压缩内容。-C 可在相应的目录下执行命令。-t 显示jar中的内容列表。-u 添加文件到jar包中。-f 指定jar包的文件名。

2024-10-16 17:03:49 646

原创 flink cdc debezium 读取decimal为字符串问题

flink cdc decimal转化问题

2023-02-06 18:14:40 636

原创 python3 pymysql 查询结果转字典dict

【代码】python3 pymysql 查询结果转字典dict。

2023-01-31 07:00:00 1800

原创 MyRocks引擎与MariaDB

【代码】MyRocks引擎与MariaDB。

2023-01-30 08:00:00 248

原创 通过duckdb读写parquet

")")")

2023-01-29 08:00:00 1347

原创 如何避免数据仓库项目失败

在深入研究不同的数据仓库概念之前,了解数据仓库的实际含义非常重要。数据仓库通常被认为是商业智能系统,旨在帮助满足业务实体的日常报告需求。它们通常没有与 OLTP 数据系统相同的实时性能要求,并且 OLTP 系统仅包含与业务的一小部分相关的数据,而数据仓库希望包含与业务相关的所有数据。只有当仓库被视为“所有数据”的中心枢纽,而不仅仅是生成运营报告的工具时,数据仓库模型才能为企业带来好处。所有操作系统都应与数据仓库进行双向通信,以输入数据并接收有关如何提高运营效率的反馈。

2023-01-28 14:54:30 861

原创 技术文档模板

1、确认需求:2、分析需求:3、分析资源:4、边界:5、技术选型-技术广度:6、概要设计:7、详细设计:8、接口基本设计:9、系统的可用性、可靠性、可扩展性、可维护性方面延伸:

2019-10-02 13:41:35 2211

Flink _ Iceberg 全场景实时数仓的建设实践 - 知乎 (2021_9_15 下午8_42_18).html

Flink _ Iceberg 全场景实时数仓的建设实践 - 知乎 (2021_9_15 下午8_42_18).html

2021-09-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除