Betriebssicherheit: Sperre gegen parallele Läufe, Upsert, Batch-Schreiben für Postgres, Zeichensatz für CSV
This commit is contained in:
@@ -2,6 +2,17 @@
|
||||
|
||||
Framework `datapipeline` (Gem). Neueste Version oben.
|
||||
|
||||
## 2.1.0 – 2026-10-09
|
||||
|
||||
- Sperre gegen parallele Läufe: `lock 'datei'` in der Pipeline, `etl --lock=datei` für das ganze Skript; ein zweiter
|
||||
Lauf bricht mit `DataPipeline::LockError` ab, Exit-Code `3`
|
||||
- postgres, sqlite: `upsert: %w[schlüssel]` (`insert … on conflict … do update`); sqlite legt mit `create: true` den
|
||||
Unique-Index an
|
||||
- postgres: `write_row` schreibt gesammelt je `batch_size` Zeilen (Default 1000) in einer Transaktion statt je Zeile
|
||||
einzeln; `batch_size: :all` = eine Transaktion für den ganzen Stream, nach einem Abbruch zurückgerollt
|
||||
- csv: `encoding:` (z. B. `'ISO-8859-1'`, `'Windows-1252'`), `replace:` für nicht darstellbare Zeichen, `bom: true`;
|
||||
ein UTF-8-BOM wird beim Lesen übersprungen
|
||||
|
||||
## 2.0.0 – 2026-10-08
|
||||
|
||||
- Gem `datapipeline`: `datapipeline.gemspec`, Executable `etl` (exe/etl), Code unter `lib/datapipeline/`
|
||||
|
||||
Reference in New Issue
Block a user