手记

从数据仓库到现代数据栈:历史与指南

近年来数据的爆发式增长使得数据栈成为任何希望保持在竞争中的地位的企业不可或缺的组成部分。然而,技术革新的不断加速以及技术术语的泛滥,即使是那些有技术背景的人,理解现代数据栈的概念也变得颇具挑战性。

什么是数据堆栈?

在技术领域,术语“技术堆栈”用来描述一组协同工作的组件,以实现共同目标。软件工程师利用技术堆栈来构建各种目的的产品。同样地,数据堆栈指的是一个相互关联的工具和技术集,使企业能够以可扩展和经济高效的方式收集、存储、处理和分析数据。数据堆栈的最终目标是将原始数据转化为有价值的见解,从而帮助决策制定。

读完本文后,你将对现代数据栈的构成、它从早期的发展历程以及它与传统数据栈的不同之处有全面的理解。

准备好了没?好啦,咱们开始吧!

Hadoop的兴起与水平扩展(Scale-out)

2005年,这是一个重要转折点的年份。这一年,Doug Cutting和Mike Cafarella这两位推出了Hadoop这个项目,这是一个开源的框架,用于大规模数据集的水平存储和处理。

在计算机科学中,水平扩展是一种通过增加系统中的机器来提升处理能力的方法。垂直扩展则意味着增加单个机器的资源,比如增加内存或升级CPU。由于水平扩展一般比垂直扩展更经济高效,Hadoop的引入提供了一种成本效益更高的解决方案,用于存储和处理大规模数据,而无需昂贵的硬件支持,这对于大多数企业来说仍然是一笔不小的开销。

随着2000年代初的大规模数字化,企业面临着存储和分析大量非结构化数据和半结构化数据(比如图片、视频、社交媒体帖子等)的日益严峻的挑战。然而,传统的关系数据库,比如Oracle或MySQL,仅仅是为了处理结构化的表格数据。而Hadoop能够管理这两种数据的能力加速了它的普及。

尽管Hadoop在当时代表了显著的进步,但它是一个复杂的系统来操作。随着数据量的增长,使用Hadoop管理和分析数据的难度也越来越大,这使得缺乏相应技术和专业知识的组织很难采用Hadoop作为解决方案。

AWS 和云数据仓库变革

在2006年,AWS作为解决现场数据仓库所面临挑战的方案出现。它通过引入连接虚拟计算机和使用远程存储的能力,彻底改变了行业面貌。不同于需要大量硬件和基础设施投资的传统现场数据仓库,云端数据仓库为企业提供了按需访问可扩展计算资源的便利。通过利用云端数据仓库,企业可以把基础设施管理的负担交给像亚马逊AWS、谷歌云平台和微软Azure这样的云服务商,从而能够专注于数据的分析工作。

2012年推出的Amazon Redshift是一个重大突破。在此之前,管理和处理数据,尤其是非结构化数据,一直很繁琐且容易出错。微服务架构的流行推动了非关系型数据库的普及,但是当这些数据被加载到Hadoop集群中时,使用SQL处理这些数据仍然很麻烦。

Redshift的出现彻底改变了数据管理方式,使组织能够将数据存储在云端,从而无需使用本地硬件。在Redshift出现之前,数据管理权掌握在IT部门手中。非IT团队和员工需要向IT团队请求数据查询。相反,IT团队只能使用Java、Scala和Python这类语言,从而形成了数据访问的障碍。

此外,还有一点,Redshift 原生优化了处理关系型和非关系型数据的能力,让企业能够用标准 SQL 语言进行查询,这使其比当时的现有解决方案快 10-1000 倍[⁵],并且比当时便宜 100 倍。尽管同期或更早出现了其他类似的数据工具,但 Redshift 真正推动了数据行业的发展。

现代数据堆栈

公司内部开发并部署在本地的数据堆栈遗留下来了。这些结构基于单体式架构和自建组件,这导致需要大量的IT基础设施和人员投资。由于数据处理是在本地进行的,性能扩展受到已安装硬件容量的限制,因此这使得它整体上变得复杂、僵化且维护和扩展成本高昂。

相比之下,现代数据栈利用云数据仓库进行处理,并集成了现成的组件,这些组件专注于特定的数据处理和管理方面。这种模块化的方法使得现代数据栈高度可扩展且易于管理。许多现代数据栈工具都得到了社区的积极支持,并以SaaS或开源核心的形式提供。现代数据栈工具旨在易于使用,具有低代码或无代码的界面设计,并采用基于使用的计费模式,使各类企业都能负担得起。

一个现代数据栈通常由六个关键阶段组成,每个阶段都包含一组特定的技术,这些技术协同工作,提供特定的功能。这个框架支持从分析到商业智能、数据科学及机器学习的各种应用场景。

现代数据栈的组成取决于组织的具体需求和大小,这将决定一个组件是否是单一工具还是多个工具的组合。在我们即将发布的文章中,我们将深入探讨每个阶段并详细解析相关的组件。

笔记

[¹]: 非关系型数据(NoSQL 数据),也称为 Not Only SQL,是指一种设计用于处理文档、图形或键值对等难以轻松存储在传统关系型数据库中的非结构化或部分结构化数据的数据库。与关系型数据库不同,NoSQL 数据库通常没有固定的模式,不需要为数据存储预定义结构。这种灵活性使它们非常适合处理大量难以或成本过高在传统关系型数据库中存储的非结构化数据。

注释2:微服务架构是一种软件开发方式,它将复杂应用拆分成一系列较小且独立的服务。每个服务都专门设计来执行特定的任务,服务之间的通信通常是通过明确定义的API来进行的。

[⁴]: SQL(结构化查询语言)是一种标准的数据库查询语言,用于管理并操作关系型数据库。它允许用户进行增删改查操作,以及检索和处理存储在表中的数据。SQL 在商业和网页应用中广泛用于数据管理和分析。

[⁵]: 这是因为内部架构上的差异。Redshift 设计用于MPP和OLAP,而不是OLTP。

0人推荐
随时随地看视频
慕课网APP