2017-03-07 145 views
0

這是我第一次嘗試在雅典娜製作我自己的表,所以請溫柔:)我有幾個其他表基於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) 

我一直在看這個了幾個小時了,想找個拼寫錯誤,或缺少元素,但我卡住了!任何人都可以看到這裏有什麼問題?

謝謝,

凱利。

回答

0

哦,我知道了,我知道了!

我對某些字段名稱使用了連字符,雅典娜不支持此字段。將它們改爲下劃線並將其移開!