---
opencode-session: ses_19d153875ffe1FRkiODSAHE8t4
opencode-model: deepseek-v4-pro
opencode-agent: build
opencode-cost: 0.14581635
opencode-created: 2026-05-26 09:13:34
opencode-updated: 2026-05-26 10:07:18
---
# SAP BI2025 DSD Oracle->PostgreSQL üleviimisplaan
## User
Koosta üldplaan SAP BI2025 DSD andmelaadimiste osa üleviimiseks oracle andmebaasidelt postgre andmebaasidele. Muutmisele lähevad DSD-st eksporditud `job` ETL fail. Muudame ainult lõpptabeleid `oracle -> postgre` ja ka neid vajetabeleid mis asuvad `job` sees. Palun koosta meie tegevuse jaoks üldplaan. Kui jäi midagi arusaamatuks, siis küsi enne kui hakkame `build` režiimis konkreetseid tegevusi tegema. Kuna testimine toimub teises arvutis, siis püüame jagada meie plaani loogilisteks osadeks. Palun tee selle projekti jaoks eraldi kaust `SAP` kataloogi ~/Dropbox/Project alla.
Tööruumis on praegu kaustad `.venv/`, `.vscode/` ja `liiklussagedus/`. Enne kui koostan põhjaliku üldplaani, vajan täpsustusi:
1. **DSD `job` failide formaat** — mis faililaiendiga on eksporditud job-failid? Kas need on XML-põhised (SAP Data Services/BODS), JSON, või midagi muud? Kas on võimalik näha ühte näidisfaili, et mõista struktuuri?
2. **"Vajetabeleid"** — kas need on nn *value tables* ehk väikesed viitetabelid/lookup tabelid, mis asuvad otse job-faili sees, või on need eraldi konfiguratsioonifailid? Mis nende täpne roll on ETL protsessis?
3. **Maht ja ulatus** — kui palju job-faile on vaja üle viia? Kas me räägime kümnest, sajast või tuhandest failist?
4. **SQL muudatused** — kas lisaks tabelinimede vahetusele (`oracle_schema -> postgre_schema`) on vaja muuta ka Oracle-spetsiifilist SQL süntaksit (nt `JOIN` süntaks, `TRUNC`, kuupäevafunktsioonid, PL/SQL jms)?
5. **Skeemide vastendus** — kas on olemas Oracle -> PostgreSQL tabelite ja skeemide vastendustabel? Kas tabelinimed jäävad samaks või muutuvad?
6. **Testimiskeskkond** — kuidas toimub testimine teises arvutis? Kas on olemas Git repositoorium, kuhu muudatused üles laadida? Kuidas testarvuti neid faile kätte saab?
Palun vasta nendele küsimustele, siis koostan konkreetse samm-sammult plaani. Kausta `SAP` loomise ja failide muutmisega alustame siis, kui oleme `build` režiimis.
## Faili struktuuri analüüs
**Fail:** `export_HK.atl` — SAP Data Services (BODS) ekspordifail, 1928 rida, versioon 14.4.
### Andmebaasid (9 tk)
| Nimi | Tüüp | Oracle'i versioon | Muuta? |
|------|------|-------------------|--------|
| `Andmeladu_PRIA` | Oracle | 19c | **Jah** → PostgreSQL |
| `LADU_HK` | Oracle | 12c | **Jah** → PostgreSQL |
| `PRIA_ALLIKAD` | Oracle | 19c | **Jah** (allikas, vajetabel) |
| `PRIA_ARHIIVTEST` | Oracle | 19c | **Jah** (allikas, vajetabel) |
| `VTM` | Oracle | 19c | **Jah** (allikas, vajetabel) |
| `MATS_baasmoodul` | ODBC | — | **Ei** |
| `MATS_kliendimoodul` | ODBC | — | **Ei** |
| `MATS_sisestusmoodul` | ODBC | — | **Ei** |
| `MATS_vtm` | ODBC | — | **Ei** |
### Dataflow'd (5 tk)
| Dataflow | Loeb allikatest | Laeb sihtkohta |
|----------|-----------------|----------------|
| `AB_kontr` | MATS_* (ODBC) + PRIA_ALLIKAD + PRIA_ARHIIVTEST + VTM | `Andmeladu_PRIA` |
| `HK_objekt` | MATS_* (ODBC) | `LADU_HK` |
| `HK_objekti_hind` | MATS_* (ODBC) | `LADU_HK` |
| `HK_objekti_kontaktid` | MATS_* (ODBC) | `LADU_HK` |
| `HK_obj_hinna_valideerimine` | MATS_* (ODBC) | `LADU_HK` |
---
## Ülevaade failist `export_HK.atl`
Fail sisaldab **9 andmebaasi**, **5 dataflow'd**, **2 plaani (plan)** ja **1 sessiooni (job)**. Oracle viiteid on kahes kohas:
| Oracle komponent | Asukoht | Mida muuta |
|-----------------|---------|------------|
| 5 `CREATE DATABASE DATASTORE` | read 5–404 | `database_type=Oracle` → `PostgreSQL` |
| 5 `LOAD TABLE` LDRConfiguration | dataflow'de sees | `database_type="Oracle"` → `PostgreSQL` |
**ODBC baasid (MATS_*) jäävad puutumata.** READ TABLE viited Oracle baasidest (PRIA_ALLIKAD, PRIA_ARHIIVTEST, VTM) kasutavad lihtsalt datastore nime, mis jääb samaks.
---
## Muudatuste detailplaan
### 1. Osa — Datastore definitsioonid (5 tk)
Iga Oracle datastore konverteerimine PostgreSQL native vastu:
| Enne | Pärast |
|------|--------|
| `Oracle` | `PostgreSQL` |
| `` / `` | **Eemaldada** |
| `PRIA_DWH` | `???` |
| `Oracle 19c` | `???` |
### 2. Osa — LOAD TABLE laadurite seadistused (5 tk)
Iga `ldr_configurations` XML-is:
| Enne | Pärast |
|------|--------|
| `database_type="Oracle"` | `database_type="PostgreSQL"` |
| `database_version="Oracle 19c"` | `database_version="PostgreSQL 16"` |
| Kõik `` elemendid | **Eemaldada** |
### 3. Osa — Väljund
Genereerin uue faili `export_HK_pg.atl` originaali kõrvale.
---
Enne kui alustan, vajan PostgreSQL ühenduste andmeid iga 5 Oracle baasi kohta:
1. **Andmeladu_PRIA** → PostgreSQL host / port / db nimi / kasutaja / versioon?
2. **LADU_HK** → PostgreSQL host / port / db nimi / kasutaja / versioon?
3. **PRIA_ALLIKAD** → PostgreSQL host / port / db nimi / kasutaja / versioon?
4. **PRIA_ARHIIVTEST** → PostgreSQL host / port / db nimi / kasutaja / versioon?
5. **VTM** → PostgreSQL host / port / db nimi / kasutaja / versioon?
Kui täpsed ühendusandmed pole veel teada, võin panna **placeholder** väärtused (nt `PG_HOST_Andmeladu_PRIA`), mida saate hiljem asendada. Kumb variant sobib?
## Tulemus
**`export_HK_pg.atl`** — uus fail, ainult LADU_HK sihtbaas konverteeritud:
| Muudatus | Mida muudeti |
|----------|-------------|
| **LADU_HK datastore** | `database_type=Oracle` → `PostgreSQL`; eemaldatud `Oracle_default_*`; lisatud `postgresql_host/port/database/version` placeholderitega |
| **4 LOAD TABLE laadurit** | `LDRConfiguration database_type="Oracle"` → `PostgreSQL`; eemaldatud kõik `oracle_*` elemendid |
| **Andmeladu_PRIA** | **Ei muudetud** — jäi Oracle peale |
| **Lähtebaasid** (PRIA_ALLIKAD, PRIA_ARHIIVTEST, VTM, MATS_*) | **Ei muudetud** |
**Placeholder väärtused** (LADU_HK jaoks):
```
PG_HOST_LADU_HK
5432
PG_DB_LADU_HK
PostgreSQL 16
```
## `export_HK_pg.atl` — muudatused
| Element | Enne | Pärast |
|---------|------|--------|
| Job nimi | `MATS_hinnakataloog` | `MATS_hinnakataloog_PG` |
| LADU_HK datastore | Oracle | PostgreSQL (placeholderitega) |
| 4 LADU_HK laadurit | Oracle LDRConfiguration | PostgreSQL LDRConfiguration |
| Andmeladu_PRIA + lähtebaasid | Oracle | Puutumata |
## `ladu_hk_ddl.sql` — PostgreSQL skeem
Loodud **4 tabelit** skeemis `LADU_HK`:
| Tabel | Indekseid | Trigger |
|-------|-----------|---------|
| `HK_OBJEKT` | 4 (ID, klient_id, esindaja_id, unikaalne_kood) | `muutmis_aeg` BEFORE UPDATE |
| `HK_OBJEKTI_HIND` | 3 (ID, objekti_id, kehtivus) | `muutmis_aeg` BEFORE UPDATE |
| `HK_OBJEKTI_KONTAKT` | 1 (objekti_id) | — (pole muutmis_aeg veergu) |
| `HK_OBJ_HINNA_VALIDEERIMINE` | 2 (hinna_id, staatus) | `muutmis_aeg` BEFORE UPDATE |
Andmetüübid on teisendatud: `DECIMAL(19,0)` → `BIGINT`, `DECIMAL(p,s)` → `NUMERIC(p,s)`, `DATETIME(n)` → `TIMESTAMP(n)`. SQL fail sisaldab ka kommentaare ja õiguste näidist.