View a markdown version of this page

创建 Amazon Ion 表 - Amazon Athena

创建 Amazon Ion 表

要使用以 Amazon Ion 格式存储的数据创建 Athena 表,您可以在 CREATE TABLE 语句中使用以下方法之一:

  • 指定 STORED AS ION。在此用法中,您无需明确指定 Amazon Ion Hive SerDe。这是一种更直接的选择。

  • 在 ROW FORMAT SERDE、INPUTFORMAT 和 OUTPUTFORMAT 字段中指定 Amazon Ion 类路径。

您还可以使用 CREATE TABLE AS SELECT(CTAS)语句在 Athena 中创建 Amazon Ion 表。有关信息,请参阅使用 CTAS 和 INSERT INTO 创建 Amazon Ion 表。

指定 STORED AS ION

以下示例 CREATE TABLE 语句在 LOCATION 子句之前使用 STORED AS ION 创建基于 Amazon Ion 格式的航班数据的表。LOCATION 子句指定了 Ion 格式的输入文件所在的存储桶或文件夹。扫描指定位置的所有文件。

CREATE EXTERNAL TABLE flights_ion ( yr INT, quarter INT, month INT, dayofmonth INT, dayofweek INT, flightdate STRING, uniquecarrier STRING, airlineid INT, ) STORED AS ION LOCATION 's3://amzn-s3-demo-bucket/'

指定 Amazon Ion 类路径

您可以不使用 STORED AS ION 语法,而是明确指定 ROW FORMAT SERDE、INPUTFORMAT 和 OUTPUTFORMAT 子句的 Ion 类路径值,如下所示。

参数 Ion 类路径
ROW FORMAT SERDE 'com.amazon.ionhiveserde.IonHiveSerDe'
STORED AS INPUTFORMAT 'com.amazon.ionhiveserde.formats.IonInputFormat'
OUTPUTFORMAT 'com.amazon.ionhiveserde.formats.IonOutputFormat'

以下的 DDL 查询使用此方法创建与前面示例中相同的外部表。

CREATE EXTERNAL TABLE flights_ion ( yr INT, quarter INT, month INT, dayofmonth INT, dayofweek INT, flightdate STRING, uniquecarrier STRING, airlineid INT, ) ROW FORMAT SERDE 'com.amazon.ionhiveserde.IonHiveSerDe' STORED AS INPUTFORMAT 'com.amazon.ionhiveserde.formats.IonInputFormat' OUTPUTFORMAT 'com.amazon.ionhiveserde.formats.IonOutputFormat' LOCATION 's3://amzn-s3-demo-bucket/'

有关的 Athena 中 CREATE TABLE 语句的 SerDe 属性信息,请参阅 Amazon Ion SerDe 属性参考。