数据湖集中存储了任意量级的多种类数据,并允许数据分析人员和数据科学家等角色运用多种技术分析手段对这些数据进行处理。许多组织正在将其数据转移到数据湖中。在本文中,我们将探索如何使用 AWS Lake Formation 来构建、保护和管理数据湖。
相比之下,基于云的数据湖可让我们对结构化和非结构化数据进行更灵活的分析。IT 人员可以预先聚合、组织、准备和保护任何量级的数据。然后,分析师和数据科学家可以使用他们自己选择的分析工具,根据适当的使用策略来访问这些数据。
建立数据湖面临的挑战
不幸的是,构建、保护和开始管理数据湖的过程复杂且耗时,通常需要几个月的时间才能完成。 即便是在云中构建数据湖都需要完成许多手动且耗时的步骤:
设置存储。
移动、清理、准备和编目数据。
为每个服务配置和实施安全策略。
手动授予用户访问权限。
当前,IT 人员和架构师花费太多时间来创建数据湖、配置安全性以及响应数据请求。他们本可以将这些时间用来策划数据资源,或为分析师和数据科学家提供咨询。分析师和数据科学家必须等待整个建立过程完成才能访问所需数据。
下图显示了数据湖的建立过程:
设置存储
数据湖储存海量的数据。在执行其他任何操作之前,必须设置存储空间以保存所有数据。如果使用的是 AWS,可配置 Amazon S3 存储桶和分区。如果要在本地构建数据湖,则需要购买硬件,并设置大型磁盘阵列以存储所有数据。
移动数据
连接本地和云中的不同数据源,然后在 IoT 设备上收集数据。接下来,从那些来源收集并组织相关的数据集,并爬取数据的元数据信息,然后将元数据标签添加到目录中。您可以使用下列服务来传输数据并进行 ETL 操作:
AWS Database Migration Service (AWS DMS)
Amazon Managed Streaming for Apache Kafka (Amazon MSK)(新)
清理和准备数据
接下来,必须仔细对收集的数据进行分区、索引并转换为列格式,以优化性能和成本。您必须进行数据清理、删除重复项并匹配相关记录。
配置和实施策略
客户和监管机构要求组织保护敏感数据。合规涉及创建和应用数据访问、保护和合规性策略。例如,您在表或列级别限制对个人身份信息 (PII) 的访问,对所有数据进行加密,并保留有关谁在访问数据的审计日志。
现在,您可以使用 S3 存储桶上的访问控制列表或第三方加密和访问控制软件来保护数据。您为需要访问数据的每个分析服务创建并维护数据访问、保护和合规策略。例如,如果您正在使用 Amazon Redshift 和 Amazon Athena 对数据湖运行分析,则必须为每个服务设置访问控制规则。
许多客户使用 AWS Glue 数据目录资源策略来配置和控制对其数据的元数据访问。有人则选择使用 Apache Ranger。但是这些方法可能很麻烦并且具有局限性。S3 策略最多能够提供表层级的访问控制。而且,您必须分别维护数据和元数据策略。使用 Apache Ranger,您一次只能配置对一个集群的元数据访问。而且,随着组织内访问数据湖的用户和团队数量的增长,策略可能变得繁多。
轻松查找数据
不同的用户(如分析师和数据科学家)有不同的需求,并且用户可能很难在数据湖中找到并信任相关数据集。为了使用户能够轻松找到相关和受信任的数据,必须在数据湖目录中清楚地标记数据。还需要让用户可以在不需要请求 IT 部门帮助的情况下即可访问和分析这些数据。
如今,所有这些步骤都涉及大量的人工作业。客户需要完成的工作包括:构建数据访问和转换工作流、映射安全性和策略设置,以及配置用于数据移动、存储、编目、安全性、分析和 ML 的工具和服务。要完成所有这些步骤,一个能够充分发挥作用的数据湖可能要花费数月才能部署完成。
客户在 AWS 上使用所有这些服务构建数据湖已经有好几年了。AWS 在 S3 之上运行 10,000 多个数据湖,其中许多将 AWS Glue 用于共享的 AWS Glue 数据目录,并使用 Apache Spark 进行数据处理。
AWS 从数千名在 AWS 上运行分析的客户那里了解到,大多数想要进行分析的客户也希望建立数据湖。只不过许多人都希望这个过程可以更轻松、更快。
本文转载自 AWS 技术博客。
评论