Import

Laboratorium Baz Danych SQL*Loader Export/Import Opracowała: Mgr inż. Aleksandra Werner Laboratorium baz danych - SQL*Loader, Export, Import 3 1...
17 downloads 0 Views 364KB Size
Laboratorium Baz Danych

SQL*Loader Export/Import

Opracowała: Mgr inż. Aleksandra Werner

Laboratorium baz danych - SQL*Loader, Export, Import

3

1. SQL*Loader Przy pomocy narzędzia SQL*Loader możliwe jest przenoszenie danych z plików zewnętrznych do tabel bazy danych Oracle’a. Uruchomienie następuje po podaniu w linii komend polecenia: sqlload control=‘‘ [] Podczas pracy, SQL*Loader produkuje trzy rodzaje plików: • śladowy (ang. log file), w którym zapisywane są informacje o przebiegu ładowania, • ze złymi wierszami (ang. bad file), w którym są umieszczane wiersze nie załadowane ze

względu na niepoprawność danych, • z wierszami pominiętymi (ang. discard file), które nie mogły być wstawione do bazy,

ponieważ nie zostały spełnione żadne kryteria wstawienia.

1.1.Tryby pracy SQL*Loader’a Ścieżka bezpośrednia jest wykonywana tylko wtedy, gdy w linii komend parametr DIRECT jest ustawiony na TRUE. Praca z wykorzystaniem ścieżki bezpośredniej jest szybsza niż w przypadku zastosowania ścieżki konwencjonalnej ponieważ nie są używane żadne odwołania SQL Gdy jeden blok zostaje wypełniony, inne -puste- bloki są wypełniane, co również poprawia wydajność ładowania. W czasie pracy nie są wykonywane zapisy w plikach dziennikach. Ścieżka konwencjonalna jest ścieżką domyślną. Do załadowania danych do tabeli używana jest SQL -owa komenda INSERT oraz bufor budowanej w trakcie ładowania tablicy wiązania (ang. bind array). Używając ścieżki konwencjonalnej, SQL*Loader współzawodniczy z innymi procesami Oracle’a o zasoby bazy co powoduje spowolnienie pracy.

1.2. Plik sterujący - polecenia Żeby rozpocząć pracę, SQL*Loader wymaga dwóch typów plików wejściowych: pliku z danymi do załadowania i pliku sterującego, opisującego dane. W skład pliku sterującego wchodzą: komentarze (poprzedzone znakami --), opcje oraz polecenia: USERID wyspecyfikowanie nazwy użytkownika/hasło (w przypadku pominięcia parametru w linii komend) INFILE wskazanie, w jakim pliku są dane do ładowania (jeżeli są w pliku sterującym po frazie BEGIN DATA, wówczas po słowie INFILE umieszczany jest znak *) INTO TABLE wskazanie, które tabele zostaną załadowane danymi REPLACE usuwa istniejące wiersze tabeli i ładuje na ich miejsce nowe

4

Laboratorium baz danych - SQL*Loader, Export, Import

APPEND INSERT

-

rozbudowuje tabelę, dodając do niej nowe wiersze ładuje dane tylko do pustej tabeli (jeżeli tabela nie będzie pusta, to wystąpi błąd) LOAD DATA informacja o niezależności między danymi a kolumnami w tabeli (tabelach) CONCATENATE - ilość fizycznych rekordów składanych w jeden rekord logiczny, który zostanie wstawiony do bazy ROWS określenie momentu wystąpienia punktu zachowania CONTINUE LOAD liczba rekordów do przeskoczenia FIELDS TERMINATED BY znak oddzielający dane mające wejść w skład poszczególnych kolumn ENCLOSED BY - znak (-i), będący ogranicznikiem pól tekstowych BAD FILE wyspecyfikowanie nazwy zbioru, w którym znajdą się złe dane TRAILING NULLCOLS ciąg spacji nie jest ładowany do tabeli jako odrębne kolumny z wartościami NULL BEGIN DATA słowo kluczowe, będące nagłówkiem dla danych przeznaczonych do ładowania, umieszczonych bezpośrednio w pliku sterującym

1.3. Opcje linii komend W linii komend mogą się pojawić następujące opcje: USERID1 CONTROL LOG BAD DISCARD DATA DISCARDMAX

1

SKIP1 LOAD

-

ERRORSr

-

ROWS 1 BINDSIZE SILENT ładowania DIRECT PARFILE

-

wyspecyfikowanie nazwy użytkownika/hasło wyspecyfikowanie nazwy pliku sterującego wyspecyfikowanie nazwy pliku śladowego wyspecyfikowanie nazwy pliku ze złymi wierszami wyspecyfikowanie nazwy pliku z wierszami pominiętymi wyspecyfikowanie nazwy pliku z danymi do załadowania maksymalna ilość odrzuconych wierszy, nie powodująca przerwania ładowania danych ilość wierszy do pominięcia ilość rekordów (logicznych), które zostaną załadowane zewnętrznymi danymi dopuszczalna ilość błędów nie przerywających procesu ładowania określenie momentu wystąpienia punktu zachowania rozmiar tablicy wiązania zablokowanie kierowania komunikatów na ekran podczas

-

bezpośrednia ścieżka ładowania wyspecyfikowanie nazwy pliku z parametrami

polecenie może pojawić się albo w linii komend albo w pliku sterującym 4

Laboratorium baz danych - SQL*Loader, Export, Import

5

1.4. Skrót informacji o Loaderze

1. 2.

Loader: ładuje dane: do wielu tabel w tym samym przebiegu z wielu plików źródłowych różnych typów

Fizyczne rekordy mogą być: ƒ składane w 1 logiczny rekord, który jest wstawiany do bazy (CONTINUEIF, CONCATENATE) np. jeżeli mam 2 wiersze, a na końcu ostatniego „,” to piszę: CONTINUEIF LAST=”,” – z dwóch fizycznych robi 1 logiczny lub: CONCATENATE 2 ƒ rozbijane na wiele rekordów fizycznych np. 1 fizyczny rekord podzielić na 2 logiczne (pierwsze 4 wart. do tabeli prac): INTO TABLE prac WHEN nr_proj != ‘ ‘ (nrp POSITION(1:4),....) INTO TABLE proj WHEN nr_proj != ‘ ‘ (nrp POSITION(1:4),....) ƒ filtrowane ƒ ładowane selektywnie (WHEN) Loader może generować w kolumnach: ƒ unikalne sekwencje liczbowe (klauzula SEQUENCE – funkcja SEQUENCE(MAX, .. ) generuje unikalne wartości, znajdując bieżącą wartość maksymalną w kolumnie i inkrementując ją dla każdego wstawionego wiersza) ƒ aktualną datę (SYSDATE) ƒ wartości stałe (CONSTANT) ƒ numery rekordów (RECNUM)

Pliki SQL*Loadera: wymagane

1. 2. 3. 4.

5.

sterujący (control file) – opisuje, jak interpretować plik WE z danymi z danymi (data file) – domyślne rozszerzenie .DAT śladowy (log file) – musi być dostępny, aby ładowanie mogło się odbyć; są tu informacje o przebiegu ładowania wierszy odrzuconych (bad file) – tu wiersze są zapisane w formacie łądowania; mogą zostać poprawione i użyte jako plik WE Tu trafiają dane z: c niewłaściwym formatem wejściowym (np. „ALA -Æ brak „) d nieunikalną wartością klucza e pola wymagające wartości pustej g powodujące błąd Oracle’a wierszy pominiętych (discard file) – gdy dane nie spełniają kryteriów określonych klauzulą WHEN; tu są szczegóły o wszystkich pominiętych wierszach

5. Generowane na żądanie

6

Laboratorium baz danych - SQL*Loader, Export, Import

Ścieżka konwencjonalna

Ścieżka bezpośrednia

Domyślna

tworzy bloki danych, które już są w formacie Oracle’owych bloków danych

używa SQL-owej komendy INSERT i bufora budowanej tablicy wiązania (bind array) do załadowania danych W macierzy wiązania są umieszczane wiersze (np. 100) czytane za jednym razem

nie używa SQL-owej komendy INSERT do wstawiania bloków do bazy

może spowalniać ładowanie

jest szybsza od konwencjonalnej

konkuruje z innymi zasobami Oracle’a o zasoby bazy

Generowane bloki są bezpośrednio zapisywane do bazy danych

generowane są dodatkowe nagłówki jako komendy SQL-owe, następnie wysyłane do Oracle’a i przetwarzane

używa procedur zarządzania przestrzenią do uzyskania następnego obszaru*

czeka na wypełnienie bufora danymi lub na koniec danych

wymusza zastosowanie niektórych więzów integralności na wierszach tabeli (UNIQUE< PRIMARY, NULL) – klauzula REENABLE w INTO TABLE

używane są tylko puste bloki

nie są wykonywane zapisy w plikach dziennika

Kiedy używać? *

Wskaźnik HIGH_WATER_MARK jest maksymalną ilością przestrzeni, jaką baza użyła dla tabeli

