aus HisWiki

2.3.2 Einrichtung der Entladescripte

 

Einige Tabellen der SVA -Datenbank werden durch ein Entladescript entladen. Das Entladescripte für die SVA-Tabellen liegt im Verzeichnis $SUPERX_DIR/db/module/sva/rohdaten   und lautet:

sva_unload.x

Entladescript für SVA Version 7 oder höher unter Informix - Unix. Die Umgebung wird gesteuert in SVA_ENV.

 

Zum Entladen gibt es verschiedene Möglichkeiten, z.B. auf dem SuperX-Rechner direkt aus der SVA-Datenbank (ggf. remote) zu entladen, oder auf dem SVA-Rechner die Entladescripte einzurichten, auszuführen und   die Rohdaten dann auf den SuperX-Rechner zu kopieren. Details zu Entladearchitekturen finden Sie im Administratorhandbuch Kernmodul. Im folgenden beschreiben wir den wahrscheinlich häufigsten Weg, nämlich auf UNIX-Basis aus dem SVA-Rechner (UNIX) zu entladen und ggf. die Dateien nach SuperX zu kopieren.

Die Entladeroutine befindet sich auf dem SuperX-Rechner nach Entpacken des SVA-Moduls im Pfad $SVA_PFAD/rohdaten . Für das "Push"-Verfahren kopieren Sie den gesamten Verzeichnisinhalt ab / rohdaten auf den SVA-Rechner, z.B. nach /home/sva/superx , und geben Sie dem Script sva_unload.x Ausführungsrechte.

Vor dem Start müssen einige Parameter in der Datei SVA_ENV gesetzt werden, ein Muster liegt in SVA_ENV.sam ; neben den Datenbankparametern müssen das Ausgabeverzeichnis SVA_PFAD , die Version von SVA und der Datenbankname angegeben werden.

 

 

Nur für Informix gelten:

INFORMIXDIR

Home-Verzeichnis von Informix

INFORMIXSERVER

Name des Informixservers

ONCONFIG

Name der onconfig, wenn   auf dem SVA-Rechner mehrere Informix-Instanzen laufen

CLIENT_LOCALE

Sprachumgebung (wichtig fürs Entladen von Datumsformaten)

SERVER_LOCALE

dito

 

 

Nur für Postgres gelten:

PGDATESTYLE

Datumsformat "German"

PGPORT

Port vom Postgres-Server, standardmäßig 5432

PGHOST

Hostname oder IP-Adresse vom Postgres-Server

PGUSER

Benutzerkennung für Postgres-Server (nur Datenbank, nicht Betriebssystem)

PGPATH

Installationsverzeichnis von Postgres, z.B. /usr/local/pgsql

DB_PROPERTIES

Pfad zur db-sva.properties -Datei mit den Zugangsparametern für SVA unter Postgres. Wenn Sie mit SVA-GX 12 oder höher arbeiten, wird als Datenbankname nicht mehr "sva4" angegeben, sondern "hisrm". Eine Musterdatei db-hisrm_pg.properties.sam liegt im Archiv.

LOGGING_PROPERTIES

Pfad zur Steuerungsdatei mit den Parametern für das Logging beim Entladen, voreingestellt auf ./logging.properties . Normalerweise brauchen Sie hier nichts ändern, wenn beim Entladen Probleme auftauchen, kann man den Level von SEVERE auf INFO oder FINEST ändern, dann werden die konkreten SQLs geloggt. Aber Achtung: wenn keine Fehler mehr auftreten, müssen Sie den Level wieder auf SEVERE ändern, sonst kommen Schlüsselworte in die Logdatei sva_unload.err , die dann bei der Übernahme nach SuperX fälschlicherweise zu Fehlermeldungen führen.

JDBC_PARAM

