数据湖Lakeformation

news/2025/2/11 13:21:54/

什么是数据湖? 数据湖是您的企业或企业存储和收集数据的地方。 您存储在数据湖中的数据可以是结构化的或非结构化的,这意味着它可以具有或不具有定义的架构。

我们数据湖的目标是拥有一个可以存在所有业务信息的地方,最终我们可以对其执行某种类型的分析。 这些数据可以来自我们的交易系统和业务线应用程序。 它还可能来自各种物联网设备、移动应用程序,甚至社交媒体。

能够聚合、处理数据并从中获取意义的公司将能够超越同行。 这些公司可能会通过使用通用数据分析,甚至使用机器学习来提供有价值的见解来做到这一点。

这就是为什么管理和创建一个安全的地方来存放所有数据非常重要。

数据湖和数据仓库有什么区别?

第一次进入这个领域时,数据湖和数据仓库之间可能会有些混淆。 这是相当常见的。

数据湖和数据仓库之间的主要区别在于特殊性和结构。

数据湖是无形的信息块,它是一个知识池,我们试图从业务中捕获任何相关数据,以便我们可以对其进行分析。

数据仓库是一种专用工具,允许您对部分数据进行分析,以便您可以从中做出有意义的决策。 一般来说,它是具有特殊用途的数据湖数据的子集。 您的数据仓库是一个优化的数据库,用于处理数据湖中数据的规范化、转换和清理版本。

为什么我们不能将所有这些信息存储到数据仓库中?

嗯,这正是在很长一段时间内发生的事情。 不幸的是,随着业务速度的提高,数据量也随之增加。 数据仓库无法跟上支持如此大量数据所需的管理和扩展量。 尝试在活动数据库中维护所有这些数据的成本变得过高,并且降低了查询速度。

因此数据湖的出现成为必然。 我们需要一个可以廉价存储大量信息的地方。

一个好的数据湖由什么构成?

一个好的数据湖将很好地应对这五个挑战:存储(数据湖本身)、数据移动(数据如何到达数据湖)、数据编目和发现(查找数据并对其进行分类)、通用分析(理解数据的意义) 数据)和预测分析(根据数据对未来进行有根据的猜测)。

存储:让我们首先看一下存储。 人们开始使用数据湖的原因是,存储成本变得越来越沉重,因为庞大的数据量开始压垮人们。 AWS 提供哪些服务可以轻松处理大量原始数据? 嗯,我首先想到的就是 S3 之类的东西。

S3在这种场景下特别好,不仅因为它可以处理大量数据,还因为它可以处理非结构化数据。 你可以用日志文件、json 交易文档、二进制输出 blob 来填充它,它可以接受任何东西。 普通数据库不太适合此任务。

使用 S3 的另一个好处是我们可以设置生命周期策略来帮助处理不断增加的数据负担的成本。 这使我们能够将不经常访问的数据放入更便宜的存储层,甚至当我们相当确定该数据不会在很长一段时间内使用时,甚至最终将其放入冰川(深度归档服务)中。 如果需要的话,我们当然可以将冷数据返回到 S3 标准。

数据移动:构建数据湖时要弄清楚的另一件重要事情是您到底打算如何将数据放入其中。 我们知道应该使用 S3 进行存储,但是我们希望使用什么机制将所有内容……放入 s3 中?

当然,我们可以手动将存档日志数据的大型文件夹移动到我们用于数据湖的任何存储桶中,但这个想法并不是超级可扩展的,而且老实说感觉很糟糕。 如果能够自动将我们的业务数据推送到这个存储桶中,那就太好了。

有几种方法可以将数据放入存储桶中,无论是使用 kinesis 主动传输数据,还是使用本地直接连接引入大量数据,或者使用数据库迁移服务来移动数据库 信息存入 s3,或者您甚至可能需要每月一次将雪球设备运送到某个遥远的前哨站,以收集研究数据并将其发送回 AWS。

无论您采用哪种方法,您都需要一种将数据移至 AWS 的方法,并且您会更喜欢采用自动化的方法。

数据编目和发现:一旦您的数据湖(您选择的 s3 存储桶)中拥有所有数据,就有必要开始编目并了解您拥有的数据类型。 如果我们不花至少一点时间来处理和管理数据,我们将很快将数据湖变成数据沼泽。

想象一下,当您将 TB 到 PB 的数据、文件夹和内容文件夹添加到同一个存储桶中时会发生什么。 当你长时间这样做时,你对什么是什么以及它生活在哪里的知识就会消失。 这使得其他人几乎不可能找到他们想要使用的特定数据集。

这就是为什么我们需要对数据制作目录。 我们需要创建一些关于数据的数据——元数据。 这将帮助未来的人们从我们的数据湖中发现他们需要什么,而不必花费数小时、数天或数周的时间试图找出数据在哪里或是什么。

例如,了解各种数据存储的格式可能会有所帮助 - 主要是 JSON、CSV、Parquet……是压缩数据,是敏感数据吗? 也许您可能想要添加其他标签,例如来自 Twitter 或客户评论的数据。

您可以通过多种方法来创建自己的数据目录。 例如,您的 s3 存储桶上可能有一个上传事件,该事件会触发 lambda 函数以在 DynamoDB 中存储有关刚刚上传的新数据的一些元数据信息。

从那里我们可以将该信息推送到 ElasticSearch 中以浏览和查询该数据。 这是一种非常需要自己动手的方法,正确设置可能有点棘手。

我建议您看看 AWSglue。 该服务是一个托管转换引擎,允许您运行 ELT 管道 - 但对于我们的用途而言,它还包含我们可以利用的非常强大的数据目录。

胶水数据目录甚至包含内置爬虫,可以爬行各种数据源并自动为您填充目录。 这包括您的 S3 存储桶、数据库和数据仓库。 它们可以安排在特定时间运行,或者根据新上传到该 s3 存储桶等事件运行。

分析:如果我们不想了解有关这些数据的信息,为什么我们要收集所有这些数据。 我们的数据是过去的记录,该记录可以让我们深入了解我们的业务哪些是成功的,哪些是失败的。

有许多出色的 AWS 服务可以帮助您开始理解数据。 这些服务的分析能力和目标各不相同。

例如,如果您想要获取有关数据湖的一些实时信息,或者至少是从 kinesis 或 Amazon MSK 流入数据湖的信息,您可以使用 Kinesis Data Analytics 来获取您的数据的实时反馈。 流数据最多可达。

如果您希望以交互方式清理数据,我们可以提供 Amazon Athena,这是一项专门构建的服务,可以让您轻松使用标准 SQL 分析 Amazon S3 中的数据。

如果您想要为数据的某些部分创建仪表板和图表,则可以将 Amazon Quicksight 等功能添加到您的解决方案中。

而且,我们还有像 Redshift 这样的数据仓库服务,您可以将我们的数据湖的子集放入其中以执行一般分析,以尝试从该数据中获取一些含义。

预测分析:能够执行预测分析将使您能够通过数据获得对您的业务的一些可能的未来洞察。 您可以开始构建通过使用机器学习服务来帮助实现这一目标的系统。

机器学习最重要的事情之一是拥有强大的数据集可供使用。 这就是为什么拥有一个可以从中提取数据子集的数据湖非常有效。

Amazon 提供 AWS Sage Maker,作为在 AWS 中创建、训练和运行您自己的模型的快速方法。

此外,aws 拥有一系列深度学习 AMI,预先配置了流行的深度学习框架和接口。 其中包括 TensorFLow、PYtorch、Apache MXNet、Chainer、Gluon、Horovod 和 Kera。 使用这些 AMI 无需额外付费,它们仍然像其他实例类型一样按需付费。

好的,那么我该如何构建数据湖呢?

因此,您实际上可以通过两种方法来创建数据湖。 您可以尝试手动组装所有这些互连的数据湖部分; 这可能需要大量的专业知识和大量的时间。

AWS 上还有一些可部署的模板可以帮助完成此过程 - 请在此处查看模板和架构构建指南:https://docs.aws.amazon.com/solutions/latest/data -lake-solution/architecture.html

或者,我们可以使用 AWS Lake Formation 服务,该服务有望让您的安全数据湖的设置只需几天的时间,而不是几周或几个月。

它通过识别您想要移至数据湖的 Amazon S3、关系数据库和 NoSQL 数据库中的现有数据源来实现此目的。 然后,它将爬网、编目并准备所有数据供您执行分析。 您还可以定位来自 CloudTrail、Kinesis Fire Hose、弹性负载均衡器和 CloudFront 等的日志文件。 所有这些数据可以一次性获取,也可以增量获取。

所有这些功能都通过使用“蓝图”进行管理,您只需:

指向源数据
您想要在数据湖中加载数据的点
指定您想要加载该数据的频率
和蓝图:

发现源表架构
自动转换为新的目标格式
根据分区架构对数据进行分区
跟踪已处理的数据。
允许您自定义以上所有内容
AWS Lake Formation 将通过您选择的分析服务创建对数据的自助访问,从而保护用户安全。

