質問
YQL SHOW TABLES にはCSVとHTMLがあります。 Apacheアクセスログのテーブルはどうですか?
解決
正規表現テーブルがあります
ログ形式に正規表現がある場合、そのテーブルを使用して解析できます。
他のヒント
Apacheログには実際にカスタマイズ可能な形式があるため、一般的なログ形式またはデフォルトのいずれかを意味すると想定しています。このようなものを追加すると、おそらく正規表現ベースのラインリーダーが使用され、Apacheログに適用できます。提案をありがとう。
一般的なログ解析テーブルの始まりです。コードはそのまま空白スペースで盲目的に分割されますが、これは正確ではありませんが、開始点です。おそらく、ログファイルの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>
次のように実行できます。 &quot; http:// {your domain} /table.xml"を使用しますテーブルとして;テーブルから*を選択
その後、IPで地理データを検索して拡張できます。 &quot; http:// {your domain} /table.xml"を使用しますテーブルとして; select * from pidgets.geoip where ip in(テーブルからIPを選択)
所属していません StackOverflow