Die Aufgabe: das Logging eines täglich laufenden Jobs soll in einer MySQL-Tabelle erfasst werden.
Die Lösung: per phpMyAdmin eine neue Datenbank talend_logs anlegen. Einen „Neuen Benutzer hinzufügen“ (z.B. talend). Diesem alle Rechte auf Datenbanken – die mit dem Benuterznamen beginnen (talend_%) – gewähren. Folgendes SQL-Skript auf die neue Datenbank anwenden:
DROP TABLE IF EXISTS `talend_logs`.`tflows`; CREATE TABLE `talend_logs`.`tflows` ( `moment` datetime DEFAULT NULL, `pid` VARCHAR(20) DEFAULT NULL, `father_pid` VARCHAR(20) DEFAULT NULL, `root_pid` VARCHAR(20) DEFAULT NULL, `system_pid` BIGINT(20) DEFAULT NULL, `project` VARCHAR(50) DEFAULT NULL, `job` VARCHAR(50) DEFAULT NULL, `job_repository_id` VARCHAR(255) DEFAULT NULL, `job_version` VARCHAR(255) DEFAULT NULL, `context` VARCHAR(50) DEFAULT NULL, `origin` VARCHAR(255) DEFAULT NULL, `label` VARCHAR(255) DEFAULT NULL, `count` INT(11) DEFAULT NULL, `reference` INT(11) DEFAULT NULL, `thresholds` VARCHAR(255) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; DROP TABLE IF EXISTS `talend_logs`.`tlogs`; CREATE TABLE `talend_logs`.`tlogs` ( `moment` datetime DEFAULT NULL, `pid` VARCHAR(20) DEFAULT NULL, `root_pid` VARCHAR(20) DEFAULT NULL, `father_pid` VARCHAR(20) DEFAULT NULL, `project` VARCHAR(50) DEFAULT NULL, `job` VARCHAR(50) DEFAULT NULL, `context` VARCHAR(50) DEFAULT NULL, `priority` INT(3) DEFAULT NULL, `type` VARCHAR(255) DEFAULT NULL, `origin` VARCHAR(255) DEFAULT NULL, `message` VARCHAR(255) DEFAULT NULL, `code` INT(3) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; DROP TABLE IF EXISTS `talend_logs`.`tstats`; CREATE TABLE `talend_logs`.`tstats` ( `moment` datetime DEFAULT NULL, `pid` VARCHAR(20) DEFAULT NULL, `father_pid` VARCHAR(20) DEFAULT NULL, `root_pid` VARCHAR(20) DEFAULT NULL, `system_pid` BIGINT(20) DEFAULT NULL, `project` VARCHAR(50) DEFAULT NULL, `job` VARCHAR(50) DEFAULT NULL, `job_repository_id` VARCHAR(255) DEFAULT NULL, `job_version` VARCHAR(255) DEFAULT NULL, `context` VARCHAR(50) DEFAULT NULL, `origin` VARCHAR(255) DEFAULT NULL, `message_type` VARCHAR(255) DEFAULT NULL, `message` VARCHAR(255) DEFAULT NULL, `duration` BIGINT(20) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; |
Bei den Properties eines Jobs kann unter dem Reiter „Stats & Logs“ (siehe Abbildung) das Logging aktiviert und auf die Datenbank umgebogen werden.
- Stats Table: „tstats“
- Logs Table: „tlogs“
- Meter Table: „tflows“
Anmerkung: diese Einstellungen macht das setzen einzelner tStatsCatcher, tLogCatcher und tMeterFlowCatcher überflüssig.
Tipp: die „Stats & Logs“ Einstellungen können für alle neuen Jobs im Menü Preferences » Talend » Stats & Logs » Java definiert werden.