使用 AWS Glue 连接到 Amazon S3 中的数据源 - Amazon Athena
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用 AWS Glue 连接到 Amazon S3 中的数据源

Athena 可以使用 AWS Glue 数据目录 连接到 Amazon S3 中存储的数据,以便存储表和列名等元数据。建立连接后,数据库、表和视图将显示在 Athena 的查询编辑器中。

要定义供 AWS Glue 使用的架构信息,您可以设置 AWS Glue 爬网程序来自动检索信息,也可以手动添加表并输入架构信息。

设置爬网程序

您可以通过在 Athena 控制台中启动,然后以集成方式使用 AWS Glue 控制台来设置爬网程序。创建爬网程序时,可以选择要爬取的数据存储或将爬网程序指向现有目录表。

注意

设置爬网程序的步骤取决于 Athena 控制台中可用的选项。如果 选项 A 中的 Connect data source (连接数据源) 链接不可用,请使用选项 B 中的过程。

选项 A

选项 A:使用连接数据源 链接在 AWS Glue 中设置爬网程序

  1. https://console.amazonaws.cn/athena/ 打开 Athena 控制台。

  2. 选择 Connect data source (连接数据源)。如果 Connect data source (连接数据源) 链接不存在,请使用选项 B

    
                            选择 Connect data source (连接数据源)。
  3. Connect data source (连接数据源) 页面上,选择 AWS Glue Data Catalog

  4. 单击 Next

  5. Connection details (连接详细信息) 页面上,选择 Set up crawler in AWS Glue to retrieve schema information automatically (在 AWS Glue 中设置爬网程序以自动检索架构信息)

  6. 单击 Connect to AWS AWS Glue (连接到 AWS AWS Glue)

  7. AWS Glue 控制台的 Add crawler (添加爬网程序) 页面上,按照步骤创建爬网程序。

    有关更多信息,请参阅填充 AWS Glue 数据目录

选项 B

如果选项 A 中的 Connect data source (连接数据源) 链接在 Athena 控制台中不可用,请使用以下过程设置 AWS Glue 爬网程序。

选项 B:通过 AWS Glue 数据目录 链接在 AWS Glue 中设置爬网程序

  1. https://console.amazonaws.cn/athena/ 打开 Athena 控制台。

  2. 选择 AWS Glue Data Catalog

    
                            选择 AWS Glue Data Catalog (AWS Glue 数据目录)。
  3. 在 AWS Glue 控制台的 Tables (表) 页面上,选择 Add tables using a crawler (使用爬网程序添加表)

    
                            选择 Add tables using a crawler (使用爬网程序添加表) 。
  4. AWS Glue 控制台的 Add crawler (添加爬网程序) 页面上,按照步骤创建爬网程序。

    有关更多信息,请参阅填充 AWS Glue 数据目录

手动添加架构表

以下过程演示了如何使用 Athena 控制台手动添加表。

手动添加表并输入架构信息

  1. https://console.amazonaws.cn/athena/ 打开 Athena 控制台。

  2. 选择 Connect data source (连接数据源)

  3. Connect data source (连接数据源) 页面上,选择 AWS Glue Data Catalog

  4. 单击 Next

  5. Connection details (连接详细信息) 页面上,选择 Add a table and enter schema information manually (手动添加表并输入架构信息)

  6. 单击 Continue to add table (继续添加表)

  7. 在 Athena 控制台的 Add table (添加表) 页面上,对于 Database (数据库),选择现有数据库或创建新数据库。

  8. 输入或选择表名称。

  9. 对于 Location of Input Data Set (输入数据集的位置),在 Amazon S3 中指定包含要处理的数据集的文件夹的路径。

  10. 单击 Next

  11. 对于 Data Format (数据格式),请选择一种数据格式(Apache Web Logs (Apache Web 日志)CSVTSVText File with Custom Delimiters (带自定义分隔符的文本文件)JSONParquetORC)。

    • 对于 Apache Web Logs (Apache Web 日志) 选项,您还必须在 Regex (正则表达式) 框中输入正则表达式。

    • 对于 Text File with Custom Delimiters (带自定义分隔符的文本文件) 选项,请指定 Field terminator (字段终止符)(即列分隔符)。或者,您可以指定数组类型的 Collection terminator (集合终止符)Map key terminator (映射键终止符)

  12. 对于 Columns (列),指定列名称和列数据类型。

    • 要添加更多列(一次添加一列),请选择 Add a column (添加列)

    • 要快速添加更多列,请选择 Bulk add columns (批量添加列)。在文本框中,输入以逗号分隔的列列表,格式为 column_name data_typecolumn_name data_type[, …],然后选择 Add (添加)

  13. 选择 Next

  14. (可选)对于 Partitions (分区),单击 Add a partition (添加分区) 以添加列名称和数据类型。

  15. 选择 Create Table。您指定的表的 DDL 将显示在 Query Editor (查询编辑器) 中。以下示例显示了为 CSV 格式的两列表生成的 DDL:

    CREATE EXTERNAL TABLE IF NOT EXISTS MyManualDB.MyManualTable ( `cola` string, `colb` string ) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' WITH SERDEPROPERTIES ( 'serialization.format' = ',', 'field.delim' = ',' ) LOCATION 's3://bucket_name/' TBLPROPERTIES ('has_encrypted_data'='false');
  16. 选择 Run query (运行查询) 以创建表。