YQL SHOW TABLES hat CSV und HTML. Was ist mit einer Tabelle für Apache Access Logs?YQL-Tabelle für Apache-Zugriffsprotokolle
Antwort
Es gibt jetzt eine regex Tabelle
Wenn Sie einen regulären Ausdruck für Ihre Log-Format haben, können Sie diese Tabelle, um sie zu analysieren, verwenden.
Apache-Protokolle haben tatsächlich ein anpassbares Format, also nehme ich an, dass Sie das gemeinsame Protokollformat oder einen der Standardwerte meinen. Wenn wir etwas so hinzufügen, wird es wahrscheinlich mit einem Regex-basierten Zeilenleser sein, den Sie dann auf Apache-Logs anwenden können. Danke für den Vorschlag.
Hier ist der Beginn einer allgemeinen Protokoll-Parsing-Tabelle. Der Code, wie er ist, wird blind auf leere Bereiche aufgeteilt, was nicht genau ist, aber es ist ein Anfang. Sie möchten wahrscheinlich die URL der Protokolldatei übergeben, die Einträge auf Newline aufteilen und dann jede Zeile analysieren.
<?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>
Sie können es wie folgt ausführen: Verwendung "http: // {Ihre Domain} /table.xml" als Tabelle; Wählen Sie * aus der Tabelle
Sie könnten es dann erweitern geo Daten nach ip suchen: verwenden Sie "http: // {Ihre Domain} /table.xml" als Tabelle; Wählen Sie * aus pidgets.geoip, wo IP in (wählen Sie IP aus der Tabelle)
- 1. Scala für() vs für {}
- 2. Verbindungszeichenfolge für Informix für .NET
- 3. Mindestanforderungen für Unity für Android?
- 4. Gruppe für Monat für Anwesenheitsliste
- 5. Modul für OneSignal für Appcelerator
- 6. Vorschlag für Vorlagenbuch für C++?
- 7. Alternative für BtsMSITask für BizTalk
- 8. Elmah für WCF für Ausnahmebehandlung
- 9. Beispiel für den Domain-Namen für mailgun be für nodejs?
- 10. Einstellung für Ländereinstellung für Java-Überschreibung für bestimmtes Gebietsschema
- 11. Implementieren von Bedingungsvariablen für CRITICAL_SECTIONs für WinThreads für XP
- 12. Alternative für ‚in‘ Operator für verschachtelte Listen
- 13. Validierung für TextBox für ein Benutzerformular
- 14. Jeder Ersatz für Bugsense für ACRA
- 15. "für" Schleife in einem anderen "für" Schleife
- 16. Empfehlung für Bildschirm-Video-Capture für Demos
- 17. istream für die Kommandozeileneingabe für C++/Poco
- 18. Zeitbedingung für Überprüfer für GCM Zweck
- 19. Swift: Verschlüsselte Eingabe für UITextField für Kartendetails
- 20. Relativer Pfad für Asset-Funktion für Laravel
- 21. Chrome für iOS: „Immer erlauben“ für Plätzchen
- 22. Spline-Interpolation für Werte für die Zeit
- 23. Beispiel für Akka EventBus für Java
- 24. Syntax für reguläre Ausdrücke für "Nichts anpassen"?
- 25. Admob Unterstützung für Kivy (Python für Android)
- 26. Sitzungsbehandlung für in WCF für ASP.net-Client
- 27. Pfad für die Installation Binärdateien für Kabale
- 28. Hilfe für EC2-api-Tools für Ubuntu
- 29. Ersatz für veralteten Facebook-Code für Android
- 30. Alternative für ssl_requirement Plugin für Rails 3?