Wir speichern unsere Protokolle in S3, und eine unserer (Pig-)Abfragen würde drei verschiedene Protokolltypen erfassen. Jeder Protokolltyp befindet sich in einer Reihe von Unterverzeichnissen, die auf Typ/Datum basieren. Zum Beispiel:
/logs/<type>/<year>/<month>/<day>/<hour>/lots_of_logs_for_this_hour_and_type.log*
meine Abfrage würde alle drei Arten von Protokollen laden wollen, für eine bestimmte Zeit. Zum Beispiel:
type1 = load 's3:/logs/type1/2011/03/08' as ...
type2 = load 's3:/logs/type2/2011/03/08' as ...
type3 = load 's3:/logs/type3/2011/03/08' as ...
result = join type1 ..., type2, etc...
meine Abfragen würden dann gegen alle diese Protokolle laufen.
Wie lässt sich dies am effizientesten bewerkstelligen?
- Müssen wir die Bash-Skripterweiterung verwenden? Ich bin nicht sicher, ob dies mit mehreren Verzeichnissen funktioniert, und ich bezweifle, dass es effizient (oder sogar möglich) wäre, wenn 10k Protokolle zu laden sind.
- Erstellen wir einen Dienst, um alle Protokolle zu aggregieren und sie direkt an hdfs zu senden?
- Benutzerdefinierte Java/Python-Importer?
- Andere Gedanken?
Es wäre hilfreich, wenn Sie ggf. auch einen Beispielcode hinterlassen könnten.
Gracias