常听人说 OLTP、OLAP 很重要,但日常工作为何都没碰过?

常听前辈说 OLTP、OLAP,但是我工作都没碰过,猜测是我太嫩的原因 (T_T)
我爬了文章,发现定义我看得懂也能理解,但实际应用就一脸蒙圈 (像极了高中考试T_T)
请问我工作使用 SQL-Server 跟 Oracle 要应用OLTP、OLAP 需要做哪些设定、或执行那些脚本吗?

定义 :

OLTP 是指 Online Transactional Processing 的简称,这个词中 Transactional 是非常重要的,代表的是说他的处理通常包含了读以及写,通常 OLTP 是指系统能够处理大量的更新以及新增的查询。所以在传统的 OLTP 系统中,数据的正确性以及一致性是首要要达到的目标之一。所以一般的 OLTP 中会常常听到 ACID (Atomatic, Consistent, Isolated, Durable) 合规。这代表他们谆循着一个事务 (Transaction) 完成后才会执行下一笔,确保整个系统的资料一致性。
数据一致性为什么这么重要?因为 OLTP 可能同时有多位使用者同时操作,所以要确保当一个使用者更新资料后,另一个操作中的使用者也能拿到最终的状态。不然就可能会有数据不一致以及不同步问题。这也是为什么常常会听到 ACID compliance 这个词在 OLTP 中。

什么是 OLAP 呢?
OLAP 又是什么呢?它代表着 Online Analytical Processing。一般的 OLAP 的系统可以让数据聚合 (data aggregation) 以及批次处理 (Batch processing),OLAP 大部分是用来做历史资料的分析以及报告。和 OLDP 最大的不一样是他不需要处理、储存、以及保持资料的一致性,而是用 OLAP 可以很快的使用 Query 去得到数据洞察得到数据聚合后的结果。
OLAP 使用情境
对于所有的 BI 系统以及报告工具都是 OLAP 的系统。像是如果银行中他有 OLTP 的系统确保他的一致性后,他就能用 OLAP 的系统去做报告以及商业智慧分析等应用。例如:他可以把所有全台湾的使用者在过去一个月的交易做分析,这时候他就会较适合使用 OLAP 系统作分析。

结论
OLTP 重视数据处理以及一致性,OLAP 重视数据分析。但通常他们两个会搭配使用,储存资料的时候先存到 OLTP 中确保数据一致性,要做分析的时候再使用 OLAP 做重要报表。
阅读 2.9k
1 个回答

一般认为你说的 MS SQL Server、Oracle 就是 OLTP 类型的数据库.

OLAP 的一般认为是 ClickHouse 这一类『性能目的在于查询数据』类型的数据库.

在规模、人力、资金的约束下,OLTP 有时也会承担 OLAP 的功能,所以你可以看到 ClickHouse 的性能对比测试里还有 MySQL 的身影,但是因为从数据结构的设计上两者就大相庭径,所以 OLTP 可以做到 OLAP 的部分功能(如果考虑数据量级的话那其实多数情况下只有 OLAP 是解决方案,这个可以参考 ClickHouse 的性能对比测试说明),而 OLAP 由于不提供一致性等保证所以它不能提供 OLTP 的功能.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