Kiedy ładuje się indeksowaną tabelę, która musi pozostać dostępna Kiedy ładuje się nieindeksowaną tabelę, która musi pozostać dostępna dla wstawień/uaktualnień Kiedy ładowanie przez SQL*Net stosunkowo małych ilości wierszy do dużych indeksowanych tabel

Typy danych: ° °

INTEGER EXTERNAL DECIMAL EXTERNAL 6

Laboratorium baz danych - SQL*Loader, Export, Import

7

° DECIMAL(5,2) ° CHAR Identyfikują typ danych poszczególnych pól w zbiorze, a nie odpowiadających im kolumn w tabeli wyspecyfikowanej po INTO TABLE

Komenda: SQLLDR USERID=... CONTROL=...CTL SKIP=135 ROWS=1000 (ilość wierszy wstawianych)

2. Export/ Import Narzędzia: Export i Import są wykorzystywane do wykonywania operacji eksportu/importu danych np. podczas tworzenia kopii zapasowych. Zbiory eksportowane są zapamiętywane (zachowywane) w formacie binarnym Oracle’a (tylko!) i mogą zostać przeczytane jedynie przy pomocy narzędzia Import. Do dyspozycji administartora są trzy tryby eksportu: ⇒ TABLE - dane są eksportowane do niesklastrowanej tabeli ⇒ USER - eksportowane są wszystkie obiekty schematu użytkownika ⇒ FULL DATABASE - eksportowana jest cała baza danych (trzeba mieć przywilej EXP_FULL_DATABASE) typ przyrostowy typ kumulacyjny typ pełny Sposób wywołania programu eksportującego tabele może przyjąć jedną z podanych niżej form: • exp help=y pojawia się ekran pomocy z opisanymi komendami • exp userid/passwd praca w trybie interakcyjnym • exp userid/passwd parfile=‘‘ W pliku z parametrami mogą się m.i. znaleźć następujące polecenia: USERID wyspecyfikowanie nazwy użytkownika inicjującego eksport FULL czy praca w trybie FULL DATABASE FILE wyspecyfikowanie nazwy pliku, do którego są eksportowane dane GRANTS eksport przywilejów INDEXES eksport indeksów CONSTRAINTS - eksport więzów integralności TABLES lista tabel do wyeksportowania

8

Laboratorium baz danych - SQL*Loader, Export, Import

BUFFER ROWS LOG

-

FEEDBACK -

maksymalna liczba rzędów w tablicy eksport rzędów tabeli wyspecyfikowanie nazwy zbioru, do którego odsyłane są komunikaty po wyeksportowaniu ilu rzędów ma pojawić się na ekranie znak .

Program importujący wyeksportowane wcześniej dane, jest wywoływany w sposób analogiczny do opisanych powyżej: • imp help=y pojawia się ekran pomocy z opisanymi komendami • imp userid/passwd praca w trybie interakcyjnym • imp userid/passwd parfile=‘‘ 2.1. Przyrostowy typ eksportu Przy wykorzystaniu eksportu kumulacyjnego, wyeksportowane zostaną tylko te tabele (i związane z nimi indeksy), które uległy modyfikacji. Sposób wywołania: exp userid/passwd inctype incremental

Zbiór eksportowy

Baza danych Tablica 1

Tablica 3

Tablica 5

Indeks 1

Tablica 4

Indeks 5

Tablica 1 Indeks 1 Tablica 3

Tablica 2

Indeks 4

Tablica 6 Tablica 6

obiekty zmodyfikowane

8

Laboratorium baz danych - SQL*Loader, Export, Import

9

2.2. Kumulacyjny typ eksportu Kumulacyjny typ eksportu jest kombinacją eksportów przyrostowych z kolejnych chwil czasu (t1 t2 t3 .. tn). Sposób wywołania: exp userid/passwd inctype cumulative

Baza danych Tablica 1

Tablica 3

Tablica 5

Indeks 1

Tablica 4

Indeks 5

Zbiór eksportowy Tablica 1 Indeks 1 Tablica 3

Tablica 2

Indeks 4

Tablica 6

obiekty zmodyfikowane w chwili t1

Baza danych Tablica 1

Tablica 3

Tablica 5

Indeks 1

Tablica 4

Indeks 5

Zbiór eksportowy Tablica 1

Indeks 1 Tablica 3

Tablica 2

Indeks 4

Tablica 6 Tablica 4

obiekty zmodyfikowane w chwili t2

Indeks 4 Tablica 6

10

Laboratorium baz danych - SQL*Loader, Export, Import

2.3. Pełny typ eksportu W pełnym trybie eksportu eksportowane są wszystkie obiekty bez względu na to czy uległy modyfikacji czy też nie. Sposób wywołania: exp userid/passwd inctype complete

10

Suggest Documents