亚马逊雅典娜表的创建失败了"在输入时没有可行的选择'创建外部'"

时间:2017-03-07 10:08:31

标签: amazon-web-services amazon-athena

这是我第一次尝试在Athena制作自己的桌子,所以请保持温和:)我有几个其他桌子基于在这个数据库中运行的AWS示例,没有任何问题,所以我确信数据库设置正确

另外,我确定我的正则表达式是残暴的,请暂时忽略它!

我在S3上存储了一些vpc流日志,日志文件的格式为:

2 123456654321 eni-ae343be4 100.75.233.178 172.31.26.162 49178 80 6 6 270 1488872163 1488872180 ACCEPT OK
2 123456654321 eni-ae343be4 100.75.233.178 172.31.26.162 64013 80 6 2 84 1488872163 1488872180 ACCEPT OK
2 123456654321 eni-ae343be4 206.97.36.202 172.31.26.162 33164 445 6 2 96 1488872163 1488872180 REJECT OK

我的表格基于AWS example published here。我创建的查询是:

CREATE EXTERNAL TABLE IF NOT EXISTS flow_logs_raw_native (
         version int,
         account-id bigint,
         interface-id string,
         srcaddr string,
         dstaddr string,
         srcport int,
         dstport int,
         protocol int,
         packets int,
         bytes int,
         Tstart bigint,
         Tend bigint,
         action string,
         log-status string 
) 
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe'
WITH SERDEPROPERTIES (
         'serialization.format' = '1','input.regex' = '([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*)' ) LOCATION 's3://vpcflowlogstos3-bucket-1ns5peqxgc31n/flowlogs/';

每次运行查询时都会收到错误:

line 1:8: no viable alternative at input 'create external' (service: amazonathena; status code: 400; error code: invalidrequestexception; request id: b0cfde99-031c-11e7-b4de-4139fae95147)

我现在已经看了几个小时,试图找到拼写错误或缺少元素,但我被卡住了!任何人都能看到这里的错误吗?

谢谢,

凯利。

1 个答案:

答案 0 :(得分:3)

哦,我明白了,我知道了!

我在某些字段名称中使用连字符,Athena不支持此功能。将它们改为下划线并将它移开!