Вот начало общей таблицы анализа журнала. Код «как есть» будет слепо разбиваться на пустые места, что не совсем точно, но это только начало. Возможно, вы захотите передать 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" в качестве таблицы; выберите * из pidgets.geoip, где ip in (выберите IP из таблицы)