女朋友问小灰:什么是数据仓库?什么是数据湖?什么是智能湖仓?

2022-09-01 15:29:35 浏览数 (2)

首先,我们来讲一讲什么是数据库。

作为程序员,我们写的大多数商业项目,往往都需要用到大量的数据。计算机的内存,可以实现数据的快速存储和访问。

但是,内存的空间是有限的,也无法长期保存有用的数据。对于那些大量的,需要长期使用的数据,我们需要对它们进行持久的、规范化的存储,于是就有了数据库(DataBase)

市场上常用的数据库有很多种,包括像MySQL、Oracle这样的关系型数据库,也包括Redis,HBase这样的非关系型数据库。

无论是哪一种数据库,它们所存储的都是结构化数据,主要应用的领域是联机事务处理(OLTP),也就是我们程序员所熟悉的增删改查业务。

满足了业务需求,数据库当中的数据不断积累,变得越来越丰富。这时候人们发现,这些数据不但可以支撑业务的运行,也可以用于生成商业报表,进行数据分析,提供有价值的决策参考。这些数据分析和生成报表的处理操作,被称为联机分析处理(OLAP)

但是,传统数据库擅长的是快速地对小规模数据进行增删改查,并不擅长大规模数据的快速读取。

于是,人们发明了一种全新的数据存储方式,并把原本分散在不同项目当中的业务数据进行抽取、清洗、转换、加载,最终汇总成为一系列面向主题的数据集合,按照全新的方式进行存储。

这种全新的存储方式,被称为数据仓库(Data Warehouse);把数据进行抽取、清洗、转换、加载的过程,被称为ETL(Extract Transform Load)

数据仓库当中存储的数据,同样是结构化数据。

数据库用于业务处理,数据仓库用于数据分析,一时间大家都使用得十分愉快。

但是,随着大数据和机器学习技术的不断发展,人们发现不仅是结构化的数据具有分析价值,许多非结构化的数据,例如用户日志、电子邮件、PDF等等,同样具有可观的分析和学习价值。

这些五花八门的数据,如果统一按照ETL的方式进行加工处理,实在是不太现实,那么索性把它们按照原始格式汇总在一起吧。这样汇总起来的庞大集合,被存储在了数据湖(Data Lake)当中。

数据湖当中的数据可谓是包罗万象:

结构化的,有各种关系型数据库的行和列。

半结构化的,有JSON、XML、CSV。

非结构化的,有电子邮件、PDF、各种文档。

甚至还有杂七杂八的二进制文件,比如图片、视频、音频。

通过数据湖这个统一的数据管理节点,企业可以利用更加丰富多样的数据,为商业智能、机器学习等方向赋能。

在现实的企业项目当中,所需要的不只是统一存储的数据湖,也需要各种各样专门构建的存储方案,由此为特定应用场景提供必要的性能、规模与成本优势。

比如,我们仍然需要数据仓库,适合针对结构化数据通过复杂查询快速获取结果;我们需要Lucene或Elastic Search这样的全文检索引擎,从而实现快速搜索并分析日志数据,借此监控生产系统的运行状态。

通过这些多样的存储方案,我们可以高效低成本地进行数据分析、机器学习、大数据处理、日志分析等工作。

为了从数据湖及专门构建的存储中获取最大收益,企业希望在不同系统之间轻松移动数据。比如有些情况下,客户希望将数据湖当中的部分数据移至数据仓库、日志系统等节点。我们将这种情况,归纳为由内向外的数据移动操作。

还有些情况下,企业希望将业务数据从关系型数据库和非关系型数据库移动到数据湖内。我们将这种情况,归纳为由外向内的数据移动操作。

最后,企业还可能要求将数据在不同的专用数据存储方案之间往来移动,比如将数据仓库内的数据提供给机器学习系统。我们将这种情况,归纳为围绕边界的数据移动操作。

1.快速构建起可扩展的数据湖。

