2011-08-30 25 views
6

मैं अपने आईएमडीबी डेटाबेस में सभी आईएमडीबी डेटा आयात करने का समाधान ढूंढ रहा हूं। मैंने अपने होमपेज से सभी आईएमडीबी डेटा फ़ाइलों को डाउनलोड किया है जो सभी फाइल प्रारूप * .list (विंडोज़ में) में हैं।आईएमडीबी से MySQL: MySQL डेटाबेस में IMDB डेटा डालें

मैं पुनर्प्राप्त करना चाहता हूं और वह जानकारी और इसे अपने MySQL डेटाबेस में सही ढंग से डालना चाहता हूं ताकि मैं कुछ परीक्षण और क्वेरी खोज कर सकूं।

मैंने एक गाइड का पालन किया लेकिन लगभग आधा मुझे एहसास हुआ कि यह 2004 की मार्गदर्शिका थी और जिस तरह से चीजें काम करती हैं, वह सात साल पहले उपकरण के साथ अच्छी तरह से नहीं चलती थी।

मैंने अनुप्रयोगों, php-scripts, पायथन-स्क्रिप्ट के लिए नेट ब्राउज़ किया है और समाधान नहीं ढूंढ रहा है लेकिन बिना किसी किस्मत के। W32 टूल जो आईएमडीबी स्वयं संदर्भित करता है, वह भी काम नहीं करता है।

क्या कोई ऐसा व्यक्ति है जो इस समाधान को करने या समाधान करने का तरीका जानता है?

उत्तर

6

कुछ nice py script है, चुड़ैल ने मेरी मदद की। बस कनेक्शन बनाओ और इसे चलाएं। सब कुछ के आसपास काम करने के लिए ~ 1hr।

संपादित करें: स्क्रिप्ट बनाने के लिए this readme file का उपयोग करें।

+1

धन्यवाद एक गुच्छा। यही वह था जो मैं ढूंढ रहा था। लगभग 4 घंटे लगे लेकिन अब मुझे आईएमडीबी के साथ एक अच्छा 3 जीबी डेटाबेस मिला :-) – Mestika

1

ubuntu

1) पर सभी आवश्यक संकुल स्थापित करें।

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) आईएमडीबीपीवाई स्थापित करें।

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) mysql में, एक डेटाबेस "आईएमडीबी" बनाएं और सभी अधिकार प्रदान के पासवर्ड "पासवर्ड" के साथ "उपयोगकर्ता" करने के लिए।

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

4) सभी आईएमडीबी डेटा डाउनलोड करें।

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) mysql के लिए IMDB डेटा लोड (भंडारण इंजन के रूप में उपयोग MyISAM)।

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

कुछ मामूली सुधारों के साथ "Import IMDb Data Set from Plain Text Files To MySQL Database" से उधार ली गई।

0

आईएमडीबीपीवाई और आईएमडीबी डेटा फाइल प्रारूप में परिवर्तन का मतलब है कि मौजूदा उत्तर अब काम नहीं करते हैं (जनवरी 2018 तक)।

मैं उबंटू 17.10 और मारिया डीबी 10.1 का उपयोग कर रहा हूं (MySQL नहीं, लेकिन निम्नलिखित MySQL के साथ भी काम करेगा)।

परिवर्तन IMDbPY

को IMDbPY के नवीनतम संस्करण 6.2 है, यह अजगर 3 में कार्यान्वित किया जाता है, और gcc और SQLObject पर निर्भरता हटाया गया है। इसके अलावा, पायथन पैकेज MySQL-python पायथन 3 के लिए उपलब्ध नहीं है, इसलिए हम इसके बजाय mysqlclient इंस्टॉल करते हैं; निचे देखो। (mysqlclient का एपीआई MySQL-python के साथ संगत है।) आईएमडीबी डेटा फ़ाइलों प्रारूप आईएमडीबी डेटा फ़ाइलों के प्रारूप दिसंबर 2017 में शुरू किए गए थे करने के लिए

परिवर्तन, और IMDbPY 6.2 (वर्तमान संस्करण) अभी तक नए के साथ काम नहीं करता है के लिए

परिवर्तन फाइल प्रारूप। (this गिटहब मुद्दा देखें।)

यह तय होने तक, पुराने प्रारूप में प्रकाशित आईएमडीडी डेटा के नवीनतम संस्करण का उपयोग करें, जो ftp://ftp.fu-berlin.de/pub/misc/movies/database/frozendata/ पर उपलब्ध है। सभी *.list.gz फ़ाइलें डाउनलोड करें (उपनिर्देशिका से फ़ाइलों को छोड़कर)।

नई चरणों का पालन करने के लिए

  1. अजगर 3 स्थापित करें और आवश्यक संकुल:

    sudo apt install python3 
    pip3 install mysqlclient 
    
  2. MariaDB में, एक डेटाबेस imdb बनाते हैं, और साथ user करने के लिए सभी अधिकार प्रदान के पासवर्ड password। MariaDB में

    wget https://github.com/alberanid/imdbpy/archive/6.2.zip 
    unzip 6.2.zip 
    cd imdbpy-6.2 
    python3 setup.py install 
    
  3. लोड आईएमडीबी डेटा::

    CREATE DATABASE imdb; 
    GRANT ALL PRIVILEGES ON imdb.* TO 'user'@'localhost' IDENTIFIED BY 'password'; 
    FLUSH PRIVILEGES; 
    
  4. IMDbPY 6.2 जाओ

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

संपादित करें: संस्करण IMDbPY का 6.2 विदेशी कुंजी नहीं बनाता है। this गिटहब मुद्दा देखें। यदि आपको विदेशी कुंजी बनाने की आवश्यकता है तो आपको IMDbPY के पुराने संस्करण का उपयोग करने की आवश्यकता होगी, लेकिन पुरानी संस्करणों में विदेशी कुंजी की पीढ़ी के साथ भी समस्याएं हैं (लिंक गिटहब समस्या देखें)।

अद्यतन: आयात करने में 4.5 घंटे लग गए, और मुझे इनो डीबी टेबल का उपयोग करने में कोई समस्या नहीं थी।

संपादित करें: यदि IMDbPY के संस्करण 6.2 का उपयोग करना चाहते हैं और विदेशी कुंजी की आवश्यकता है, तो आपको उत्पन्न होने के बाद डेटाबेस में मैन्युअल रूप से उन्हें जोड़ना होगा। विदेशी कुंजी जोड़े जाने से पहले डेटा की सफाई की बहुत छोटी मात्रा आवश्यक है। यह सफाई और विदेशी कुंजी जो जोड़ने की आवश्यकता है this गिटहब मुद्दे में वर्णित हैं।

संबंधित मुद्दे