Amazon Glue 表 - Amazon Glue
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon Glue 表

您可以通过以下方式向数据目录中添加表定义:

当您使用控制台或 API 手动定义表时,您需要指定表架构和分类字段的值(指示数据源中数据的类型和格式)。如果爬网程序创建表,则数据格式和架构由内置分类器或自定义分类器确定。有关使用 Amazon Glue 控制台创建表的更多信息,请参阅在 Amazon Glue 控制台上处理表

表分区

Amazon Simple Storage Service(Amazon S3)文件夹的 Amazon Glue 表定义可以描述分区表。例如,要提高查询性能,分区表可以使用月份的名称作为键将每月数据分隔为不同的文件。在 Amazon Glue 中,表定义包含表的分区键。当 Amazon Glue 评估 Amazon S3 文件夹中的数据以编目表时,它确定是否添加了单个表或分区表。

您可以在表上创建分区索引以获取分区的子集,而不是加载表中的所有分区。有关使用分区索引的信息,请参阅在 Amazon Glue 中使用分区索引

以下 Amazon Glue 所有条件都必须为 true,才能为 Amazon S3 文件夹创建分区表:

  • 文件的架构类似,由 Amazon Glue 确定。

  • 文件的数据格式是相同的。

  • 文件的压缩格式是相同的。

例如,您可能拥有一个名为 my-app-bucket 的 Amazon S3 存储桶,在其中您存储了 iOS 和 Android 应用程序销售数据。该数据按年、月和日分区。适用于 iOS 和 Android 销售的数据文件具有相同的架构、数据格式和压缩格式。在 Amazon Glue Data Catalog 中,Amazon Glue 爬网程序使用年、月和日的分区键创建一个表定义。

my-app-bucket 的以下 Amazon S3 列表显示某些分区。= 符号用于分配分区键值。

my-app-bucket/Sales/year=2010/month=feb/day=1/iOS.csv my-app-bucket/Sales/year=2010/month=feb/day=1/Android.csv my-app-bucket/Sales/year=2010/month=feb/day=2/iOS.csv my-app-bucket/Sales/year=2010/month=feb/day=2/Android.csv ... my-app-bucket/Sales/year=2017/month=feb/day=4/iOS.csv my-app-bucket/Sales/year=2017/month=feb/day=4/Android.csv
Amazon Glue 控制台最近已更新。当前版本的控制台不支持表资源链接。

数据目录还可以包含表资源链接。表资源链接是指向本地或共享表的链接。目前,您只能在 Amazon Lake Formation 中创建资源链接。创建到表的资源链接后,您可以在需要使用表名称的任何位置使用资源链接名称。与您拥有的或与您共享的表一起,表资源链接由 glue:GetTables() 返回,并在 Amazon Glue 控制台的页面上显示为条目。

数据目录还可以包含数据库资源链接。

有关资源链接的更多信息,请参阅《Amazon Lake Formation 开发人员指南》中的创建资源链接

使用爬网程序更新手动创建的数据目录表

您可能需要手动创建 Amazon Glue Data Catalog 表,然后将它们保持为通过 Amazon Glue 爬网程序进行更新。按计划运行的爬网程序可以添加新分区,并使用任何架构更改来更新表。这同样适用于从 Apache Hive 元存储中迁移的表。

要执行此操作,当您定义爬网程序时,不是指定一个或多个数据存储作为爬取源,而是指定一个或多个现有数据目录表。然后,爬网程序爬取由目录表指定的数据存储。在这种情况下,不会创建新表;而是更新手动创建的表。

以下是您可能需要手动创建目录表并将目录表指定为爬网程序源的其他原因:

  • 您想要选择目录表名称,但不依赖于目录表命名算法。

  • 在将其格式可能损坏分区检测的文件错误地保存在数据源路径的情况下,您可能希望阻止创建新表。

有关更多信息,请参阅 爬网程序源类型

数据目录表属性

Amazon CLI 中已知的表属性或参数是未经验证的键值字符串。您可以在表上设置自己的属性,以支持在 Amazon Glue 之外使用数据目录。其他使用数据目录的服务也可以执行该操作。Amazon Glue 会在运行作业或爬网程序时设置一些表属性。除非另有说明,否则这些属性仅供内部使用,我们不支持它们继续以其当前形式存在,也不支持手动更改这些属性的产品行为。

更多有关 Amazon Glue 爬网程序设置的表属性的信息,请参阅 爬网程序在数据目录表上设置的参数