2.丰富而且功能强大的专门构建的数据服务集合,这些数据服务可以为交互式仪表板与日志分析等提供必要的性能支持。

3.在数据湖及各专门构建的数据服务之间实现数据的无缝化移动。

4.通过统一方式加以保护、监控与管理,保证数据访问活动的合规性。

5.以低成本方式扩展系统,保证不对性能产生负面影响。

我们将这样一种强大的数据湖及其配套的专用构建数据服务体系,称为智能湖仓(Lake House)架构

亚马逊云科技平台并不是简单粗暴地将数据湖与数据仓库集成起来,而是把数据湖,数据仓库,以及其他一些专门构建的数据存储方案集成起来,赋予统一管理与轻松灵活的数据移动。

下面我们从5个方面,来分别介绍一下亚马逊云科技智能湖仓是如何满足企业的各项需要的:

1.可扩展数据湖

如何保证数据湖的可扩展性呢?亚马逊云科技凭借的是他们的绝活,Amazon Simple StorageService (Amazon S3) 。Amazon S3作为一款历史悠久的对象存储服务,拥有无与伦比的持久性、可用性与可扩展性。正是因为这个优势,亚马逊云科技的数据湖选择了Amazon S3技术作为基础。

与此同时,数据湖的设置与管理往往涉及诸多手动且极为耗时的操作,例如从不同来源处加载数据、监控数据湖、设置分区、将数据重整为列格式,以及对访问进行授权与审计等等。为了帮助简化这个过程,亚马逊云科技开发出了Amazon Lake Formation。Lake Formation能够从数据库及对象存储中收集并分类数据,将数据移动到AmazonS3数据湖内,使用机器学习算法清理并分类数据,使得云端安全数据湖的构建周期大大缩短。

2.专门构建的分析服务

为了满足不同的具体数据需求,亚马逊云科技提供最具深度与广度的专门构建的分析服务组合,被称为purpose-built。其中包括亚马逊云科技的几个重要法宝:

Amazon Athena

交互式查询服务,支持使用标准SQL语句在S3上分析数据。

Amazon EMR

行业领先的云大数据平台,可使用多种开放源代码工具处理大量数据。

Amazon Elasticsearch Service

一种托管服务,提供了在ElasticSearch云当中部署、操作和扩展亚马逊云科技集群的服务。

Amazon Kinesis

提供收集、处理和分析实时流数据的服务,以便及时获得见解并对新信息快速做出响应。

Amazon Redshift

亚马逊云科技的强大数据仓库,性价比很高。

这些法宝,各有各的勇武之地。

比如,面对Amazon S3当中结构化、半结构化、非结构化数据,我们如何来进行查询和分析呢?这时候,Amazon Athena就派上了用场。

Amazon Athena可以帮助我们使用熟知的标准SQL语句来创建数据库、创建表、查询数据、并让数据结果可视化。

再比如,互联网程序员每天都要面对海量的日志,如何更高效地存储和查询日志呢?ElasticSearch是一个合适的选择。

而Amazon Elasticsearch Service是一项完全托管的服务,方便您大规模经济高效地部署、保护和运行 Elasticsearch。该服务提供开放源 Elasticsearch API、托管 Kibana、与 Logstash 和其他亚马逊云科技服务的集成以及内置提醒和 SQL 查询支持。

3.无缝数据移动

前面我们说过,企业常常需要在多种服务及数据存储方案之间进行数据迁移。那么,如何能让大规模的数据做到平滑安全的迁移呢?亚马逊云科技使用了他们的另一件法宝:Amazon Glue

Amazon Glue 是一项无服务器数据集成服务,可帮助企业轻松准备数据以进行分析、机器学习与应用程序开发。Amazon Glue提供数据集成所需要的全部功能,可以在几分钟内获取洞见结论。

Amazon Glue包含一个重要的组件,叫做Amazon Glue Elastic Views

