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

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

使用Amazon GlueConnect 到 Amazon S3 中的数据源

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

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

设置爬网程序

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

注意

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

选项 A

选项 A:在中设置爬网程序Amazon Glue使用Connect 数据源Link

  1. https://console.aws.amazon.com/athena/ 打开 Athena 控制台。

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

    
                            选择 Connect data source (连接数据源)。
  3. 在存储库的Connect 数据源页面上,选择Amazon Glue数据目录

  4. 单击 Next

  5. 在存储库的连接详细信息页面上,选择在中设置爬虫程序Amazon Glue自动检索架构信息

  6. 单击连接到Amazon Glue

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

    有关更多信息,请参阅填充 Amazon Glue Data Catalog

选项 B

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

选项 B:在中设置爬网程序Amazon Glue来自 的Amazon Glue Data CatalogLink

  1. https://console.aws.amazon.com/athena/ 打开 Athena 控制台。

  2. 选择 Amazon Glue Data Catalog

  3. 在 Amazon Glue 控制台的 Tables (表) 页面上,选择 Add tables using a crawler (使用爬网程序添加表)

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

    有关更多信息,请参阅填充 Amazon Glue Data Catalog

注意

Athena 不承认排除模式指定的Amazon Glue爬网程序。例如,如果您的 Amazon S3 存储桶包含.csv.json文件,并排除.json文件时,Athena 会查询两组文件。要避免这种情况,请将要排除的文件放置在其他位置。

手动添加架构表

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

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

  1. https://console.aws.amazon.com/athena/ 打开 Athena 控制台。

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

  3. 在存储库的Connect 数据源页面上,选择Amazon Glue数据目录

  4. 单击 Next

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

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

  7. 在存储库的添加表页 Athena 对于数据库中,选择一个现有数据库或创建一个新数据库。

  8. 输入或选择表名称。

  9. 适用于输入数据集的位置中,在 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 (运行查询) 以创建表。