创建 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 属性参考。