Wenn Sie unter Postgres aus SVA-GX 12 entladen, muss beim Unload ein spezielles JDBC-Kommando abgesetzt werden, das dem Client sozusagen den Weg zum SVA-Schema zeigt. Dieses Kommando wird wie folgt aktiviert:
JDBC_PARAM="set search_path to sva4;"

export JDBC_PARAM

JDBC_CLASSPATH

Wenn Sie den obigen JDBC_PARAM   nutzen, aber noch nicht mit dem Kernmodul 4.0 arbeiten, müssen Sie eine spezielle Bibliothek laden mit dem Befehl
JDBC_CLASSPATH="$SVA_LOAD_PFAD/lib/superx3.9.jar:$JDBC_CLASSPATH"

export JDBC_CLASSPATH
Wenn Sie bereits mit dem Kernmodul 4.0 arbeiten, ist dies nicht nötig.

 

Unter Postgres muss für das "Pull"-Verfahren beim Entladen die Datenbankverbindung in der Datei db-sva.properties eingetragen werden (Muster für Postgres liegt bei in db-sva_pg.properties.sam oder db-hisrm_pg.properties.sam ). Dazu laden Sie einmal die Datei SVA_ENV mit den obigen Parametern, starten den SuperX-Propadmin (siehe Administrationshandbuch Kernmodul) und richten die Verbindung zum SVA-Server ein. Das Kennwort wird verschlüsselt gespeichert. Danach sind die Entladescripte für Postgres ausführbar.

Hinweis: Anders als Informix hat Postgres hat eine eigene, vom Basissystem unabhängige Benutzerverwaltung. Daher brauchen Sie den User, den Sie zum Entladen aus Postgres nutzen, nicht auf dem SuperX- oder SVA-Rechner auf Betriebssystem-Ebene einrichten. Sie können also z.B. auf dem SuperX-Rechner zum Entladen aus SVA die Kennung sva des Postgres- Rechners verwenden. Oder Sie richten in der SVA -Datenbank den Benutzer SuperX ein und geben ihm Leserecht auf die Tabellen sowie das Recht, Tabellen und Stored Procedures anzulegen.

 

Die weiteren Umgebungsvariablen in SVA_ENV sind folgende:

SVA_ENV
Umgebung für das Entladescript SVA

##Pfad für Entladedaten:
SVA_PFAD=.        ; export SVA_PFAD  
SVA_LOAD_PFAD=.
export SVA_LOAD_PFAD
##hier muss Unterverzeichnis unl existieren!

#SVA-Versionsnummer, möglich sind 6,7,8,9,902,
10,11,12,13
VERSION=
13
export VERSION
#Name der SVA-Datenbank
export DBASE="sva4"

 

SX_CLIENT,
DB_PROPERTIES,
LOGGER_PROPERTIES
und DATABASE

# SX_CLIENT ist die Client-Anwendung zum Zugriff auf die DB

# Mögliche Werte: dbaccess (Informix), psql (Postgres), jdbc (Alle anderen)
SX_CLIENT=dbaccess; export SX_CLIENT
#SX_CLIENT=psql; export SX_CLIENT
#SX_CLIENT=jdbc; export SX_CLIENT
#Wichtig bei jdbc und psql: Die Umgebungsvariable DB_PROPERTIES gibt des Pfad zur db-xxx.properties an.

#Dies wird in allen Programmen des jdbc-Clients genutzt.

#DB_PROPERTIES=./db-sva_pg.properties

#export DB_PROPERTIES

#auch die Logging-Ausgabe kann variiert werden: (./logging.properties.sam umbenennen)

#LOGGER_PROPERTIES=./logging.properties.sam

#export LOGGER_PROPERTIES

#Für jdbc auch JAVA_OPTS: viel RAM

#JAVA_OPTS="-Xmx500M"

#export JAVA_OPTS

#Database: POSTGRES, INFORMIX oder ACCESS

DATABASE=INFORMIX

export DATABASE

 

Zusätzliche
Parameter:
Entladestichtag
(Default 01.01.1900)