这个组件让你可以对存储在多种数据存储中的数据创建视图,并在您选择的目标数据存储中创建具体化视图。您可以使用Amazon Glue Elastic Views,通过 PartiQL语言(一种兼容 SQL 的开源查询语言)编写查询来创建具体化视图。您可以在亚马逊云科技管理控制台中使用查询编辑器以交互方式编写 PartiQL 查询,也可以通过 API 或 CLI 发出查询。

Amazon Glue Elastic Views支持 Amazon DynamoDB 作为数据源,并以 Amazon Redshift、Amazon Elasticsearch Service 和 Amazon S3 作为目标。你可以将具体化视图与其他用户共享,以供他们在自己的应用程序中使用,从而加快开发速度。Amazon Glue Elastic Views持续监控源数据存储中的数据更改,并自动向目标数据存储提供更新。

在数据移动的过程中,如何将流数据可靠地加载到数据湖、数据存储和分析服务中呢?亚马逊云科技还有一项法宝:Amazon Kinesis Data Firehose

Amazon Kinesis Data Firehose服务可以捕获和转换流数据,并将其传输给 Amazon S3、Amazon Redshift、Amazon Elasticsearch Service,这是一项完全托管的服务,会自动扩展以匹配数据吞吐量,并且无需持续管理。该服务还可以在加载数据前对其进行批处理、压缩、转换和加密,从而最大程度地减少所用存储量,同时提高安全性。

此外,刚才我们提到的Amazon Redshift与Athena还支持联合查询,可以跨多种存储方案在运营数据库、数据仓库以及数据湖间对数据执行查询,无需任何数据移动即可提供跨数据湖洞见,消除了设置并维护复杂的提取、转换与加载(ETL)管道的需求。

4.统一治理

现代分析架构中的一大核心,在于对数据访问活动进行授权、管理及审计,这就是所谓的统一治理。这种能力说起来简单,实现往往非常困难,因为跨组织内各类数据存储方案进行安全管理、访问控制与审计跟踪往往复杂且耗时,而不同的存储系统往往又有着不同的安全性、数据访问与审计要求。

亚马逊云科技为客户带来细粒度访问控制与治理选项,能够立足单一控制点对跨数据湖及专用数据存储系统的访问行为进行全面管理。

同时,亚马逊云科技还推出了Amazon Lake Formation行级安全功能的预览版本,希望降低人员及应用程序在共享数据时的安全保障难度。比如,一个区域销售经理,只能访问其所在区域内的销售数据。这一层级的过滤功能,极大节约了运营开支并消除了不必要的存储成本。

5.性能与成本效益

降低成本,提升性能,一直IT领域的核心竞争力。亚马逊云科技的一整套技术栈,都在致力于为企业降低成本,实现最大的性价比。

比如说,亚马逊云科技的Amazon S3,大大降低了数据湖内的数据存储成本。此外,Amazon EC2提供了按需、预留及竞价实例之间灵活选择并切换的能力。同时,亚马逊云科技还发布AQUA for Amazon Redshift 的预览版本,AQUA使用分布式硬件加速型缓存,能够将计算与存储层相融合,实现10倍于其他云数据仓库的查询性能。

有道乐读,是网易有道旗下一款青少年数字阅读APP,为广大青少年提供优质的阅读和课程平台。

最初对于每一个用户,有道乐读推送的内容都是一样的,也就是所谓的“千人一面”。为了给不同的用户带来更加合适的体验,有道乐读希望做到“千人千面”。但是对于只有一个技术人员的团队,实现难度可想而知。

后来,在亚马逊云科技的帮助下,有道乐读项目实现了无服务器的数据湖,并且基于Amazon Personalize的个性化推荐以及大数据服务,为小读者们提供了精准的图书推送。

最终,利用亚马逊云科技的智能湖仓架构,有道乐读APP月活跃指数增长了20%,同时收到了来自用户家长的大量正面反馈。

0 人点赞