【发布时间】:2009-09-03 00:18:11
【问题描述】:
我正在寻找使用 YQL 处理 Web 服务器日志文件的示例代码。
YQL table for Apache access logs 询问“Apache 访问日志表怎么样?” spullara 回复:
如果我们添加这样的内容,可能会使用基于正则表达式的行阅读器,然后您可以将其应用于 apache 日志。
后来Paul Tarjan 说:
现在有一个正则表达式表
http://developer.yahoo.com/yql/console/?q=select%20%20from%20regex%20where%20expression%20%3D%20%22%28.%29%22%20and%20text%3D%22test%22&env=http%3A %2F%2Fdatatables.org%2Falltables.env
所以,看起来正则表达式功能已添加到 YQL。
我希望看到一个完整的 YQL 示例,该示例使用此正则表达式功能并使用 this sample log file。这是the sample log file的一行:
69.12.127.10 - - 02/Sep/2009:01:53:52 MDT "GET /holeman/cgi-bin/get_page.cgi?../cxx/sw_stack" HTTP/1.1 200 999 Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.2) Gecko/20090810 Ubuntu/9.10 (karmic) Firefox/3.5.2
仅显示上述示例行所引用的 IP 地址和页面:
69.12.127.10 /holeman/cgi-bin/get_page.cgi?../cxx/sw_stack
在 Paul Tarjan 示例中,expression 和 text 的值是硬编码的。如何在文件http://sky.prohosting.com/holeman/yql/serverlog/20090902.txt 中引用text?另外,对于expression,如何使用引用而不是硬编码值?
【问题讨论】:
-
正则表达式表仅支持其查询中的文本和表达式。所以,在它支持 url 参数之前,它不能用于解析在线日志文件。