数据湖概述

免费X.
团队X.
业务✓
附加X.

数据湖泊仅适用于列出的帐户计划。
看看可用计划, 或者联系我们

段数据湖泊以优化的格式向云数据存储(例如AWS S3)发送段数据,以减少数据分析和数据科学工作负载的处理。段数据非常适合构建机器学习模型进行个性化和建议,以及其他大规模高级分析。数据湖泊可以减少从数据中获得实际值所需的处理量。

Segment Data Lakes仅对业务层客户可用。manbetx客户端应用下载

想了解更多,请查看我们的博客

分段数据湖是如何工作的

数据湖在S3中以一种读优化编码格式(Parquet)存储段数据,这使得数据更易于访问和操作。为了帮助您锁定正确的数据,data Lakes还创建了逻辑数据分区和事件表,并将元数据与现有的模式管理工具集成,如AWS Glue数据目录。生成的数据集经过了优化,可以用于Spark、Athena、EMR等系统,或者像DataBricks或datarrobot这样的机器学习供应商。

段通过使用假定的角色向AWS帐户中的EMR(Elastic MapReduce)群集中的处理向S3发送数据。manbetx客户端应用下载客户使用数据湖泊拥有并直接支付AWS服务。

使用带有数据仓库的数据湖

Data Lakes和warehouse产品通过映射是兼容的,但彼此之间并不完全相同。这种映射可以帮助您识别和管理两个存储解决方案之间的差异,这样您就可以轻松地理解每个存储解决方案中的数据是如何关联的。你可以阅读更多关于数据湖泊和仓库之间的差异

当您使用数据湖时,您可以使用数据湖作为您的只要数据源,并直接从S3查询所有数据,或者除了数据仓库之外,还可以使用数据湖。

设置分段数据湖泊

有关如何配置段数据湖泊的详细说明,请参阅数据湖泊目录页面。请务必考虑下面列出的EMR和AWS IAM组件。“

EMR

数据湖泊使用EMR群集运行从所有源加入数据湖泊的事件的作业。这AWS资源部分的设置指令使用eMR群集使用m5.xlarge.节点类型。Data Lakes使集群始终运行,但是集群会自动扩展,以确保它不会总是满负荷运行。检查Terraform模块文档EMR规格

AWS我角色