它通过在湖的形成中设置用户的访问权限,将数据访问与数据目录中的访问控制策略而不是与每个单独的服务联系起来来实现这一点。 因此,当用户来到 Lake Formation 查看某些数据时,他们的凭据和访问角色会发送到 Lake Formation,Lake Formation 会消化这些数据并确定允许该用户访问哪些数据,并为他们提供一个新的令牌以随身携带 Athena、Redshift 和 EMR 等服务将受到尊重。

这允许您定义一次权限,然后开放对一系列托管服务的访问并强制执行这些权限。

使用 Lake Formation 服务不需要额外付费,但您必须为其使用的所有服务付费。 这意味着您必须为爬网和编目阶段的所有 AWS Glue 使用费用付费。 您必须为 S3 内的数据驻留付费。 您必须为查找信息时可能对数据进行的任何 Athena 查询付费。

因此,虽然所有服务的编排不需要任何成本,但如果成本是一个问题,那么在构建解决方案时您应该注意许多费用。

数据湖提供了一种存储和使用业务数据的新方法。 您不必再担心将所有数据保存在单个数据仓库中,这会花费您无数的金钱。 数据湖使您能够灵活地以较低的成本存储大量数据,同时还允许您提取您感兴趣的特定信息。

能够跟踪并呈现其业务数据的企业更有可能发展优势。 数据湖为您的所有业务数据提供了一个单一位置来驻留、管理和编目,以供将来的分析和预测分析使用。 这种监督让其他团队可以查看数据湖以获取他们需要的信息。

由于管理和构建数据湖是一项相当困难的任务,因此 AWS 创建了 Lake Formation 服务来帮助促进您的数据湖工作。 该服务处理许多无差别的繁重工作,例如将所有层连接在一起、处理安全性以及管理数据的编目和爬网。


http://www.ppmy.cn/news/1381435.html

相关文章

效果图代渲多少钱一张?带你详细了解它的计费规则!

不知道有没有朋友遇到过渲着渲着就崩溃的情况发生,不然也不会去找代渲染的平台/某宝等渠道 也就是为了图能够顺利的跑出来,做了后期处理后,及时交付给客户。 我们以渲染100云渲染来举例,它成立2015年,是一家效果图代…

3月12日 工作记录 DeepSeek-VL阅读笔记

昨天考完试,晚上把那个讨人厌的项目做了阶段结果给合作者展示去了,然后就看到deepseek发布了vision language的技术报告,于是打算今天上午看看。 DeepSeek VL 很多内容直接翻译自其 DeepSeek-VL,下面的我们指的的是deepseek vl的…

Linux常用指令大全

一、基本命令 1、立即关机并重启动,执行如下命令: shutdown -r now 或者reboot 2、立即关机,执行如下命令: shutdown -h now 或者poweroff 3、等待2分钟关机并重启动,执行如下命令: shutdown -r…

生产环境是Linux,日志不好查?自己开发一个下载日志功能页面

有时候甲方爸爸的项目要部署内网,日志不能直接copy&#xff0c;还是linux系统。排查日志很不方便。 自己搞一个日志下载功能&#xff0c;如果是分布式的项目&#xff0c;还能把其他项目的日志也一起copy下来&#xff0c;来看。 public BiStateDTO<Object> logList(Requ…

【人力资源开发】某主题公园人力资源开发管理咨询项目纪实

虽然很多企业将“人事部”改为“人力资源部”&#xff0c;但是企业的人力资源管理水平却仍停留在“人事管理”的阶段。该主题公园也是如此。随着公园的不断发展&#xff0c;其人力资源管理问题逐渐显露&#xff0c;而管理者也不清楚问题的根源在哪里&#xff0c;只能采取“头疼…

力扣--课程表--bfs+dfs

整体思路&#xff1a; 这是一道拓扑序列的题目&#xff0c;我们将边的方向定义成从先修课指向后修课的方向&#xff0c;借一下官方的题解图片&#xff0c;我们需要判断的是形成的这个图结构是否存在环&#xff0c;如果存在环&#xff0c;那么代表不能完成所有课程的学习。 bfs思…

kotlin图片合成和压缩

kotlin图片合成和压缩 之前的方法是继承AsyncTask 在doInBackground 里面去做压缩的操作&#xff0c;然后用 publishProgress 切到主线程里面更新 新方法是在协程里的去做 class ImageService {private fun getSumWidths(bitmaps: ArrayList<Bitmap>): Int {var sumWid…

测试用例例子:在线购物平台的结算功能测试

用例标题&#xff1a;在线购物平台结算功能测试 测试目的&#xff1a; 验证在线购物平台的结算功能是否正常工作&#xff0c;确保用户能够顺利完成支付流程。 用例级别&#xff1a;高 测试环境&#xff1a; 操作系统&#xff1a;Windows 10浏览器&#xff1a;Chrome 最新版…