#Sollen nur aktuelle und zukünftige Beschäftigungen und Stellen entladen werden?
#Entweder man setzt es auf TODAY, auf den 01.01.1900 (alles) oder auf ein beliebiges Datum.
export SVA_AKTIV="01.01.1900"
#TODAY wäre z.B.:
#export SVA_AKTIV="`date +'%x'`"

Quellsystem SVA oder SVA (Datengrundlage für KENN)

#Quellsystem: SVA-GX

#Setzen Sie

#SOURCESYSTEM=sva_fuer_kenn

#um nur die in KENN benötigten Daten zu entladen

SOURCESYSTEM=sva

export SOURCESYSTEM

 

 

Personnamen
und Personalnummern
pseudonymisieren
(Default false)

#Wenn ANONYM = "true",dann wird in SVA_PER der Name /Vorname auf "leer" gesetzt, und die Personalnummer wird pseudonymisiert.
ANONYM="true"
export ANONYM

Wenn Sie über die Pseudonymisierung hinaus weitere Persondaten ausblenden wollen, können Sie im Folgenden ein paar Schalter setzen. Die Namen der Schalter entsprechen den Feldnamen in HIS-SVA (Tabelle pgd ).

Datenschutz-relevante Felder ausblenden:
Mit "1" werden die Felder entladen,
mit "0" werden sie nicht entladen

#Achtung: Wenn die standardmäßig auf 1 gesetzten Felder auf 0 gesetzt werden,dann sind die entsprechenden Berichtsmerkmale nicht auswertbar.
PGD_NAME=1
PGD_SUCHNAME=1
PGD_VORNAMEN=1
PGD_TITEL=0
PGD_GEBURTSDATUM=1
PGD_GESCHLECHT=1
PGD_FAM_STAND=0
PGD_STAATSANGEHOER=1
PGD_PLZ=0
PGD_WOHNORT=0
PGD_LAND=0
PGD_KATEGORIE=0
PGD_MATRIKELNUMMER=0
PGD_AUSTRITTSDATUM=0
PGD_BESCHAEFT_VON=0
PGD_BESOLD_DIENST=0
PGD_DIENSTZEIT=0
PGD_EINTRITTSDATUM=0
PGD_EINTRITT_LAND=0
PGD_JUBI_25_DATUM=0
PGD_JUBI_40_DATUM=0
PGD_JUBI_50_DATUM=0
PGD_JUBI_BERECH=0
PGD_LEB_ALTERSTUFE=0
PGD_VERLEIHUNG=0
PGD_ABLAUF_PROBE=0
PGD_RENTENDATUM=0
PGD_WIDERRUFDATUM=0
PGD_HABIL_JAHR=0
PGD_HABIL_HOCHSCH=0
PGD_HABIL_FACH=0
PGD_BERUFUNGSJAHR=0
PGD_LEHRFACH_EINW=0
PGD_AKAD_GRAD=0
#nun die Tabelle pbz (Personal-Besoldung)
#Aus Datenschutzgründen sind alle Felder standardmäßig ausgeblendet
PBZ_PBV_NR=0
PBZ_PGD_JOIN_ID=0
...
PBZ_VR_ZULAGEN=0

. ./SVA_DETAILS_ENV
#Ende Datenschutz-relevante Felder

Der Pseudonymisierungs-Schalter und die einzelnen pdg -Felder sind unabhängig voneinander spezifizierbar. Beim Entladen können z.B. auch bei abgeschalteter Pseudonymisierung die Personnamen ausgeblendet werden, indem Sie die drei Felder PGD_NAME, PGD_SUCHNAME und PGD_VORNAMEN auf 0 setzen (für Hochschulen, die in SuperX zwar die Personalnamen ausblenden wollen, die aber die echten Personalnummern sehen wollen).

Neben der Tabelle pgd kann auch das Entladen der Tabelle pbz und pbz_to_pbv ein- oder ausgeschaltet werden. Wenn die Variable PBZ_PGD_JOIN_ID auf 1 gesetzt wird, werden diese Personalnummer (ggf. pseudonymisiert) und weitere mit "1" spezifizierten Felder entladen. Mindestens die Felder pbv_nr , pgd_join_id und pbz_serial müssen in diesem Fall auf 1 gesetzt werden, weil dies Pflichtfelder sind.

Wenn die Variable PBZ_PGD_JOIN_ID   auf 0 gesetzt ist, wird überhaupt kein Datensatz zur pbz oder pbz_to_pbv   entladen. Dies ist aus Gründen der "Datensparsamkeit" auch die Standardeinstellung.

 

Nur für Informix:
Transaktio
nen abschalten?

#Transaktionen abschalten?

TRANSACTION_OFF=""

#Wenn Sie tagsüber entladen, Transaktionen eingeschaltet sind und die SVA-Tabellen groß sind, dann sollte dieses ent-kommentiert sein.

#TRANSACTION_OFF="SET ISOLATION TO DIRTY READ;"

#export TRANSACTION_OFF

 

 

Wenn die Rohdaten nach dem Entladen vom SVA-Rechner auf den SuperX-Rechner kopiert werden sollen, dann werden für das Script sva_copy.x folgende Umgebungsvariablen benötigt:

COPY_METHOD

Programm, das die Dateien kopiert; rsync und scp sind wählbar.

REMOTE_DIR

Verzeichnis, in das die Rohdaten auf dem SuperX-Rechner kopiert warden sollen, in der Regel ist dies "/home/superx/db/module/sva/rohdaten"

REMOTE_USER

Der Unix-Username auf dem SuperX-Rechner, in der Regel "superx".

REMOTE_HOST

Der Rechnername bzw. die IP-Nr. des SuperX-Rechners.

 

Der Entladestichtag in SVA_AKTIV ermöglicht es, nur die aktuellen SVA-Daten zu entladen, z.B. wenn Sie aus Gründen der Archivierung und für stichtagsbezogene Auswertungen in SuperX die älteren SVA-Daten nicht mehr "anrühren" wollen. Default ist der 01.01.1900 , d.h. alle Daten werden entladen. Sie können es aber auch wie oben beispielhaft gezeigt auf "Heute" setzen, dann werden jeweils immer nur die zum Zeitpunkt des Entladens aktiven Beschäftigungs- und Stellendaten entladen.

Der Schalter " ANONYM " bestimmt, ob die Personalnummern und Personnamen aus der Tabelle Personalgrunddaten übernommen werden sollen oder nicht. Wenn er auf "true" steht, werden bei den Namen NULLs entladen und die Personalnummern pseudonymisiert, bei "false" werden die Namen entladen.

 

Wichtig beim Wechsel zum pseudonymisierten Modus

Wenn Sie zur Datenkontrolle in Testinstallationen zunächst mit Personalnummern und Namen entladen haben, und dann für den Echtbetrieb zur Pseudonymisierung wechseln wollen, müssen Sie vorher alle Daten- und Hilfstabellen des SVA-Moduls leeren. Dazu wird mit sva_purge_<<DBMS>>.x ein Script zur Verfügung gestellt. Außerdem müssen Sie in SVA-GX in der Datenbank die Tabelle pgd_join_id_ldsg leeren bzw. folgenden SQL ausführen:
delete from pgd_join_id_ldsg;

 

 

Nach der Einrichtung der Umgebung starten Sie das Installationsscript

superx_sva_install.x

Dieses Script erzeugt in SVA eine Tabelle pgd_join_id_ldsg   zur Pseudonymisierung von Personalnummern.   Der SVA-Superuser sollte generell zum Eigentümer der Tabelle pgd_join_id_ldsg gemacht werden, sonst brechen HISSVA-interne Plausibilitätsprüfungen ab. Die entladende Kennung muss dann den Schreibzugriff für diese Tabelle erhalten.