gpt4 book ai didi

amazon-athena - Amazon athena 无法读取 S3 访问日志文件,Athena 选择查询为每一列返回空结果集

转载 作者:行者123 更新时间:2023-12-04 13:15:49 28 4
gpt4 key购买 nike

我在 Athena 中成功创建了数据库表。请参阅下面的查询。

   CREATE EXTERNAL TABLE IF NOT EXISTS s3_access_logs_db.wafbucket_logs(
BucketOwner STRING,
Bucket STRING,
RequestDateTime STRING,
RemoteIP STRING,
Requester STRING,
RequestID STRING,
Operation STRING,
Key STRING,
RequestURI_operation STRING,
RequestURI_key STRING,
RequestURI_httpProtoversion STRING,
HTTPstatus STRING,
ErrorCode STRING,
BytesSent BIGINT,
ObjectSize BIGINT,
TotalTime STRING,
TurnAroundTime STRING,
Referrer STRING,
UserAgent STRING,
VersionId STRING,
HostId STRING,
SigV STRING,
CipherSuite STRING,
AuthType STRING,
EndPoint STRING,
TLSVersion STRING
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe'
WITH SERDEPROPERTIES (
'serialization.format' = '1', 'input.regex' = '([^ ]*) ([^ ]*)
\\[(.*?)\\] ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) \\\"([^ ]*) ([^ ]*) (- |[^ ]*)
\\\" (-|[0-9]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) (\"[^\"]*\") ([^ ]*)
(?: ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*))?.*$' )
LOCATION 's3://stb-aws-bucket-logging/logs/';

但是,当我对表运行查询时,它返回了一个空结果集。有 20 行,但都是空的!!!

SELECT * FROM s3_access_logs_db.wafbucket_logs limit 20;

以前有人遇到过这个问题吗?

谢谢,团

最佳答案

我发现我的解析格式有误。它有一个换行符!我从 AWS 文档中复制了访问日志的解析器格式。我想我无意中在解析器格式中添加了一个换行符!这是正确的解析器格式:

'serialization.format' = '1', 'input.regex' = '([^ ]*) ([^ ]*) \\[(.*?)\\] ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) \\\"([^ ]*) ([^ ]*) (- |[^ ]*)\\\" (-|[0-9]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) (\"[^\"]*\") ([^ ]*) (?: ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*))?.*$'

成功了!!!

你的评论迫使我重新审视解析器格式。

谢谢,团

关于amazon-athena - Amazon athena 无法读取 S3 访问日志文件,Athena 选择查询为每一列返回空结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60607346/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com