在 AWS Glue 控制台上处理表
AWS Glue Data Catalog中的表是表示数据存储中的数据的元数据定义。您可以在运行爬网程序时创建表,也可以在 AWS Glue 控制台中手动创建表。AWS Glue 控制台中的 Tables (表) 列表显示表的元数据值。您可以在创建 ETL (提取、转换和加载) 作业时使用表定义来指定源和目标。
注意
随着最近对 AWS 管理控制台的更改,您可能需要修改现有的 IAM 角色才能获得 SearchTables
权限。对于创建新角色,已将 SearchTables
API 权限添加为默认。
要查看现有任务,请登录 AWS Management Console 并通过以下网址打开 AWS Glue 控制台:https://console.aws.amazon.com/glue/
在控制台上添加表
要使用爬网程序添加表,请依次选择 Add tables (添加表) 和 Add tables using a crawler (使用爬网程序添加表)。然后按照 Add crawler (添加爬网程序) 向导中的说明操作。当爬网程序运行时,会将表添加到 AWS Glue Data Catalog。有关更多信息,请参阅在 AWS Glue 中定义爬网程序。
如果您知道在数据目录中创建 Amazon Simple Storage Service(Amazon S3)表定义所需的属性,则可以使用表向导创建它。请依次选择 Add tables (添加表) 和 Add table manually (手动添加表),然后按照 Add tables (添加表) 向导中的说明操作。
在通过控制台手动添加表时,请考虑以下各项:
-
如果您计划从 Amazon Athena 访问表,请提供只包含字母数字和下划线字符的名称。有关更多信息,请参阅 Athena 名称。
-
源数据的位置必须是 Amazon S3 路径。
-
数据的数据格式必须与向导中列出的格式之一匹配。将基于所选的格式自动填充相应的分类、SerDe 和其他表属性。您可以使用以下格式定义表:
- Avro
-
Apache Avro JSON 二进制格式。
- CSV
-
字符分隔值。您还可以指定逗号、竖线、分号、制表符或 Ctrl-A 等分隔符。
- JSON
-
JavaScript 对象表示法。
- XML
-
可扩展标记语言格式。指定定义数据中的行的 XML 标签。在行标签中定义列。
- Parquet
-
Apache Parquet 列式存储。
- ORC
-
优化的行列式(ORC)格式。一种旨在高效存储 Hive 数据的格式。
-
您可以为表定义分区键。
-
目前,使用控制台创建的分区表不能用于 ETL 作业。
表属性
以下是表的一些重要属性:
- 名称
-
在创建表时确定名称,并且您无法更改它。您在许多 AWS Glue 操作中引用表名称。
- 数据库
-
表所在的容器对象。此对象包含 AWS Glue Data Catalog中存在的表组织,并且可能与您的数据存储中的组织不同。当您删除数据库时,也会从数据目录中删除数据库中包含的所有表。
- 描述
-
表的描述。您可以编写描述以帮助您了解表的内容。
- 表格式
-
指定创建标准 AWS Glue 表或 Apache Iceberg 格式的表。
- 位置
-
指向此表定义表示的数据存储中的数据位置的指针。
- 分类
-
在创建表时提供的分类值。通常,在爬网程序运行并指定源数据格式时写入它。
- 上次更新
-
在数据目录中更新此表的日期和时间(UTC)。
- 日期已添加
-
此表添加到数据目录中的日期和时间(UTC)。
- 弃用
-
如果 AWS Glue 发现数据目录中的表不再存在于其原始数据存储中,则会在数据目录中将此表标记为已淘汰。如果您运行的作业引用已淘汰的表,则此作业可能会失败。编辑引用已淘汰的表的作业,以从源和目标中删除这些表。我们建议您删除不再需要的已淘汰的表。
- 连接
-
如果 AWS Glue 需要连接到您的数据存储,则连接的名称与表相关联。
查看和编辑表详细信息
要查看现有表的详细信息,请在列表中选择表名称,然后选择 Action, View details (操作 -> 查看详细信息)。
表详细信息包括表的属性和架构。此视图显示表的架构,包括按为表定义的顺序排列的列名称、数据类型和分区的键列。如果列是复杂类型,您可以选择 View properties (查看属性) 来显示该字段的结构的详细信息,如以下示例所示:
{ "StorageDescriptor": { "cols": { "FieldSchema": [ { "name": "primary-1", "type": "CHAR", "comment": "" }, { "name": "second ", "type": "STRING", "comment": "" } ] }, "location": "s3://aws-logs-111122223333-us-east-1", "inputFormat": "", "outputFormat": "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat", "compressed": "false", "numBuckets": "0", "SerDeInfo": { "name": "", "serializationLib": "org.apache.hadoop.hive.serde2.OpenCSVSerde", "parameters": { "separatorChar": "|" } }, "bucketCols": [], "sortCols": [], "parameters": {}, "SkewedInfo": {}, "storedAsSubDirectories": "false" }, "parameters": { "classification": "csv" } }
有关表的属性的更多信息,如 StorageDescriptor
,请参阅 StorageDescriptor 结构。
要更改表的架构,请选择 Edit schema (编辑架构) 来添加和删除列、更改列名称以及更改数据类型。
要比较不同版本的表,包括其架构,请选择 Compare versions (比较版本) 来查看表架构的两个版本之间的逐项对照比较。有关更多信息,请参阅 比较表架构版本 。
要显示组成 Amazon S3 分区的文件,请选择 View partition (查看分区)。对于 Amazon S3 表,Key (键) 列显示用于对源数据存储中的表进行分区的分区键。分区是根据键列 (如日期、位置或部门) 的值将一个表划分为多个相关部分的方法。有关分区的更多信息,请在 Internet 上搜索有关“hive 分区”的信息。
注意
要获取查看表详细信息的分步指导,请参阅控制台中的 Explore table (浏览表) 教程。
比较表架构版本
比较两个版本的表架构时,可以通过展开和折叠嵌套行来比较嵌套行更改,并排比较两个版本的架构,并排查看表属性。
要比较版本,请执行以下操作。
-
在 AWS Glue 控制台中选择表,然后选择操作,再选择比较版本。
-
通过选择版本下拉菜单来选择要比较的版本。比较架构时,架构选项卡突出显示为橙色。
-
比较两个版本之间的表时,将在屏幕的左侧和右侧分别显示表架构。便于您通过并排比较列名称、数据类型、键和注释字段来直观地确定更改。对于有更改的地方,彩色图标会显示所做更改的类型。
-
已删除:红色图标表示该列已从先前版本的表架构中删除。
-
已编辑或移动:蓝色图标表示在较新版本的表架构中被修改或移动的列。
-
已添加:绿色图标表示被添加到新版表架构中的列。
-
嵌套更改:黄色图标表示包含更改的嵌套列。选择要展开的列并查看已删除、编辑、移动或添加的列。
-
-
使用筛选字段搜索栏根据您在此处输入的字符显示字段。如果您在任一表版本中输入列名,筛选后的字段将显示在两个表版本中,以显示发生更改的位置。
-
要比较属性,请选择属性选项卡。
-
要停止比较版本,请选择停止比较返回表列表。