前言:笔者自2019年硕士毕业,先后任职于两家一线互联网大厂,加上实习经历在数据行业已经摸爬滚打近5年。近来愈发认识到工作中自我沉淀的重要性,既是对自己日常工作的梳理总结,也可以帮助到一些数据新人少走弯路。本篇从数据库引申到数据仓库,用一个生动形象的例子来介绍数据仓库的特性与必要性。了解数据底层可以帮助我们更好的去做数据相关工作,如果本篇文章能帮助到屏幕前困惑的你,会让我很开心。
01
什么是数据库?
当我们说起‘数据仓库’这个词时可能感受并不很直观。相比之下,大家更熟悉的可能是 ‘数据库’这个词。在我们的主题开始之前,我想先着重介绍一下什么是数据库。
日常的工作、生活中会产生各种各样的数据,这些海量数据是需要被记录的,因为这些数据中往往蕴含着非常大的价值。我们拿办公最常用的数据处理工具Excel举例,大家日常工作一定少不了和Excel接触,会用Excel对数据进行记录、存储及运算。Excel其实可以被粗略看成一种微型数据库,因为事实上它的确承载了办公者对数据进行记录、存储及运算的需求。然而这种微型数据库存在很多不足:
Excel 能存储的数据量有限,一般以一百万条为界限,超过这个数量级运行起来就很慢且会程序崩溃;
Excel稳定性并不好,我相信大家肯定都有过 Excel卡死然后数据丢失的经历;
为什么Excel会有诸如此类这些缺点呢?说白了,因为像Excel这种工具它根本不是为了存储数据而生,它的主要功能是对小量级的数据做一些轻量级处理加工,使用门槛低。但也决定了它绝对不可能被工业界应用于大量级数据的记录、存储及运算。
相比被大众广泛使用的Excel,数据库这种东西则显得更加小众和专业化一些。和上者比起来,数据库的优势在于存储的数据量更加庞大、运行起来更加稳定。我们实在无法想象类似淘宝、天猫这种巨大的互联网电商平台,在使用时突然存储数据的工具崩了,将会造成多大量级的损失。
从某种程度来讲,数据库这种工具就是为数据的安全、稳定兜底而存在的。此外,还需要同外部系统工具有良好的交互性,毕竟数据不是存进去就完事,如何应对频繁地增、删、改、查所带来的IO压力,以及在高并发场景下所能承受的数据洪流压力,都是数据库的系统设计者需要考虑的问题。可以说 ,数据库这个方向在整个计算机科学领域内,都占有重要的地位,而数据库方向的研究者也历来是图灵奖的得奖大户。
在如今高度信息化、智能化的社会里,无处不在的信息系统背后都少不了数据库的身影,你在各种APP中的每一