Talend Open Studio (TOS) – Variablen und etwas Java

TOS Jobs kennen unterschiedliche Arten von Variablen

Um eine hohe Flexibilität in entwickelten Jobs zu erhalten versucht man den Job möglichst mittels Parameterübergaben zu steuern. bei TOS werden die Variablen in einem Context zusammengefaßt und in einem File gespeichert. ..  wie in alten “INI”-Files.
Beim Start des Jobs übergibt man nun nur den Namen des Context-File, … by Default lautet der Name “Default”
Somit lassen sich Variablen statisch hinterlegen.
Das Context-File Default.context liegt später im Scriptverzeichnis.

Context-Definition: hier die Variable “emails”

Context-Variablen nutzen:    .. in irgendein Feld reingehen und mal STRG+SPACE (more…)

Talend Open Studio – Einbindung einer Datenquelle

 

Datenbankverbindungen sollte man in TOS immer als Meta-Daten im Repository hinterlegen.
In diesem Fall gehe ich davon aus, dass man schon ein Projekt definiert und als Sprache “JAVA” gewählt hat.
Schritte:
  • Auf der linken Seite den Ordner „Meta-Daten“ öffnen
  • Mit Rechter Maustaste auf DB-Verbindungen klicken und „Erstelle Verbindung wählen“
  • „Name“ angeben, auf „weiter“ klicken, -> Der Name muss den Regeln für einen Klassennamen in Java entsprechen
  • DB-Type auswählen

Datenbank-Connection in MetaData

(more…)

Talend Open Studio ETL – Einführung

ETL steht für

  • Extract
  • Transform
  • Load

Talend Open Studio ist eine Entwicklungsumgebung, die sich genau auf diese 3 ETL-Funktionen spezialisiert hat. Extract, Transform und Load werden hierbei sehr weit gegriffen und zur Instrumentalisierung werden weitere Komponenten angeboten, die weit mehr ermöglichen als Daten von einer Datenquelle zur anderen zu schieben.

Wozu kann man es anwenden?

  • Daten extrahieren, in Informationen wandeln oder Datentypen wandeln, in Zielsystem laden…
  • Datenbestände unterschiedlicher Systeme können zusammengeführt, verglichen und normalisiert werden
  • Import / Export

(more…)

Oracle – Passwort Reset

Problemdarstellung
Hat man das passwort der Datenbank dann doch vergessen… wie kommt man wieder dran?
Unter Windows einloggen. Man muss Mitglied der Gruppen Administrators oder der ORA_DBA sein.

Danach:
sqlplus /nolog
connect / as sysdba

Nun ist man ohne Passwort connected und kann Passwörter setzen
ALTER USER username IDENTIFIED BY new_password;

GREATEST und LEAST

Manchmal hat man das Problem, dass DECODE nicht richtig passt und CASE zu aufwändig ist. .. und man will ja nicht immer neue Oracle-Funktionen selbst schreiben
Hier helfen noch die Oracle-Funktionen GREATEST und LEAST

greatest(e1[,e2] …) größter Wert der Ausdrücke
least(e1[,e2] …) kleinster Wert der Ausdrücke

bei einem Vergleich von Strings gilt:

  • greatest (‘abc’,’cbe’) = ‘cbe’
  • greatest (‘ABC’,’cbe’) = ‘cbe’
  • greteast(‘ABC’,’987′) = ‘ABC’

Die Funktionen bitte nicht mit den Gruppierfunktionen MIN und MAX verwechseln!

SQL – Like-Suche nach Wildcard-Zeichen unter Oracle

Aktuell werden auch schon teilweise REGEX-Funktionen in Datenbanken etabliert.
Oftmals reicht aber eine einfache Suche mit vorgegebenen Mustern
Select * from Mitarbeiter
where nachname like ‘H%mann‘;
Liefert Heinemann, Heynemann und auch Hoffmann
Select * from Mitarbeiter
where nachname like ‘He_nemann‘;
Liefert nur Heinemann, Heynemann
Zum ignorieren von Klein – und Großschrift kann man beides klein setzen
Select * from Mitarbeiter where lower(nachname) like lower(‘He_nemann‘);
Escape-Zeichen ermöglichen die Suche von Datensätzen, die einen eigentlichen Wildcard enthalten.
Die nachfolgende Suche liefert alle Tabelle, die auch ein “_” enthalten:
Select * from all_tables
where table_name like ‘%\_%’ ESCAPE ‘\’

Oracle, Alternative zu DECODE ist CASE

Decode ist eine einfache Funktion, in der man eine Expression beschreibt und dann fast beliebig viele Ersetzungen durchführen kann.
Leider werden die Expressions, Search und Result-Ketten aber manchmal zu komplex oder Decode mehrfach geschachtelt.
Einfacher ist es hier, direkt Case einzusetzen.

DECODE
Syntax: decode( expression , search , result [, search , result]… [, default] ) as label

select
decode(POSTLEITZAHL, 70599, ‘Stuttgart – Asemwald’, 70499, ‘Stuttgart – Bergheim’, ‘UNBEKANNT’) from ADRESSE;

 

 

CASE – Funktion, längere Schreibweise, – aber flexibler

Syntax: case when expression then result
when expression then result
when expression then result
else default
end as label

Beispiel in einer Geräteliste

select
case
when substr(name, -2)=’RH’ then ‘Router‘
when device_id between 1015544 and 1015600 then ‘MURXS’
else ‘sonstiges’
end as Zusatz
, e.* from my_cmdb_devices  e;

1 2 3 4