YQL SHOW TABLES包含CSV和HTML。 Apache访问日志的表怎么样?
答案 0 :(得分:1)
现在有一个正则表格
如果您的日志格式有正则表达式,则可以使用该表进行解析。
答案 1 :(得分:0)
Apache日志实际上有一个可自定义的格式,所以我假设你的意思是普通的日志格式或其中一个默认格式。如果我们添加类似这样的内容,那么可能会使用基于正则表达式的行阅读器,然后您可以将其应用于apache日志。谢谢你的建议。
答案 2 :(得分:0)
这是常见日志解析表的开始。代码按原样会盲目地分成空白区域,这是不准确的,但它是一个开始。您可能希望传入日志文件的URL,在换行符上拆分条目,然后解析每一行。
<?xml version="1.0" encoding="UTF-8"?>
<table xmlns="http://query.yahooapis.com/v1/schema/table.xsd">
<meta>
<author></author>
<sampleQuery>select * from {table}</sampleQuery>
</meta>
<bindings>
<select itemPath="" produces="XML">
<inputs>
<key id="url" type="xs:string" paramType="variable"/>
</inputs>
<execute><![CDATA[
//http://en.wikipedia.org/wiki/Common_Log_Format
var entry = '208.240.243.170 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326';
var names = ['IP', 'RFC 1413', 'userid', 'date', 'request', 'status', 'size'];
var values = entry.split(' ');
var resp = {};
for (var i in names) {
var name = names[i];
resp[name] = values[i];
}
response.object = resp;
]]></execute>
</select>
</bindings>
</table>
您可以像这样运行: 使用“http:// {your domain} /table.xml”作为表;从表
中选择*然后你可以通过ip扩展它查找地理数据: 使用“http:// {your domain} /table.xml”作为表; select from from pidgets.geoip where ip in(从表中选择IP)