大数跨境
0
0

数据架构之OLAP or OLTP该怎么选?数据库系统如何搭建?

数据架构之OLAP or OLTP该怎么选?数据库系统如何搭建? Sophie外贸笔记
2025-10-15
14
导读:数据架构之OLAP or OLTP该怎么选?数据库系统如何搭建?

用我们四川泸州话说,耗儿才知耗儿洞,专业的人做专业的事。俗话说:是故弟子不必不如师,师不必贤于弟子,闻道有先后,术业有专攻,如是而已。意为领悟道理存在时间差异,学术技艺各有专长领域。

最近和几个做数据开发的朋友聊天,发现大家或多或少都踩过坑:

  • 业务明明需要实时处理订单,却因为用了分析型数据库,结果写入卡得不行;
  • 想好好分析下用户行为,手里的事务型数据库却跑不出复杂报表;
  • 更头疼的是,团队里还总为 “该不该上 HTAP” 吵来吵去。

其实这些问题,说到底还是没把 OLTP 和 OLAP 的本质搞明白。

今天给大家分享的是一份数据开发架构技术选型文章,文章讲清楚了数据架构选型的解决方案和技术实现,非常具备开发指导意义。(这份文章还是基于手工数据开发为基础的,当然如果现在公司都已经实现大数据治理产品化了,可以忽略)。

版权声明

此文章PPT来源于某圈内好友业内对外培训材料,版权归微信公众号:数据集成与治理 原作者所有。珂珂进行深度解读,大家一起学习进步,欢迎转载分享。

文章解读

深度解读~数据架构开发技术选型指南》


你有没有遇到过这些头疼事:

今天我就用最直白的语言,结合我这些年在一线踩过的坑、趟过的路,给大家讲清楚这三个问题:

  1. OLTP和OLAP有啥本质区别?
  2. 不同业务场景到底该怎么选?
  3. 数据库系统又该怎么搭?


一、OLTP和OLAP,到底有啥区别?


要分清楚 OLTP 和 OLAP,不用看那些复杂定义,就看它们干的是啥活儿。

1. OLTP:负责业务的实时 “执行”

OLTP,全称是在线事务处理(Online Transaction Processing),简单说就是“处理你每天用的那些‘点一下就生效’的操作”。

举个最常见的例子:

你在淘宝下单买件衣服,点击“提交订单”的瞬间,系统要做几件事——

  • 扣减库存
  • 生成订单号
  • 记录用户地址
  • 更新账户余额

这些操作都得在毫秒级完成,用户不能等,也不能出错。

这类操作有四个特点

  • 高频短事务每次操作就改个几行数据,但并发量特别大。就像双 11 那会儿,每秒几十万笔订单,全靠它撑着;
  • 必须保证一致性比如你付了 100 块买东西,账户扣款和订单金额得对上,要么都成,要么都不成,这就是常说的 ACID 特性
  • 数据结构不能瞎改用户表、订单表这些,字段都是固定的,改一下可能整个业务流程就乱了;
  • 响应必须快谁能忍下单后等 3 秒才出结果?所以处理时间得控制在毫秒级。

简单说,OLTP 就是业务的“执行者”,负责把日常业务稳稳当当跑起来。

2. OLAP:负责从数据里“挖价值”

OLAP 全称是 Online Analytical Processing,核心是从历史数据里找出有用的信息,帮着做决策。

比如:

  • 电商分析大促期间的复购率
  • 零售看区域销售趋势
  • 银行评估客户信用风险

这些都是 OLAP 的活儿。它的特点也很明显:

  • 低频长查询一次分析可能要扫几百万、几千万甚至上亿条数据。
  • 计算起来复杂要做表关联、分组聚合、窗口函数这些,有些复杂。
  • 数据结构灵活想加个“直播带货”的标签,或者把日数据改成周数据,随时能弄;
  • 响应时间没那么急只要能让分析师来回调条件查就行,比如先看 A 维度,再换 B 维度。

说白了,OLAP 就是“决策脑”,靠分析数据给业务指方向。

注意点:

  • 别混用场景用 OLTP 做分析,最后业务肯定崩溃;用 OLAP 处理交易,写入慢、事务没保障,用户体验很差。
  • 别盲目追新HTAP 虽然说能兼顾两者,但真比不过专业的 OLTP 和 OLAP。就像全能选手,单打独斗可能干不过专项冠军。
  • 注意技术在发展现在实时数仓、湖仓一体这些技术,让两者边界有点模糊了,但核心的差异——事务特性、数据操作类型,还是存在的。


二、怎么选?四个维度帮你定


知道了本质差异,接下来就说说怎么选。我总结了四个维度,照着看,基本错不了。

维度 1:看业务是“做事”还是“分析”

如果业务核心是处理用户的实时操作,比如下单、支付,还得保证操作准确,那就选 OLTP如果是要从历史数据里找规律,比如用户分群、销售预测,需要复杂查询,那就选 OLAP

举个例子:

  • 电商的订单系统肯定是 OLTP,用户下单得实时扣库存、生成订单;
  • 大促后的复盘系统,要分析不同渠道、商品的销售情况,这就得用 OLAP

怎么高效搭建系统?

借助数据集成平台,比如FineDataLink,实现可视化多源异构数据整合,通过DAG+低代码开发模式,快速消灭信息孤岛,同时将计算压力转移,降低对业务系统的压力。

维度 2:看数据是“常变”还是“基本不动”

OLTP靠行式存储、B+ 树索引、事务日志这些技术,保证写得快、数据准。

所以:

数据要实时写、写完马上查,比如订单状态,就得用 OLTP

OLAP用列式存储、预计算这些招,让查询效率更高。

所以:

数据是历史沉淀,比如前一天的订单记录,写完基本不动,那就用 OLAP

就像:

  • 银行的核心交易系统,每秒几万笔转账,必须是 OLTP
  • 但客户画像系统,每天同步一次数据用来分析,用 OLAP 就合适。
图片

维度 3:看谁在用这个系统

  • 如果是客服、柜员、运营这些一线人员用,他们就做点修改用户信息、提交审批之类的操作,选 OLTP。界面就是表单加按钮,要的是快和方便;
  •  如果是分析师、数据科学家在用,他们要写 SQL、用 BI 工具分析数据,比如看退货率和物流时效的关系,那就选 OLAP。界面得有查询编辑器和图表,方便他们来回试。

维度 4:看对性能的要求

  • 对单次操作的延迟特别敏感,比如支付超过 1 秒用户就跑了,必须选 OLTP。它靠缓存、读写分离这些技术,把响应时间压到毫秒级;
  •  要同时处理大量查询,比如上百个分析师同时跑报表,那就选 OLAP。它用分布式计算、列存压缩这些办法,能扛住大查询量。

三、系统怎么搭?一步一步来

搞清楚需求了,接下来就是搭系统。我分 OLTP 和 OLAP 两种情况说,都是干货,记好了。

场景 1:OLTP 系统搭建,核心是“稳、快、准”

搭 OLTP 系统,目标很明确:少花钱、扛住高频业务、数据不能丢。

(1)第一步:看业务规模选数据库

  • 中小业务(QPS 小于 1 万):开源的 MySQLPostgreSQL 就行。生态成熟,支持 ACID,搞个主从复制实现读写分离,足够用了;
  • 高并发业务(QPS 大于 10 万):得用分布式事务数据库,比如 TiDBOceanBase。能通过加节点扩展,支持强一致性,电商大促、金融交易就靠它们;
  • 要求毫秒级响应:可以加个 Redis 当缓存,把商品库存这些高频访问的数据放内存里,减轻主库压力。

用过来人的经验告诉你,别一开始就上复杂的,够用就行。

(2)第二步:架构设计

(3)第三步:监控和备份

  • 实时监控:用 Prometheus+Grafana 监控 QPS、延迟、锁等待这些指标,慢查询赶紧处理;
  • 定期备份全量备份增量日志,比如 MySQL 用 Percona XtraBackup 加 Binlog,确保数据丢了能快速恢复,最好 5 分钟内;
  • 容灾得做好:跨机房部署主备节点,比如阿里云的“三地五中心”,别因为一个机房出问题,业务就停了。

特别提醒:千万别为了方便分析就乱加索引,写操作会变慢,最后整个系统都受影响。

场景 2:OLAP 系统搭建,关键是“快、活、省”

