在 Athena 控制台中使用表单添加 AWS Glue 表
以下过程演示了如何使用 Athena 控制台通过根据 S3 存储桶数据创建表表单添加表。
使用表单添加表并输入架构信息
从 https://console.aws.amazon.com/athena/
打开 Athena 控制台。 -
在查询编辑器中,选择 Tables and views(表和视图)旁边的 Create(创建),然后选择 S3 bucket data(S3 存储桶数据)。
-
在根据 S3 存储桶数据创建表表单中,对于 Table name(表名称),输入表的名称。
-
对于 Database configuration(数据库配置),选择现有数据库或新建一个数据库。
-
对于 Location of Input Data Set(输入数据集的位置),在 Amazon S3 中指定包含要处理的数据集的文件夹的路径。请勿在路径中包含文件的名称。Athena 会扫描指定文件夹中的所有文件。如果您的数据已经分区(例如,
s3://DOC-EXAMPLE-BUCKET/logs/year=2004/month=12/day=11/),则仅输入基本路径(例如,s3://DOC-EXAMPLE-BUCKET/logs/)。
-
对于 Data Format(数据格式),请选择以下选项:
-
对于Table type(表格类型),选择 Apache Hive、Apache Iceberg 或 Delta Lake。Athena 的默认表类型是 Apache Hive。有关在 Athena 中查询 Apache Iceberg 表的信息,请参阅 使用 Apache Iceberg 表。有关在 Athena 中使用 Delta Lake 表的信息,请参阅 查询 Linux Foundation Delta Lake 表。
-
对于 File format(文件格式),选择您的数据将采用的文件或日志格式。
-
对于 Text File with Custom Delimiters (带自定义分隔符的文本文件) 选项,请指定 Field terminator (字段终止符)(即列分隔符)。您也可以指定用于标记数组类型结束的 Collection terminator(集合终止符)或用于标记映射数据类型结束的 Collection terminator(集合终止符)。
-
-
SerDe 库 – SerDe(串行器解串器)库用于解析特定的数据格式,以便 Athena 可以为其创建表。对于大多数格式,系统会为您选择默认 SerDe 库。对于以下格式,请根据您的需要选择库:
-
Apache Web 日志 – 选择 RegexSerDe 或 GrokSerDe 库。对于 RegexSerDe,请在 Regex definition(正则表达式定义)框中提供一个正则表达式。对于 GrokSerDe,为
input.format
SerDe 属性提供一个已命名正则表达式系列。已命名正则表达式比正则表达式更便于阅读和维护。有关更多信息,请参阅 查询存储在 Amazon S3 中的 Apache 日志。 -
CSV – 如果以逗号分隔的数据不包含用双引号括起的值或者使用
java.sql.Timestamp
格式,请选择 LazySimpleSerDe。如果数据包含引号或为使用 UNIX 数字格式的TIMESTAMP
(例如,1564610311
)时,请选择 OpenCSVSerDe。有关更多信息,请参阅用于 CSV、TSV 和自定义分隔文件的 LazySimpleSerDe 和用于处理 CSV 的 OpenCSVSerDe。 -
JSON – 选择 OpenX 或 Hive JSON SerDe 库。这两种格式都要求每个 JSON 文档均位于单行文本中,并且不使用换行字符分隔字段。OpenX SerDe 提供了一些额外的属性。有关这些属性的更多信息,请参阅OpenX JSON SerDe。有关 Hive SerDe 的多信息,请参阅 Hive JSON SerDe。
有关在 Athena 中使用 SerDe 库的更多信息,请参阅 支持的 SerDes 和数据格式。
-
-
-
对于 SerDe properties(SerDe 属性),请根据您使用的 SerDe 库以及您的需求添加、编辑或移除属性及值。
-
要添加 SerDe 属性,请选择Add SerDe property(添加 SerDe 属性)。
-
在 Name(名称)字段中,输入属性的名称。
-
在 Value(值)字段中,输入属性的值。
-
要移除 SerDe 属性,请选择 Remove(移除)。
-
-
对于 Table properties(表属性),请根据您的需要选择或编辑表属性。
-
对于 Write compression(写入压缩),选择一个压缩选项。写入压缩选项以及可用压缩选项的可用性取决于数据格式。有关更多信息,请参阅 Athena 压缩支持。
-
对于 Encryption(加密),如果基础数据已在 Amazon S3 中加密,则选择 Encrypted data set(加密数据集)。此选项在
CREATE TABLE
语句中会将has_encrypted_data
表属性设置为 true。
-
-
对于 Column details(列详细信息),输入要添加到表中的列名称和数据类型。
-
要添加更多列(一次添加一列),请选择 Add a column (添加列)。
-
要快速添加更多列,请选择 Bulk add columns (批量添加列)。在文本框中,输入以逗号分隔的列列表,格式为
column_name
data_type
,column_name
data_type
[,…],然后选择 Add(添加)。
-
-
(可选)对于 Partition details(分区详情),添加一个或多个列名称和数据类型。分区会根据列值将相关数据组合在一起,这可帮助减少每次查询扫描的数据量。有关分区的信息,请参阅 在 Athena 中对数据进行分区。
-
(可选)对于 Bucketing(分桶),您可以指定包含要组合在一起的行的一列或多列,然后将这些行放入多个桶中。这让您能够在指定分桶列值时仅查询要读取的桶。
-
对于 Buckets(桶),选择一个或多个具有大量唯一值(例如,主键)且经常用于筛选查询中数据的列。
-
对于 Number of buckets(桶数量),输入可优化文件大小的数字。有关更多信息,请参阅 AWS 大数据博客中的 Top 10 Performance Tuning Tips for Amazon Athena
(Amazon Athena 的十大性能优化技巧)。 -
要指定分桶列,
CREATE TABLE
语句将使用以下语法:CLUSTERED BY (
bucketed_columns
) INTOnumber_of_buckets
BUCKETS
注意
Bucketing(分桶)选项不适用于 Iceberg 表类型。
-
-
Preview table query(预览表查询)方框显示您在表单中输入的信息所生成的
CREATE TABLE
语句。无法直接编辑预览语句。要更改语句,请修改预览部分以上的表单字段,或在查询编辑器中 直接创建语句,而不使用表单。 -
选择 Create table(创建表),在查询编辑器中运行生成的语句并创建表。