
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:
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.