搭 OLAP 系统,就是要用合理的成本,让复杂查询跑得顺,数据接入也方便。

(1)第一步:选引擎,看数据量和查询复杂度

(2)第二步:数据怎么进来,怎么存

  • 批量导入:前一天的订单数据,用FineDataLink从关系库导到 Hive,或者直接用数据库的导出工具;
  • 实时摄入:像直播带货的实时 GMV,就得用 Kafka+FlinkKafka 先存着数据,Flink 清洗转换后写到 OLAP 数据库;
  • 存储优化:用列式存储减少 IO,按维度分区,比如订单表按月分,按指标排序,比如用户行为表按用户 ID 排,查起来就快

(3)第三步:查询怎么优化,跑得更快

  • 预计算结果:经常查的,比如“每日各品类销售额”,在FineDataLink中建个物化视图提前算好存着,不用每次查都重新算
  • 用向量化执行:现在的 OLAP 数据库,比如 ClickHouse、StarRocks,都支持把数据按列打包成向量,用 CPU 指令级优化来算处理更快;
  • 资源分开用:用资源组或者容器化,把 BI 工具的查询和分析师的即席查询分开,别让大查询占了小查询的资源。

注意事项

OLAP 最怕数据倾斜,解决办法就是建表时用“DISTRIBUTE BY HASH (UserID)”分散数据,或者查询时手动把异常值过滤掉。


四、混合式的HTAP是未来吗?


最近 HTAP 挺火,说能一套系统同时支持 OLTP 和 OLAP,不用来回同步数据。但它真的那么神吗?

HTAP的好处是:

  • 数据实时同步,不用搞 ETL;
  • 系统简单,就维护一套数据库;
  • 还能在事务里做分析,比如下单后马上看用户历史购买记录。

缺点也明显:

  • 处理事务不如专业 OLTP 快,因为它的存储引擎要同时照顾行存和列存,写入开销大;
  • 分析起来也不如专业 OLAP 灵活,复杂查询可能还得扫行存,效率低。

但是:

对大部分企业来说,OLTP 和 OLAP 分开用更实在:

  • 用专业 OLTP 跑业务,
  • 用专业 OLAP 做分析,
  • 中间用 ETL 或者 Debezium、Canal 这些工具同步数据。

只有那种既需要高并发事务,又得实时分析的场景,比如银行核心系统要实时算客户风险等级,才考虑 HTAP

总结

选 OLTP 还是 OLAP,说到底是看业务需求和技术能不能匹配上。

不是说哪个高级就用哪个,得看业务是要“执行交易”还是“分析决策”,数据是“常变”还是“基本不动”,谁在用,对性能要求是什么。

因为技术是为业务服务的。不管选哪个,能让数据跑得顺、用得好,给业务带来价值,才是好用的。你说对不?

图片

如果在下载资料过程中遇到了任何困难,或者对企业数字化转型有任何疑问,欢迎扫描下方二维码,进行免费咨询。(请备注您有哪方面的数字化需求,白嫖党、广告党太多,不备注来意的将不通过好友!) 


图片

免责声明:本号所载内容为原创或整理于互联网公开资料,版权归原作者所有。文章仅供读者学习交流,不作任何商业用途。因部分内容无法确认真正来源,如有标错来源或涉及作品版权问题烦请告知,将及时处理,谢谢!
图片

推荐阅读

图片

第一期(2024-9-20)-项目管理pmo总结-基于工业智能制造项目>>

第二期(2024-11-10)-数据资产盘点与数据治理>>

第三期(2024-12-29) -数据资产目录怎么建>>

第四期(2025-1-12)-数据资产入表与人工智能时代的法律风险挑战及业务机会探讨分享>>

第五期(2025-2-16)-数据资产入表整体架构与政策法规>>

第六期(2025-4-20)-数据安全与数据可信空间>>

New!第七期(2025-8-10)-数据资产入表全流程介绍>>

New! 点击下载材料-获取全套数据治理解决方案>>

【声明】内容源于网络
0
0
Sophie外贸笔记
跨境分享角 | 长期更新优质内容
内容 45547
粉丝 0
Sophie外贸笔记 跨境分享角 | 长期更新优质内容
总阅读240.7k
粉丝0
内容45.5k