Pregunta

YQL SHOW TABLES tiene CSV y HTML . ¿Qué pasa con una tabla para registros de acceso de Apache?

¿Fue útil?

Solución

Otros consejos

Los registros de Apache en realidad tienen un formato personalizable, así que supongo que se refiere al formato de registro común o uno de los valores predeterminados. Si agregamos algo como esto, probablemente será con un lector de línea basado en expresiones regulares que luego podría aplicar a los registros de apache. Gracias por la sugerencia.

Aquí está el comienzo de una tabla de análisis de registro común. El código tal como está se dividirá ciegamente en espacios vacíos, lo que no es exacto, pero es un comienzo. Probablemente desee pasar la url del archivo de registro, dividir las entradas en la nueva línea y luego analizar cada línea.

<?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>

Puedes ejecutarlo así: use " http: // {su dominio} /table.xml" como mesa; seleccione * de la tabla

Luego, puede ampliar la búsqueda de datos geográficos por ip: use " http: // {su dominio} /table.xml" como mesa; seleccione * de pidgets.geoip donde ip in (seleccione IP de la tabla)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top