创建 Amazon Ion 表 - Amazon Athena

创建 Amazon Ion 表

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

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

  • ROW FORMAT SERDEINPUTFORMATOUTPUTFORMAT 字段中指定 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 SERDEINPUTFORMATOUTPUTFORMAT 子句的 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 属性参考