Data Lakes使用IAM角色授权段安全访问您的AWS帐户。所需的输入是:

  • external_ids:外部ID是IAM角色的一部分,该部件用于假设提供对您的AWS帐户的权限的角色。您将在IAM角色中将外部ID定义为要连接到数据湖泊的段工作空间ID。可以从段工作区ID从中检索段应用[导航到设置>常规设置> ID时。
  • s3_bucket.:数据湖使用的S3桶的名称。

数据湖泊模式

段数据湖泊适用标准架构以使原始数据更容易,更快地查询。将分区应用于用于对数据的子集的粒度访问的S3数据,推断出诸如数据类型的架构组件,并且基础数据结构的映射存储在胶水数据库中。

S3分区结构

段通过段源,事件类型分区S3中的数据,然后通过段收到事件的日期和小时,以确保数据是可操作和可访问的。

文件路径如下所示:s3: / / < top-level-Segment-bucket > /数据/ <源id > / segment_type = <事件类型> /天= < YYYY-MM-DD > / hr = < HH >

以下是一些事件看起来的一些例子:

默认情况下,日期分区结构是一天= < YYYY-MM-DD > / hr = < HH >为您提供对S3数据的粒度访问。修改分区结构设置过程,你可从以下选项中选择:

  • 天/小时(YYYY-MM-DD / HH)(默认)
  • 年/月/日/小时[YYYY / MM / DD / HH]
  • 年/月/日(YYYY / MM / DD)
  • 日[yyyy-mm-dd]

AWS胶水数据目录

Data Lakes将S3数据的推断模式和相关元数据存储在AWS Glue数据目录中。这个元数据包括S3文件的位置、转换为Parquet格式的数据、从Segment事件推断出来的列名、嵌套的属性和特征(现在已经扁平化了)以及推断出来的数据类型。

当检测到新列时,将把它们追加到Glue数据目录中的表尾。

胶水数据库

Segment推断的模式存储在Glue数据目录中的Glue数据库中。Segment将每个源的模式存储在自己的Glue数据库中,以组织数据,从而更容易查询。为了便于查找,Segment将模式写入一个默认使用source slug命名的Glue数据库。可以从数据湖设置中修改数据库名称。

推荐的IAM role权限是代表您创建Glue数据库时授予段访问权限。如果没有授予段这些权限,则必须手动创建段要写入的胶水数据库。

数据类型

数据湖泊为其接收的事件提供数据类型。每小时都会针对每个事件的数据类型进行每一组。

Glue支持的数据类型有:

  • big
  • 布尔基
  • 十进制(38,6)
  • 细绳
  • 时间戳

模式演化

一旦Data Lakes为列设置了数据类型,所有后续数据都将尝试转换为该数据类型。如果传入的数据与数据类型不匹配,data Lakes将尝试将列转换为目标数据类型。

大小不匹配

如果Glue中的数据类型比正在同步中的某列的数据类型宽(例如,十进制vs整数,或字符串vs integer),那么该列就会被转换为Glue表中更宽的类型。如果列更窄(例如,表中的整数与数据中的小数),如果数据根本不能进行强制转换,则可能会删除数据,或者对于数字,一些数据可能会失去精度。段中的原始数据保持其原始格式,因此您可以修复类型和重播确保数据不丢失。了解有关类型转换的更多信息这里

数据不匹配

如果数据湖泊看到坏数据类型,例如文本代替了数字或格式错误的日期,则尝试最佳努力将字段转换为目标数据类型。可能会丢弃无法投射的字段。您还可以将架构中的数据类型纠正到所需的类型和重放以确保没有数据丢失。联系段支持如果您发现需要更正的数据类型。

常问问题

数据如何同步到数据湖泊?

数据湖泊在24小时内提供12个同步。数据湖泊不提供自定义同步计划,或允许您使用选择性同步来管理发送的数据。

在数据湖泊中的重复方面,我应该如何期待?

Segment对重复数据的整体保证也适用于数据湖中的数据:a内数据99%保证不重复24小时回望窗口

如果您对重复数据删除有高级的要求,您可以向下游添加重复数据删除步骤,以减少该后视窗口之外的重复数据。

我可以将所有分部数据发送到数据湖泊中吗?

数据湖泊支持来自所有事件源的数据,包括网站库,移动,服务器和事件云源。

数据湖不支持加载对象云源数据,以及事件云源中的用户和帐户表。

是否支持用户删除和删除?

然而,数据湖不支持用户删除用户抑制是支持的。

数据湖如何处理模式演变?

随着数据模式的发展和新列的添加,段数据湖将检测任何新列。新的列将被追加到Glue数据目录中的表的末尾。

数据湖如何与协议一起使用?

数据湖泊没有直接集成协议

使用协议对源级别的事件进行的任何更改也会更改所有下游目的地(包括数据湖)的数据。

  • 突变事件- 如果协议因跟踪计划中设置的规则而突变事件,那么该突变将显示在段的内部存档中,并反映在数据湖中。例如,如果您使用协议来突变事件product_id.成为ProductId.,那个事件显示在数据湖泊和仓库中ProductId.

  • 被封锁的事件—如果协议跟踪计划阻塞了某个事件,则该事件不会转发到任何下游段目的地(包括数据湖)。然而,那些只被标记为犯规的事件传递给数据湖。

数据湖不支持协议中可用的数据类型和标签。

  • 数据类型- 数据湖泊使用自己的架构推理系统为每个事件的数据类型提供,而不是在协议中使用用于事件的数据类型。这可能导致数据类型在数据湖中设置的数据类型与跟踪计划中的数据类型不同。例如,如果您设置product_id.要成为协议跟踪计划中的整数,但事件将作为字符串发送到段,然后数据湖泊可以将此数据类型作为胶胶数据目录中的字符串推断。
  • 标签—协议中设置的标签不发送到数据湖。
使用AWS胶水是多少?

你可以在亚马逊上找到详细信息胶页定价。出于参考,数据湖泊每个事件类型在源中创建1个表,并将每小时1个分区添加到事件表中。

AWS Glue有哪些限制?

AWS胶水有各种因素的限制,例如每个帐户的数据库数量,每个帐户的表,等等。看看完整列表胶水限制欲获得更多信息。

要记住的最常见限制是:

  • 每个帐户的数据库:10,000
  • 每个数据库表:200,000
  • 列名中的字符:250

超过此限制后,Segment将停止为事件创建新表。不过,您可以联系您的AWS帐户代表提高这些限制。

你还应该读到其他考虑因素当使用AWS胶水数据目录时。

此页面上次修改:2021年3月5日



开始使用细分

段是将网站和移动应用程序数据集成到超过300个分析和增长工具的最简单方法。
创建免费帐户