这是我第一次尝试在 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 示例。我创建的查询是:
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)
我已经看了几个小时了,试图找到拼写错误或缺少元素,但我被卡住了!谁能看到这里有什么问题?
谢谢,
凯利。