繁体   English   中英

使用 sql 查询从数组中提取数据

[英]Extracting data from an array using sql query

我在 Athena 中有一个字段,如下所示:

{clientip=66.249.69.121, country=US, headers=[{name=Host, value=play.hubhopper.com}, {name=Connection, value=keep-alive}, {name=Accept, value=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8}, {name=From, value=googlebot(at)googlebot.com}, {name=User-Agent, value=Googlebot-Video/1.0}, {name=Accept-Encoding, value=gzip, deflate, br}], uri=/b3219e23cb94459d30487d5caca0be06.mp3, args=s=hh-rss-feed, httpversion=HTTP/1.1, httpmethod=GET, requestid=Md_hWt8b0cpIA_9Id2X3-cqaI1AAVSSk0_YTfZcodwInTfqUp9T_nA==}

各种用户代理有很多这样的记录。 我想获取 user-agent = 'Googlebot-Video/1.0' 的数据。 查询应该是什么?

谢谢

您可能可以在此处使用正则表达式替换:

SELECT REGEXP_REPLACE(field, '.*\{name=User-Agent, value=(.*?)\}.*', '\1') AS user_agent
FROM yourTable;

请注意,如果\1不能作为替代品,您可能必须改用$1 这是一个正则表达式演示,显示替换逻辑正在运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM