Endelig 1
This commit is contained in:
50
README.md
50
README.md
@@ -15,24 +15,27 @@ ETL-værktøj til udtræk og transformation af semistrukturerede data (JSON og X
|
||||
## Projektstruktur
|
||||
|
||||
```
|
||||
udpak_semistruktur/
|
||||
├── udpak_semistruktur/ # Python-pakken
|
||||
│ ├── extract/ # Filindlæsning og JSON/XML-traversering
|
||||
│ │ ├── reader.py # Filindlæsning, type- og encoding-detektion
|
||||
│ │ └── traversal.py # Rekursiv stibaseret udtræk
|
||||
│ ├── transform/ # Datatransformation
|
||||
│ │ ├── convert.py # Typekonvertering (dato, tal, boolean m.m.)
|
||||
│ │ ├── clean.py # Rensning, linjeskift, tag-stripping, case
|
||||
│ │ └── reshape.py # Flatten, join, where-filter, id-felt
|
||||
│ ├── load/ # Skrivning til fil og database
|
||||
│ │ ├── file_writer.py # CSV/TSV-skrivning med retry
|
||||
│ │ └── db_writer.py # Sybase ASE insert via ODBC
|
||||
│ ├── config.py # YAML-konfigurationshåndtering og -validering
|
||||
│ ├── db.py # Databaseforbindelse og credentials
|
||||
│ ├── ddl.py # DDL-generering og flyt-scripts til Sybase ASE
|
||||
│ └── utils.py # Fælles hjælpefunktioner
|
||||
├── tests/ # Unit tests
|
||||
├── udpak_semistruktur.py # CLI entry point
|
||||
uudpak_semistruktur/
|
||||
├── udpak_semistruktur/ # Python-pakken
|
||||
│ ├── extract/ # Filindlæsning og JSON/XML-traversering
|
||||
│ │ ├── reader.py # Filindlæsning, type- og encoding-detektion
|
||||
│ │ ├── traversal.py # Rekursiv stibaseret navigation i JSON/XML
|
||||
│ │ └── extractor.py # Udtræk af rækker baseret på YAML-konfiguration
|
||||
│ ├── transform/ # Datatransformation
|
||||
│ │ ├── convert.py # Typekonvertering (dato, tal, boolean m.m.)
|
||||
│ │ ├── clean.py # Rensning, linjeskift, tag-stripping, case, filnavn
|
||||
│ │ ├── reshape.py # Flatten, join, where-filter, id-felt, sammensat nøgle
|
||||
│ │ └── hash.py # Hash-beregning af kolonneværdier
|
||||
│ ├── load/ # Skrivning til fil og database
|
||||
│ │ ├── file_writer.py # CSV/TSV-skrivning med retry ved låste filer
|
||||
│ │ └── db_writer.py # Sybase ASE insert via ODBC
|
||||
│ ├── config.py # YAML-indlæsning, validering og expansion
|
||||
│ ├── db.py # Credentials fra pwd.json
|
||||
│ ├── ddl.py # DDL-generering og flyt-scripts til Sybase ASE
|
||||
│ ├── logger.py # Central logging med konfigurerbart logniveau
|
||||
│ └── utils.py # Fælles hjælpefunktioner
|
||||
├── tests/ # Unit tests
|
||||
├── udpak_semistruktur.py # CLI entry point
|
||||
├── requirements.txt
|
||||
└── README.md
|
||||
```
|
||||
@@ -53,10 +56,11 @@ pip install -r requirements.txt
|
||||
## Brug
|
||||
|
||||
```bash
|
||||
python udpak_semistruktur.py --config min_config.yaml --input data.json
|
||||
python udpak_semistruktur.py --config min_config.yaml --input-liste filer.txt
|
||||
python udpak_semistruktur.py --config min_config.yaml --input data.xml --DDL
|
||||
python udpak_semistruktur.py --config min_config.yaml --input data.json --DDL --flyt
|
||||
python udpak_semistruktur.py --config min_config.yaml
|
||||
python udpak_semistruktur.py --config min_config.yaml --DDL
|
||||
python udpak_semistruktur.py --config min_config.yaml --DDL --tmp
|
||||
python udpak_semistruktur.py --config min_config.yaml --DDL --flyt
|
||||
python udpak_semistruktur.py --config min_config.yaml --DDL --flyt_kort
|
||||
```
|
||||
|
||||
### Vigtigste flag
|
||||
@@ -64,8 +68,6 @@ python udpak_semistruktur.py --config min_config.yaml --input data.json --DDL --
|
||||
| Flag | Beskrivelse |
|
||||
|---|---|
|
||||
| `--config` | Sti til YAML-konfigurationsfil |
|
||||
| `--input` | Sti til enkelt input-fil (JSON eller XML) |
|
||||
| `--input-liste` | Sti til tekstfil med én input-fil per linje |
|
||||
| `--DDL` | Generer CREATE TABLE DDL-filer |
|
||||
| `--tmp` | Generer også `_tmp`-tabelvariant ved DDL |
|
||||
| `--flyt` | Generer DELETE + INSERT flyt-scripts (fuld kolonteliste) |
|
||||
|
||||
Reference in New Issue
Block a user