2011-08-30 32 views
6

Estoy buscando una solución para importar todos los datos de IMDB en mi propia base de datos MySQL. He descargado todos los archivos de datos de IMDB de su página de inicio que están todos en el formato de archivo * .list (en Windows).IMDB a MySQL: inserte datos de IMDB en la base de datos MySQL

Quiero recuperar esa información e insertarla correctamente en mi base de datos MySQL para que pueda hacer algunas búsquedas de prueba y consulta.

Seguí una guía, pero aproximadamente la mitad me di cuenta de que era una guía de 2004 y la forma en que funcionan las cosas ahora no iba bien con las herramientas de hace siete años.

He navegado por la red para aplicaciones, php-scripts, python-script y lo que no se puede encontrar una solución, pero sin suerte. La herramienta W32 a la que se refieren IMDB tampoco funciona.

¿Hay alguien que conozca una solución o una forma de realizar esta tarea?

Respuesta

6

Hay algunos nice py script, que me ayudaron. Simplemente haga la conexión y ejecútelo. ~ 1 hora para evitar todo.

EDITAR: Usa this readme file para crear secuencias de comandos.

+1

Muchas gracias. Eso era justo lo que estaba buscando. Tomó aproximadamente 4 horas, pero ahora tengo una buena base de datos de 3GB con IMDB :-) – Mestika

1

en Ubuntu

1) instalar todos los paquetes requeridos.

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) Instalar 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) En MySQL, crear una base de datos "imdb", y concede todos los privilegios de "usuario" con la contraseña "contraseña".

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

4) Descargue todos los datos de 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) Cargue datos de IMDB en mysql (use myisam como motor de almacenamiento).

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

tomado de "Import IMDb Data Set from Plain Text Files To MySQL Database" con algunas correcciones menores.

0

Los cambios en IMDbPY y el formato de archivos de datos de IMDb significa que las respuestas existentes ya no funcionan (a partir de enero de 2018).

Estoy usando Ubuntu 17.10 y MariaDB 10.1 (no MySQL, pero el siguiente también funcionará con MySQL).

cambios a IMDbPY

La última versión de IMDbPY es de 6,2, que es implementado en Python 3, y se han eliminado las dependencias de gcc y SQLObject. Además, el paquete de Python MySQL-python no está disponible para Python 3, por lo que instalamos mysqlclient en su lugar; vea abajo. (La API de mysqlclient es compatible con MySQL-python.)

Los cambios en el formato de archivos de datos de IMDb

Los cambios en el formato de los archivos de datos de IMDb fueron introducidos en diciembre de 2017, y IMDbPY 6.2 (la versión actual) aún no funciona con el nuevo formato de archivo. (Consulte this número de GitHub).

Hasta que esto no se solucione, utilice la versión más reciente de los datos de IMDd publicados en el formato anterior, que está disponible en ftp://ftp.fu-berlin.de/pub/misc/movies/database/frozendata/. Descargue todos los archivos *.list.gz (excluyendo los archivos de los subdirectorios).

nuevos pasos a seguir

  1. instalar Python 3 y paquetes requeridos:

    sudo apt install python3 
    pip3 install mysqlclient 
    
  2. En MariaDB, crear una base de datos imdb, y otorgan todos los privilegios a user con contraseña password.

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

    datos de IMDb
    wget https://github.com/alberanid/imdbpy/archive/6.2.zip 
    unzip 6.2.zip 
    cd imdbpy-6.2 
    python3 setup.py install 
    
  4. cargar en MariaDB:

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

Editar: Versión 6.2 de IMDbPY no crea las claves externas. Ver this problema de GitHub. Tendrá que utilizar una versión anterior de IMDbPY si necesita crear claves externas, pero también hay problemas informados con la generación de claves externas en versiones antiguas (consulte el problema relacionado de GitHub).

Actualización: Tardó 4.5 horas para importar, y no tuve problemas para usar tablas InnoDB.

Editar: Si desea utilizar la versión 6.2 de IMDbPY y requiere claves externas, deberá agregarlas manualmente a la base de datos después de que se haya generado. Se requiere una cantidad muy pequeña de limpieza de los datos antes de poder agregar claves externas. Esta limpieza y las claves externas que deben agregarse se describen en el número this de GitHub.

Cuestiones relacionadas