Przejdź do głównej zawartości

Odczyt z pliku CSV i zapis do bazy


W niniejszym rozdziale zostały przedstawione następujące działania: wczytanie pliku CSV do bazy, podgląd wczytanych danych, przygotowanie danych, wykonanie niezbędnych mapowań, sklasyfikowanie rekordów oraz wstawianie danych do tabeli istniejącej na podstawie założonych kryteriów.

image

Plik wejściowy CSV: REGON, NIP, nazwa, data zapisu, kwota salda, kwota limitu, ID hurtowni, stan, grupa, waluta.

W pliku znajduje się baza firm, którą będziemy wczytywać do tabeli w bazie danych FIRMY

Utworzenie prostego pakietu i podgląd wczytanych danych z pliku płaskiego rekordów​

  1. Wybierz menu Plik, a następnie Nowy>pakiet przetwarzania.
  2. Zostanie wyświetlony edytor pakietu oraz zakładka Przybornik wraz z bloczkami do tworzenia graficznego przedstawiania pakietu.
  3. Przeciągnij na edytor bloczek Wczytanie z pliku CSV.
  4. Przejdź do szczegółów bloczka - kliknij dwukrotnie w bloczek lub przejdź na zakładkę Szczegóły.
  5. Wczytaj plik i w wyświetlonym oknie wybierz Tak.

image

  1. Przejdź na zakładkę Tabela, zaznacz wiersz z nagłówkiem i wybierz przycisk Wyznacz strukturę danych na podstawie wiersza. Na panelu Schematy można zobaczyć jak wygląda wynikowy schemat po wczytaniu danych z pliku CSV.

image

  1. Dodaj bloczek Podgląd danych (bloczek znajduje się w kategorii Narzędzia projektowe) i połącz go z bloczkiem Wczytywanie z pliku CSV.
  2. Uruchom pakiet, wciskając klawisz F5 lub z menu górnego - Uruchom.
  3. Po uruchomieniu pakietu można podglądnąć wyniki wykonania, otwierając edytor dla bloczka Podgląd danych. Raport przetwarzania można obejrzeć wybierając 3 zakładkę w oknie głównym aplikacji – Raport.

Przygotowanie danych do zapisu do bazy​

Przed zapisaniem wczytanych danych z pliku do bazy należy wykonać niezbędne modyfikacje:

  • zmiana typów zmiennych na zgodne z typami kolumn tabeli Firmy z bazy danych,
  • dokonanie odpowiedniej konfiguracji domyślnej polityki konwersji: tekst --> liczba stałopozycyjna, data.
  • dodanie w szczegółach konwersji . w opcji Separator dziesiętny.
  • usunięcie znaków - z pola NIP – Funkcja Replace(NIP, ”-”,””)
  1. Przeciągnij bloczek Odwzorowanie w miejscu i połącz go z bloczkiem Podgląd danych.
  2. Przejdź do szczegółów bloczka.
  3. Zaznacz na schemacie danych pole kwota_salda, kliknij prawym i z menu kontekstowego wybierz opcję Ustaw wartość>Parser.
  4. Kliknij w dodaną adnotację do pola i z listy wybierz typ konwersji jakiego chcesz użyć. W tym przypadku jest to tekst>decimal.

image

  1. Następnie kliknij w przycisk ... obok dodanego parseru i w szczegółach wskaż separator dziesiętny jako . (kropka) gdyż taki separator został użyty w pliku wejściowym CSV.

image

  1. W analogiczny sposób dodaj parser i separator dla pola kwota_limitu
  2. Dodaj parser dla pola data_zapisu - Tekst>Data/czas oraz dla pola REGON - Tekst>decimal.
  3. Usuń znaki - z pola NIP Kliknij na polu i z menu kontekstowego wybierz opcję Ustaw wartość>Wyrażenie.
  4. Wybierz przycisk ... obok dodanej adnotacji aby przejść do edytora wyrażeń lub wpisz wyrażenie poniżej na panelu Szczegóły.
  5. Użyj funkcji Replace (NIP, "-", "") Funkcja ta zamienia w polu NIP znak - na brak znaku.

image

  1. Możesz opcjonalnie dodać bloczek Podgląd danych i uruchomić pakiet aby zobaczyć wykonane modyfikacje.

image

