Skip to main content

Command Palette

Search for a command to run...

数据中心进化与演变

Updated
•2 min read•View as Markdown
数据中心进化与演变
H

I am ZhangSan, a mere nobody. 我是张三,一个无名小子。

记录工作中搭建数据中心(数仓)的过程演进。

版本 v1.0

优点

  • 报表定制灵活

  • 结果实时性好

缺点

  • 随着数据量的增多:查询耗时增长,页面频发502

  • 部分查询对数据库锁表,线上业务影响较重(可通过增加只读库 Slave 缓解)

版本 v2.0

优点

  • 可方便实现数据可视化

  • 报表灵活性提高

  • 隔离了线上业务(可以重建索引、数据二次处理等)

缺点

  • 实时数据延时 T-1(但可接受)

  • 同步耗时、定时任务需要维护(如发生数据同步延时等)

  • BI 框架对业务部门使用门槛较高

  • BI 框架对 MySQL 多表聚合查询时性能表现不理想

版本 v3.0

优点

  • 报表改为代码实现,提高灵活性。同时支持BI分析

  • 业务看板降低了其他业务部门的使用门槛

  • 隔离了线上业务

  • 引入ClickHouse 列式数据库,显著提高实时查询性能

缺点

  • 数据延时(但可接受)

  • 数据落地链路较长,有问题需要多个节点排查

版本 v4.0 (当前)

2025-05-26 更

相较于版本 v3 我们有如下改进

  1. 把 Shell 同步脚本 改为了 Apache Seatunnel 同步更高效,部分数据表使用了增量更新减少数据重复提取

  2. 将 ClickHouse 改为了 Apache Doris,因CH在多表联合查询时表现仍不够灵活且SQL语法略有不同,所以更换为 Doris,其 SQL 语法兼容性更好性能上感知差别不大

  3. 去掉了从数仓到 BI数据表生成时的定时任务,直接使用数仓。

  4. 数据的展示完全依赖业务看板侧的逻辑实现,减少多余的处理逻辑维护。

整体缩减了数据传输链路,同时降低了维护成本,重点放在设计数仓表结构以及业务逻辑维护上。

More from this blog

git切换分支缓慢问题

背景 最近在项目中 test 分支与 master 分支切换时感到非常慢,大概需要1-2分钟 解决 找出两个分支的最大的差异 # 找出两个分支的差异 git diff --dirstat=files master..test # 输出 98.7% vendor/alipaysdk/openapi/v2/aop/request/ 分别检出两个分支到不同目录,经过比较发现文件主要差异为行尾表现不同,master 分支的文件为 LF、test 分支的为 CRLF。 处理方案 使用 .gitatt...

Feb 10, 20261 min read5

软件生产范式: 从 Ddd 到 Sdd + Tdd 的未来之路

未来的软件系统,很可能不再依赖大量手写的代码,而是依赖可验证的业务规范,以及对这些规范的自动化实现。——这正是从 DDD → SDD + TDD 的演进方向。 在 AI 深度参与软件开发的时代,传统的代码中心开发方式正在加速老化。我们正在经历一次结构性转变:从“写代码”转向“写规范 + 写测试 + 让 AI 自动补全逻辑”。 这篇文章试图提供一个前瞻性的观点(深度使用 vibe coding 近

Dec 9, 20253 min read35
软件生产范式: 从 Ddd 到 Sdd + Tdd 的未来之路

多项目部署时使用不同node版本与包管理器

nvm 项目地址:https://github.com/nvm-sh/nvmcorepack 项目地址:https://github.com/nodejs/corepack#readme 场景 前端多项目依赖不同的 nodejs 版本和不同的包管理器(npm、yarn、pnpm) 解决方案 1、依赖不同 nodejs 版本使用 nvm 来解决,项目中新增 .nvmrc 来指定版本号 2、针对不同包管理器的问题使用node自带的 corepack 来解决 # 使用指定版本 node nvm us...

Nov 5, 20251 min read2

hello1024

46 posts