2011-08-30 13 views
6

Szukam rozwiązania do importowania wszystkich danych IMDB do mojej własnej bazy danych MySQL. Pobrałem wszystkie pliki danych IMDB ze strony głównej, które znajdują się w formacie * .list (w systemie Windows).IMDB do MySQL: Wstaw dane IMDB do bazy danych MySQL

Chcę pobrać i tę informację i wstawić ją poprawnie do mojej bazy danych MySQL, dzięki czemu mogę wykonać kilka wyszukiwań testowych i zapytań.

Śledziłem przewodnika, ale około połowy zdałem sobie sprawę, że był to przewodnik po 2004 roku i sposób, w jaki działa teraz, nie pasował do narzędzi sprzed siedmiu lat.

Przeglądałem sieć dla aplikacji, skryptów php, skryptów python i czego nie można znaleźć, ale bez powodzenia. Nie działa także narzędzie W32, do którego odwołują się same pliki IMDB.

Czy jest ktoś, kto zna rozwiązanie lub sposób wykonania tego zadania?

Odpowiedz

6

Jest pewna nice py script, pomogła mi czarownica. Po prostu połącz i uruchom. ~ 1 godz., Aby obejść wszystko.

EDYCJA: Użyj this readme file do tworzenia skryptu.

+1

Wielkie dzięki. Tego właśnie szukałem. Zajęło to około 4 godzin, ale teraz mam ładną bazę 3GB z IMDB :-) – Mestika

1

Na ubuntu

1) Zainstaluj wszystkie wymagane pakiety.

sudo apt-get install -y gcc python python-dev libssl-dev libxml2-dev libxslt1-dev zlib1g-dev python-setuptools python-pip 
easy_install -U SQLObject 
pip install MySQL-python 

2) Zainstaluj IMDBPY.

cd [IMDBPY_parent_directory] 
wget http://prdownloads.sourceforge.net/imdbpy/IMDbPY-5.1.tar.gz 
tar -xzf IMDbPY-5.1.tar.gz 
cd IMDbPY-5.1 
python setup.py install 

3) w MySQL, tworzenie bazy danych "imdb" i udzielić wszystkie uprawnienia do "user" z hasłem "hasło".

CREATE DATABASE imdb; 
GRANT ALL PRIVILEGES ON imdb.* TO 'user'@'localhost' IDENTIFIED BY 'password'; 
FLUSH PRIVILEGES; 

4) Pobierz wszystkie dane IMDB.

mkdir [imdb_data_directory] 
cd [imdb_data_directory] 
wget -r --accept="*.gz" --no-directories --no-host-directories --level 1 ftp://ftp.fu-berlin.de/pub/misc/movies/database/ 

5) Załaduj dane IMDB do mysql (użyj myisam jako silnika pamięci masowej).

cd [IMDBPY_parent_directory]/IMDbPY-5.1/bin 
python imdbpy2sql.py -d [imdb_data_directory] -u 
'mysql://user:[email protected]/imdb' --mysql-force-myisam 

zapożyczone z "Import IMDb Data Set from Plain Text Files To MySQL Database" z niewielkimi poprawkami.

0

Zmiany w formacie plików danych IMDbPY i IMDb oznaczają, że istniejące odpowiedzi przestały działać (stan na styczeń 2018 r.).

Używam Ubuntu 17.10 i MariaDB 10.1 (nie MySQL, ale poniższe będą również działać z MySQL).

Zmiany IMDbPY

Najnowsza wersja IMDbPY wynosi 6.2, który jest zaimplementowany w Pythonie 3, a także uzależnienia od gcc i SQLObject zostały usunięte. Ponadto pakiet Python MySQL-python nie jest dostępny dla Pythona 3, więc zamiast tego instalujemy mysqlclient; patrz poniżej. (Interfejs API z mysqlclient jest kompatybilny z MySQL-python.)

Zmiany w IMDb pliki danych formatu

Zmiany do formatu plików danych IMDb zostały wprowadzone w grudniu 2017 roku, a IMDbPY 6.2 (aktualna wersja) nie ma jeszcze współpracować z nowym format pliku. (Zobacz: this Wydanie GitHub.)

Do tego czasu należy użyć najnowszej wersji danych IMDd opublikowanych w starym formacie, który jest dostępny pod adresem ftp://ftp.fu-berlin.de/pub/misc/movies/database/frozendata/. Pobierz wszystkie pliki *.list.gz (z wyjątkiem plików z podkatalogów).

Nowe kroki do naśladowania

  1. zainstalować Python 3 i wymagane pakiety:

    sudo apt install python3 
    pip3 install mysqlclient 
    
  2. W MariaDB, stworzyć bazę imdb i udzielać wszystkie przywileje user z hasło password.

    CREATE DATABASE imdb; 
    GRANT ALL PRIVILEGES ON imdb.* TO 'user'@'localhost' IDENTIFIED BY 'password'; 
    FLUSH PRIVILEGES; 
    
  3. Get IMDbPY 6.2:

    wget https://github.com/alberanid/imdbpy/archive/6.2.zip 
    unzip 6.2.zip 
    cd imdbpy-6.2 
    python3 setup.py install 
    
  4. ładowania danych IMDB do MariaDB:

    cd bin 
    python3 imdbpy2sql.py -d [imdb_dataset_directory] -u 'mysql://user:[email protected]/imdb' 
    

Edit: Wersja 6.2 IMDbPY nie tworzy klucze obce. Zobacz wydanie this GitHub. Będziesz musiał użyć starszej wersji IMDbPY, jeśli chcesz utworzyć klucze obce, ale są również zgłaszane problemy z generowaniem kluczy obcych w starych wersjach (patrz połączony problem z GitHubem).

Aktualizacja: Zajęto 4,5 godziny do zaimportowania i nie miałem problemów z używaniem tabel InnoDB.

Edytuj: Jeśli chcesz korzystać z wersji 6.2 IMDbPY i potrzebujesz kluczy obcych, musisz dodać je ręcznie do bazy danych po jej wygenerowaniu. Aby klucze obce mogły zostać dodane, wymagana jest bardzo niewielka ilość danych. To czyszczenie i klucze obce, które należy dodać, opisano w numerze this GitHub.