Przewodniki po funkcjach
Centrum migracji
Centrum migracji to wspomagane przez AI narzędzia, które konwertują starszy majątek ETL Polkomtela — przepływy Informatica PowerCenter, Alteryx, SSIS i DataStage — na natywne potoki danych YAML DataFlow AI, ze zautomatyzowanym parsowaniem, konwersją opartą na regułach oraz wspomaganą przez LLM, oceną pewności dla poszczególnych obiektów i walidacją parzystości danych.
Kto korzysta z Centrum migracji
Z Centrum migracji korzystają przede wszystkim persona Data Engineer (Anna Kowalska) oraz persona administratora platformy (Katarzyna Zielińska). Inżynierowie prowadzą codzienne konwersje; administratorzy nadzorują cały program migracji.
W przypadku Polkomtela zakres jest duży — ponad 500 przepływów PowerCenter plus 50–100 przepływów Alteryx, co daje łącznie około 550–600 zasobów do migracji.
| Co migruje | Plik źródłowy | Silnik |
|---|---|---|
| Informatica PowerCenter | .xml | silnik reguł + rezerwowy LLM |
| Alteryx | .yxmd | silnik reguł + rezerwowy LLM |
| SSIS | .dtsx | silnik reguł + rezerwowy LLM |
| DataStage | .dsx | parser istnieje (podłączony do silnika reguł) |
Uwaga
Centrum migracji migruje starsze narzędzia ETL, a nie dialekty SQL. Krok przesyłania akceptuje pliki PowerCenter XML, Alteryx YXMD i SSIS DTSX; w silniku istnieje także parser DataStage.
Układ modułu
Centrum migracji jest zamontowane pod /migration (przekierowuje do /migration/import; punkt wejścia src/pages/MigrationCenter.tsx, układ src/pages/migration/MigrationLayout.tsx). Lewy pasek boczny wymienia cztery ekrany; ślad nawigacyjny znajduje się u góry.
+------------------------------------------------------------------+
| Home > Migration Center > Import Wizard |
+------------------------------------------------------------------+
| Sidebar (240px) | Main content area |
| ARROW Migration Center | +-----------------------------------+ |
| > Import Wizard | | | |
| > AI Conversion | | (Screen content renders here) | |
| > Validation Suite | | | |
| > Progress Tracker | | | |
+-------------------------+--+-----------------------------------+ |
Cztery ekrany:
| Ekran | Trasa | Cel |
|---|---|---|
| Kreator importu | /migration/import | Przesyłanie, analiza AI i raportowanie plików przepływów źródłowych |
| Pulpit konwersji AI | /migration/conversion | Monitorowanie wyników automatycznej konwersji według typu obiektu |
| Pakiet walidacji | /migration/validation | Uruchamianie testów parzystości danych, porównanie źródła i celu |
| Śledzenie postępów | /migration/progress | Śledzenie faz migracji, tempa, harmonogramu i ryzyk |
Potok konwersji — co dzieje się pod maską
Silnik migracji uruchamia stały cykl życia dla każdego przesłanego pliku: uploaded → parsing → parsed → converting → validating → validated → completed | completed_with_warnings | failed.
| Etap | Co robi |
|---|---|
| 1. Parsowanie | Parser specyficzny dla narzędzia zamienia plik źródłowy we wspólne WorkflowAST mapowań, transformacji i konektorów. |
| 2. Konwersja | Deterministyczny RuleEngine przechodzi przez każdą transformację; 13 typów transformacji PowerCenter ma jawne reguły konwersji. Typy bez reguły lub z pewnością poniżej 0,60 trafiają do konwertera LLM. |
| 3. Walidacja | PipelineValidator uruchamia sześć kontroli wygenerowanego YAML — składnia, wymagane klucze, schemat węzłów, odwołania krawędzi oraz skanowanie pod kątem niebezpiecznego SQL. |
Konwersja jest deterministyczna tam, gdzie to możliwe. Reguły transformacji PowerCenter i ich węzły docelowe:
| Typ źródłowy | Cel DataFlow | Pewność |
|---|---|---|
| Source Qualifier | przekazanie SQL do konektora źródłowego | 0,90–0,95 |
| Expression | sql_expression | 0,85 |
| Lookup Procedure | sql_join_pushdown | 0,65–0,85 |
| Aggregator | sql_group_by | 0,95 |
| Filter | sql_where | 0,98 |
| Joiner | sql_join | 0,90 |
| Sorter | sql_order_by | 0,98 |
| Router | conditional_branch (CASE WHEN) | 0,85 |
| Update Strategy | upsert_strategy | 0,80 |
| Union | sql_union_all | 0,95 |
Bramka wydania: zadanie jest oznaczane jako completed tylko wtedy, gdy ogólna pewność wynosi co najmniej 0,85, żaden obiekt nie ma wyniku poniżej 0,80, żaden obiekt nie wymaga ręcznego przeglądu i nie ma problemów walidacji — w przeciwnym razie jest oznaczane jako failed.
Uwaga
Każdy wynik AI w Centrum migracji niesie ze sobą ocenę pewności w zakresie 0–1. Silnik rozróżnia rzeczywiste wyjście LLM od rozwiązań rezerwowych po awarii: gdy LLM jest niedostępny, konwersje zwracają conversion_source = "llm_unavailable", pewność 0.0 oraz requires_manual_review = true.
Ekran 1 — Kreator importu
Trasa: /migration/import — punkt wejścia src/pages/migration/ImportWizardPage.tsx.
Czterokrokowy kreator z poziomym wskaźnikiem kroków.
+------------------------------------------------------------------+
| (1) Upload --- (2) AI Analysis --- (3) Report --- (4) Convert |
+------------------------------------------------------------------+
Krok 1 — Przesyłanie plików
Strefa przeciągnij i upuść o pełnej szerokości (przerywana ramka, stany najechania i przeciągania) z opcją zastępczą Browse Files. Każdy upuszczony plik automatycznie wykrywa swój typ — PowerCenter XML (pomarańczowa plakietka), Alteryx Workflow (niebieska plakietka) lub Unsupported (czerwona plakietka) — a szybkie parsowanie raportuje liczbę obiektów („Detected: 7 mappings, 42 transformations"). Każdy plik jest pokazany jako kafelek ze swoją ikoną, nazwą, rozmiarem, plakietką typu, paskiem postępu przesyłania oraz przyciskiem Remove. Gdy dodano więcej niż jeden plik, wskaźnik wsadowy informuje, że wszystkie pliki zostaną przeanalizowane razem. Przycisk Analyze with AI uaktywnia się, gdy co najmniej jeden plik jest w stanie ready.
Krok 2 — Analiza AI
Pasek ogólnego postępu o pełnej szerokości oraz pionowa lista kontrolna czterech etapów — Parsing Source Files → Analyzing Objects → Checking Compatibility → Generating Report — gdzie każdy kafelek etapu pokazuje stan oczekujący / w toku (spinner) / ukończony (zielony znacznik). Działający na żywo, przewijalny Analysis Feed w stylu terminala strumieniuje kolorowane komunikaty (info/sukces/ostrzeżenie/błąd) w miarę jak silnik przetwarza kolejne przepływy. Kreator automatycznie przechodzi do Kroku 3, gdy analiza osiągnie 100%.
Krok 3 — Raport zgodności
Cztery karty podsumowania w górnej części — Total Objects, Auto-Convertible (liczba i %), Manual Required (liczba i %) oraz Estimated Effort (godziny). Poniżej nich:
- Tabela Oceny przepływów — jeden wiersz na przepływ z plakietką złożoności (Low / Medium / Medium-High / High / Very High), liczbą obiektów, procentem automatycznej konwersji, szacowaną pracochłonnością w godzinach oraz systemami źródłowymi/docelowymi.
- Object Type Breakdown — poziomy słupkowy wykres skumulowany, część automatycznie konwertowalna w kolorze indygo, część ręczna w bursztynowym; typy obiektów z automatyczną konwersją poniżej 50% są oznaczane na czerwono.
- Panel Risk Items — zwijane karty z kodem wagi (high/medium/low), każda z opisem, dotkniętym przepływem oraz rozwijaną rekomendacją.
Przycisk Start AI Conversion przenosi na Ekran 2.
Co dzieje się w tle
Frontendowy api/migration.ts wysyła przesyłanie typu multipart do punktu końcowego /upload silnika migracji, który uruchamia wszystkie etapy konwersji w sposób wbudowany. Parsery silnika używają lxml dla XML/YXMD oraz autorskiego parsera tekstowego dla DataStage; limit max_upload_size_mb wynosi 50 MB.
Ekran 2 — Pulpit konwersji AI
Trasa: /migration/conversion — punkt wejścia src/pages/migration/ConversionDashboardPage.tsx.
+------------------------------------------------------------------+
| [Total Objects 150] [Auto-Converted 127 (85%)] [Manual 23 (15%)] |
+------------------------------------------------------------------+
| Conversion Status by Object Type (table) |
+------------------------------------------------------------------+
| Converted Pipeline List (cards) | Confidence Distribution chart |
+------------------------------------------------------------------+
Trzy karty podsumowania otwierają ekran — Total Objects, Auto-Converted (z zielonym pierścieniem), Manual Required (z bursztynowym pierścieniem) — plus średnia pewność.
Tabela Conversion Status by Object Type rozbija wyniki na poszczególne typy transformacji (Source Qualifier, Expression, Lookup, Filter, Joiner, Custom Java, Router, Other): skonwertowane/łącznie, współczynnik konwersji z wbudowanym paskiem, średnia pewność oraz status complete / partial / flagged. Oznaczone wiersze (takie jak Custom Java polegające na autorskich bibliotekach Siebel CDMA) otrzymują czerwoną lewą krawędź, czerwone zabarwienie wiersza, ikonę ostrzeżenia oraz linię z powodem oznaczenia.
Converted Pipeline List pokazuje kafelek dla każdego skonwertowanego potoku danych — nazwa oryginalna → skonwertowana (np. df_sap_biuro_sprzedazy_plk.yaml), okrągła plakietka pewności (zielona ≥90, bursztynowa 70–89, czerwona <70), liczby obiektów, pigułki systemów źródłowych/docelowych, plakietka statusu oraz odnośnik Open in Design Studio.
Histogram Confidence Distribution grupuje potoki danych według zakresu pewności (0-50%, 50-70%, 70-85%, 85-95%, 95-100%).

Przepływy Alteryx konwertują się w taki sam sposób jak PowerCenter: silnik parsuje plik .yxmd do wspólnego WorkflowAST, silnik reguł mapuje każde narzędzie na węzeł DataFlow, a wszystko bez reguły lub poniżej pewności 0,60 trafia do konwertera LLM. Specyficzne dla Alteryx konstrukcje, takie jak makra środowiskowe (GetEnvironmentVariable używane do routingu PROD/Test), są oznaczane do ręcznego przeglądu zamiast automatycznej konwersji i pojawiają się jako wiersze z czerwoną ramką w tabeli Conversion Status oraz jako Risk Items w Raporcie zgodności. Skonwertowany potok danych Alteryx pokazuje niebieską plakietkę typu źródła Alteryx, aby odróżnić go od pomarańczowej plakietki PowerCenter.
Co dzieje się w tle
Konwersja generuje potoki danych YAML DataFlow AI. YamlGenerator klasyfikuje węzły na źródła/transformacje/cele, buduje powiązania depends_on z krawędzi i wstrzykuje trzy domyślne kontrole jakości danych (row_count, null_percentage, duplicate) plus kontrole walidacji schematu dla poszczególnych ujść oraz kontrolę uzgadniania niskiej pewności dla każdego mapowania poniżej pewności 0,80.
Ekran 3 — Pakiet walidacji
Trasa: /migration/validation — punkt wejścia src/pages/migration/ValidationSuitePage.tsx.
Pakiet walidacji udowadnia parzystość danych między starszym źródłem a skonwertowanym potokiem danych DataFlow AI.
Pasek sterowania Test Runner u góry udostępnia Run All Tests i Re-run Failed, kropkę statusu (bezczynny / działający / ukończony) oraz tekst postępu. Następnie cztery karty podsumowania — Total Tests, Passed, Failed, Pass Rate.
Tabela porównania potoków danych wymienia każdy potok danych z jego systemami źródłowymi i docelowymi, liczbą wierszy źródła vs cel, flagą zgodności liczby wierszy, flagą zgodności sumy kontrolnej, liczbą różnic kolumn, czasem wykonania oraz statusem zaliczony/niezaliczony. Niezaliczone wiersze są zabarwione na czerwono z czerwoną lewą krawędzią i rozwijają się, ujawniając szczegóły niepowodzenia dla poszczególnych kolumn — nazwę kolumny, wartość oczekiwaną vs rzeczywistą, indeks wiersza oraz typ różnicy (value_mismatch, null_mismatch, type_mismatch lub missing_row).
Co dzieje się w tle
api/migration.ts wywołuje punkt końcowy /jobs/{id}/validate silnika, który uruchamia sześciokontrolowy pakiet walidacji — składnia YAML, bezpieczeństwo SQL (skanowanie pod kątem DROP TABLE/DATABASE, TRUNCATE, ALTER TABLE, EXEC, xp_cmdshell), pokrycie transformacji na poziomie co najmniej 50%, pewność na poziomie co najmniej 60%, kompletność węzłów źródła i ujścia oraz kontrole problemów mapowań.
Ekran 4 — Śledzenie postępów migracji
Trasa: /migration/progress — punkt wejścia src/pages/migration/ProgressTrackerPage.tsx.
Śledzenie postępów daje widok całej migracji na poziomie programu: ogólne fazy, tempo konwersji, harmonogram oraz nierozwiązane ryzyka. Jest to ekran, którego administrator platformy używa do raportowania statusu migracji, z pracochłonnością szacowaną przez model osobogodzin (0,25 godz. bazowo na mapowanie, 2,0 godz. na ręczny przegląd, 1,0 godz. na konwersję wspomaganą przez LLM, 0,5 godz. na testowanie, 4,0 godz. na integrację).
Ścieżka kliknięć — migracja starszego przepływu Informatica od początku do końca
- Otwórz
/migration/import. - Przeciągnij eksport PowerCenter (np.
wf_E112.XML) na strefę upuszczania. Kafelek pokaże pomarańczową plakietkę PowerCenter XML oraz wykrytą liczbę obiektów. - Kliknij Analyze with AI. Kreator przejdzie do Kroku 2; obserwuj czteroetapową listę kontrolną oraz strumień komunikatów parsowania, klasyfikacji i zgodności na żywo w kanale analizy.
- Po ukończeniu analizy kreator automatycznie przejdzie do Raportu zgodności. Przejrzyj cztery karty podsumowania, plakietki złożoności dla poszczególnych przepływów, wykres rozkładu typów obiektów oraz panel Risk Items — rozwiń pozycje o wysokiej wadze (takie jak transformacje Custom Java wymagające przepisania na Python UDF), aby przeczytać rekomendację.
- Kliknij Start AI Conversion — kreator przejdzie do
/migration/conversion. - Na Pulpicie konwersji AI sprawdź tabelę Conversion Status by Object Type. Oznaczone typy obiektów (czerwone) wymagają ręcznej uwagi; typy częściowe i ukończone są w większości zautomatyzowane.
- W Converted Pipeline List kliknij Open in Design Studio na kafelku potoku danych, aby sprawdzić lub naprawić wygenerowany potok danych YAML.
- Przejdź do
/migration/validationi kliknij Run All Tests, aby zweryfikować parzystość danych. - Przejrzyj Tabelę porównania potoków danych — rozwiń dowolny niezaliczony wiersz, aby przeczytać szczegóły niepowodzenia dla poszczególnych kolumn, napraw konwersję w Design Studio, a następnie kliknij Re-run Failed.
- Śledź ogólny status programu w
/migration/progress.
Mapa podstron migracji
| Podstrona | Trasa |
|---|---|
| Kreator importu | /migration/import |
| Pulpit konwersji AI | /migration/conversion |
| Pakiet walidacji | /migration/validation |
| Śledzenie postępów migracji | /migration/progress |
Dokumentacja API
| Obszar | Punkt końcowy / moduł |
|---|---|
| Przesyłanie i konwersja wbudowana | migration-engine POST /upload przez api/migration.ts |
| Lista zadań | GET /jobs |
| Status zadania | GET /jobs/{id}/status |
| Raport zadania | GET /jobs/{id}/report |
| Pobieranie skonwertowanego YAML | GET /jobs/{id}/download |
| Uruchomienie walidacji | POST /jobs/{id}/validate |
| Ponowne wyzwolenie konwersji | POST /jobs/{id}/convert |
Migration-engine to usługa FastAPI (port 8091) zamontowana pod /api/v1/migration i /api/migration. Wykorzystuje dopasowywanie wzorców oparte na regułach dla deterministycznych transformacji i przełącza się na Anthropic SDK dla złożonych transformacji. Skonwertowane potoki danych YAML są konsumowane bezpośrednio przez Design Studio.