Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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:
- load data
- infile ‘nazwa_pliku.csv’
- append INTO TABLE NAZWA_TABELI
- fields terminated BY ‘,’
- (KOLUMNA1, KOLUMNA2,…,KOLUMNA3)
- 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')".
- 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:
- sqlldr login/haslo control=plik_kontrolny.txt
- 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