Scripte und Konfigurationsdateien für den ETL-Workflow des Online-Katalogs des Deutschen Literaturarchivs Marbach https://www.dla-marbach.de/katalog
siehe Dokumentation Internformat
OpenRefine, orcli und Apache Solr:
task installDas Arbeitsverzeichnis wird über die Variable DIR gesetzt. Die Quelldateien im TSV-Format müssen in einem Unterverzeichnis input bereitgestellt werden.
Weitere Variablen:
MEMORY: Wieviel Arbeitsspeicher OpenRefine verwenden darf. Default:2GPORT: Der von OpenRefine zu verwendende Port. Default:3333
Beispiel für Arbeitsverzeichnis data mit Quelldateien in data/input, 4 GB Java heap space für OpenRefine und Port 3334:
task DIR=data MEMORY=4G PORT=3334Das Verzeichnis data ist bereits in .gitignore gelistet.
orcli im interaktiven Modus starten (vgl. http://localhost:3333):
task devIndexierung in Solr testen (vgl. http://localhost:8983):
task solrKonvertierung der JSONL-Daten in YAML:
task yaml- Solr Schema erweitern
- Beispieldaten ergänzen in example/input
- OpenRefine Transformationsregeln ergänzen in config/main.
- Dazu ggf. orcli im interaktiven Modus starten mit
task dev - JSON aus OpenRefine-History in YAML konvertieren
- Dazu ggf. orcli im interaktiven Modus starten mit
- Daten generieren und Indexierung testen
task main yaml solr
- Ergebnisse prüfen mit git diff
git diff example/output/*.yaml git diff -U0 --word-diff-regex='[^,]+' --word-diff=porcelain example/output/*.jsonl
- Bei Änderung an exportDC oder exportMODS Daten validieren
task validate
- Dokumentation in docs/internformat.csv
- Solr Konfiguration: Standardwert für Feldliste (fl) anpassen
tail -n +2 docs/internformat.csv | cut -d , -f 2 | sort | uniq | grep -v 'export' | grep -v 'confidential' | head -c -1 | tr '\n' , | sed 's/,/, /g'
- Git commit und push
- schemaVersion in scripts/main.sh hochzählen
- Erneut Daten generieren
task main yaml
- Erneut Git commit und push
- GitHub Release Notes
- Konfiguration des Solr auf Produktivsystem aktualisieren