Advertisement
Guest User

Untitled

a guest
Apr 30th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. W celu ładowania przygotowanych danych w plikach .csv korzystamy z narzędzia DOłączonego automatycznie DO bazy Oracle 11g o nazwie SQLloader. W celu skorzystania z tego narzędzia należy przygotować sobie uprzednio odpowiednie pliki, które nazywamy jako pliki kontrolne. W naszym przypadku mają one rozszerzenie .txt, lecz mogą BYć TO również inne rozszerzenia tj. np. .ctl. Dla każdej tabeli przygotowaliśmy pliki kontrolne. Ogólna struktura pliku kontrolnego:
  2. load data
  3. infile ‘nazwa_pliku.csv’
  4. append INTO TABLE NAZWA_TABELI
  5. fields terminated BY,
  6. (KOLUMNA1, KOLUMNA2,,KOLUMNA3)
  7.      W miejsce nazwa_pliku.csv wstawiamy nazwę pliku wygenerowanego przez program generujący dane opisany w poprzednim punkcie. W miejscu NAZWA_TABELI wpisujemy nazwę tabeli (wymiaru lub faktu), która już istnieje w bazie Oracle dla danego użytkownika. W następnej linii definiujemy, czy pola w pliku .csv są rozdzielane przecinkami, średnikami, itp.  W ostatniej linii określamy DO jakich kolumn tabeli mają BYć przyporządkowane poszczególne dane z pliku .csv. Większość plików wygląda podobnie, różni się tylko nazwami plików czy tabel oraz nazwami kolumn. W przypadku ładowania daty DO danej kolumny zastosowaliśmy zapis: DATA "TO_DATE(:data, 'RRRR/MM/DD')". Dzięki temu formatujemy datę DO określonego przez nas wzorca (tu: RRRR/MM/DD, czyli np. 2017/04/30), aby nie wystąpił konflikt pomiędzy datą zawartą w pliku .csv a domyślnym formatem stosowanym w bazie danych. W przypadku ocen postępujemy podobnie stosując zapis: OCENA "TO_NUMBER(:OCENA,'9.9')".  
  8.      Po przygotowaniu plików kontrolnych można przejść DO pisania skryptu ładującego dane. Skrypt ładujący dane został umieszczony w pliku .bat, który umożliwia poprzez jego uruchomienie automatyczne ładowanie danych DO wszystkich wskazanych tabel. Ogólna postać polecenia ładującego dane:
  9. sqlldr login/haslo control=plik_kontrolny.txt
  10.      W miejscu loginu oraz hasła podajemy dane logowania DO naszej bazy Oracle. Następnie podajemy ścieżkę DO pliku kontrolnego lub samą jego nazwę, jeśli plik .bat znajduje się w katalogu bieżącym. Aby poprawnie załadować dane musimy podać taką liczbę tych komend, ile posiadamy tabel a tym samym plików kontrolnych. Po uruchomieniu takiego skryptu otrzymujemy informacje, ile rekordów zostało załadowanych DO danej tabeli wymiarowej lub tabeli faktów. Należy pamiętać, aby w skrypcie polecenia sqlldr podawać w odpowiedniej kolejności zgodnie z hierarchią tabel, czyli: podwymiar -> wymiar -> fakt, ponieważ tabele połączone są pomiędzy sobą więzami spójności tj. klucze obce.  Po załadowaniu danych tworzone są automatycznie pliki .LOG, w których mamy szczegółowe informacje na temat przebiegu procesu ładowania. W przypadku błędu tworzone są pliki .bad, w których znajdują się rekordy z pliku .csv, których ładowanie DO hurtowni się nie powiodło. Wtedy w pliku .LOG mamy informację, dlaczego operacja się nie powiodła i dla jakiego rekordu błąd wystąpił. Tak prezentuje się sposób ładowania danych, który my zastosowaliśmy pracując na bazie Oracle.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement