Regex SerDe - Amazon Athena
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Regex SerDe

Regex SerDe 使用正则表达式通过将正则表达式组提取到表列中来反序列化数据。

如果数据中的某一行与正则表达式不匹配,则该行中的所有列都作为 NULL 返回。如果某行与正则表达式匹配,但其组少于预期,则缺少的组为 NULL。如果数据中的一行与正则表达式匹配,但其列多于正则表达式中的组,则会忽略其他列。

有关更多信息,请参阅 Apache Hive 文档中的 类 RegexSerDe

SerDe 名称

RegexSerDe

库名称

RegexSerDe

Examples

以下示例使用 RegExSerDe 根据 CloudFront 日志创建一个表。Replace我的地区s3://athena-examples-myregion/cloudfront/plaintext/与您运行 Athena 的区域的标识符(例如,s3://athena-examples-us-west-1/cloudfront/plaintext/)。

CREATE EXTERNAL TABLE IF NOT EXISTS cloudfront_logs ( `Date` DATE, Time STRING, Location STRING, Bytes INT, RequestIP STRING, Method STRING, Host STRING, Uri STRING, Status INT, Referrer STRING, os STRING, Browser STRING, BrowserVersion STRING ) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe' WITH SERDEPROPERTIES ( "input.regex" = "^(?!#)([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+[^\(]+[\(]([^\;]+).*\%20([^\/]+)[\/](.*)$" ) LOCATION 's3://athena-examples-myregion/cloudfront/plaintext/';