Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Załaduj ogromny plik csv do tabeli bazy danych Oracle za pomocą Pyspark

Pokażę Ci przykład pliku kontrolnego, którego używam do ładowania bardzo dużego pliku (120 milionów rekordów każdego dnia)

OPTIONS (SKIP=0, ERRORS=500, PARALLEL=TRUE, MULTITHREADING=TRUE, DIRECT=TRUE, SILENT=(ALL))
UNRECOVERABLE
LOAD DATA
CHARACTERSET WE8ISO8859P1
INFILE '/path_to_your_file/name_of_the_file.txt'
BADFILE '/path_to_your_file/name_of_the_file.bad'
DISCARDFILE '/path_to_your_file/name_of_the_file.dsc'
APPEND
INTO TABLE yourtablename
TRAILING NULLCOLS
(
COLUMN1 POSITION(1:4) CHAR
,COLUMN2 POSITION(5:8)  CHAR
,COLUMN3 POSITION(9:11) CHAR
,COLUMN4 POSITION(12:18) CHAR
....
....)

Kilka uwag

  • Zawsze ładowanie według pozycji jest szybsze niż przy użyciu ograniczników
  • Użyj opcji PARALLEL , MULTITHREADING i DIRECT aby zoptymalizować wydajność ładowania.
  • UNRECOVERABLE jest również dobrą radą, jeśli zawsze masz plik na wypadek konieczności odzyskania bazy danych, musisz ponownie załadować dane.
  • Użyj odpowiedniego zestawu znaków.
  • Klauzula TRAILING NULLCOLS mówi SQL*Loaderowi, aby traktował wszystkie względnie pozycjonowane kolumny, których nie ma w rekordzie, jako kolumny puste.
  • Pozycja oznacza, że ​​każdy wiersz zawiera dane bez ogranicznika, dzięki czemu znasz pozycję każdego pola w tabeli według długości.

AAAAABBBBBBCCCCC19828733UUUU

  • Jeśli Twój plik txt lub csv ma ​​separator pól, powiedzmy średnik, musisz użyć FIELDS DELIMITED BY

Jest on przechowywany w pliku kontrolnym, zwykle pliku tekstowym z rozszerzeniem ctl. Następnie wywołujesz z wiersza poleceń

sqlldr userid=youuser/[email protected]_string control=/path_to_control_file/control_file.ctl



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. oracle FOR LOOP nie wykonuje iteracji w SYS_REFCURSOR

  2. błąd nieprawidłowego znaku podczas wykonywania natychmiastowego

  3. PIVOT oparty na Oracle z grupą wielu kolumn

  4. Jak wybrać i zoptymalizować indeksy oracle?

  5. SQL Group By - liczenie rekordów na miesiąc/rok, błąd przy wstawianiu - NIE WAŻNY MIESIĄC