Wczytywanie danych z pliku do bazy​

  1. Dodaj bloczek Zapis do bazy danych (kategoria Bloczki wyjściowe).
  2. Przejdź do szczegółów bloczka i utwórz mapowanie, które zapisze dane z pliku do tabeli Firmy.
  3. W tym celu zaznacz rekord na schemacie danych, wybierz opcję zmiany nazwy i zacznij wpisywać Firmy, system automatycznie podpowie do jakiej tabeli chcemy wczytać dane, wybierz tabelę z listy.

image

  1. Oznacz rekord Firmy adnotacją Zapis rekordu do bazy danych (z menu kontekstowego wybierz opcję Zmień/użyj rekordu). Możesz tez wybrać operacje bazodanową z paska menu.

image

  1. Po wykonaniu akcji na drzewie powinny pojawić się nowe pola sugerujące jakie dane powinny znaleźć się w bazie danych.
  2. Po dodaniu adnotacji wybierz jaka operacja bazodanowa ma zostać wykonana. W tym przypadku Insert.

image

  1. Na schemacie danych mamy pola pochodzące z naszego pliku CSV oraz pola wyszarzone, które znajdują się w tabeli Firmy w bazie danych.
  2. Dodaj klucz główny – klikamy na sugerowane pole F_ID i z menu kontekstowego wybierz Popraw>Dodaj element, a następnie dodaj adnotację Klucz główny.

image

  1. Przy użyciu metody drag&drop lub korzystając z zakładki Drugi widok przenosimy istniejące pola na sugerowane pola wybierając z menu opcję Zmień nazwę lub Dostosuj wszystko.

image

  1. Uruchom pakiet. Dane z pliku CSV powinny zostać zapisane do tabeli w bazie danych.

Rozszerzenie pakietu o klasyfikację rekordów​

  1. Opcjonalnie możesz rozszerzyć pakiet używając bloczka Klasyfikacja i ustawić dodatkowe warunki dla wczytywanych danych.
  2. Przeciągnij bloczek Klasyfikacja i połącz go z bloczkiem Odwzorowanie w miejscu a przed bloczkiem Zapis do bazy danych.
  3. Bloczek Klasyfikacja posiada 3 porty wyjściowe. Klasyfikacja rekordów odbywa się poprzez uwarunkowanie przypisania wyników konkretnego zapytania do poszczególnych portów poprzez wprowadzenie wyrażenia.
  4. Przejdź na szczegóły bloczka i zdefiniuj warunki dla poszczególnych wyjść.
  5. W naszym przypadku zakładamy, że do bazy chcemy zapisywać te dane z pliku, dla których pole REGON jest uzupełnione. W takim przypadku w sekcji Wyjście 1 zdefiniuj wyrażenie !IsNullOrEmpty(REGON) Z zakładki Schematy możesz przeciągnąć pole REGON do wyrażenia.

image

  1. Przejdź na obszar roboczy i połącz bloczek Klasyfikacja z istniejącym już bloczkiem zapisu do bazy danych do portu wyjściowego 1.
  2. Teraz możesz określić co stanie się z pozostałymi rekordami, które nie zostaną zapisane do bazy (nie będą posiadały wypełnionego pola REGON) i w trakcie przetwarzania zostaną wyprowadzone wyjściem 2.
  3. W zależności od tego co chcesz uzyskać, możesz te błędne rekordy zapisać do innej bazy lub do pliku CSV, Excel itp lub dołączyć bloczek Kosz, który utylizuje błędne rekordy.

image

  1. Jeżeli chcesz zapisywać błędne rekordy to zamiast bloczka Kosz dodaj bloczek wyjściowy służący do zapisu pliku lub przeciągnij na obszar roboczy bloczek Zbieracz błędów.
  2. Bloczek ten gromadzi błędy ze wszystkich bloczków danej fazy w tym z bloczka Kosz.
  3. Następnie dodaj bloczek wyjściowy Prosty plik XML i połącz go z bloczkiem Zbieracz błędów. Dzięki temu błędne wpisy zostaną zapisane do pliku XML.

image

  1. Niezbędne jest podanie lokalizacji wczytywanego pliku CSV oraz miejsca zapisu pliku XML z błędnymi wpisami.

image

  1. W naszym przypadku w wyniku przetwarzania do bazy zostało zapisanych 38 rekordów a do kosza i tym samym do pliku XML trafiły 2 rekordy.

image

Zobacz również​

Odczyt z bazy i zapis danych do pliku

Zapis rekordów do bazy z określonymi warunkami