Datenbank Logging

Screenshot TOS

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.

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.