Acest script va importa date IMDB din baza de date relationala creata de IMDBpy in AgensGraph. AgensGraph este o platforma de baze de date grafice care ruleaza din PostgreSQL si este interogabila atat cu SQL cat si cu Cypher Query Language pentru bazele de date grafice. Reprezentarea datelor IMDB ca date grafice ajuta la furnizarea unui mod intuitiv de interogare si vizualizare a conexiunilor dintre distributie si echipaj si productiile la care lucreaza.

Notiuni de baza

Conditii prealabile

Descarcati setul de date IMDb Puteti descarca urmatoarea comanda ftp:

wget -r -l1 -np -nd -P date ftp://ftp.fu-berlin.de/pub/misc/movies/database/

Instalati IMDbPy. IMDbPy este un pachet Python care ajuta dezvoltatorii sa dezvolte programe folosind baza de date IMDb. Scriptul „imdbpy2sql.py” va fi utilizat pentru a importa fisierele CSV ale bazei de date IMDb intr-un Agensgraph ca baza de date relationala.

NOTA: Din decembrie 2017, noua reproiectare a datelor IMDb a schimbat schema datelor IMDb pentru a fi mai simpla. Cea mai recenta versiune IMDbPy a fost, de asemenea, rescrisa pentru a accepta aceasta modificare. In acest moment, scriptul de import al AgensGraph este inca compatibil cu formatul mai vechi al datelor. Pentru a obtine versiunea mai veche a setului de date IMDb, puteti utiliza comanda de mai sus, urmata de URL-ul ftp ftp://ftp.fu-berlin.de/pub/misc/movies/database/frozendata/. Puteti obtine o versiune a IMDbPy care functioneaza in continuare cu datele IMDb mai vechi aici.

Documentatie pentru imdbpy2sql.py

Instalati AgensGraph. Avem nevoie de o copie rulanta a AgensGraph pentru a putea importa datele de pe IMDB. Ghid de pornire rapida AgensGraph

Instalati psycopg.

Instalare

Dupa descarcarea si instalarea tuturor componentelor necesare, ar fi intelept sa setati cativa parametri pentru a optimiza AgensGraph.

Cautati in $ AGDATA / postgresql.conf.

milfs españolas follando sexo con cincuentonas
orgias familiares porno xxxxx
incestoxxx follando abuelas
porno parejas porno incesto italiano
le pilla masturbandose incesto italiano porno
descargar peliculas porno español follada a traicion
jovencita caliente chochitos jovenes
videos chicas gratis españolas amater
coños maduros realincest
tetonas gratis follando en silencio
subporno maduras gordas desnudas
comic maduras videos de sexo en español
follando en tenerife pollas peludas
pollas peludas hijo viola a su madre porno
pierre wodman comic porno en español
videos heroticos venezolanas maduras
madres españolas follando con hijos videos gays argentinos
follando rico maduras sensuales
cfnmwave.com me gusta follar
anita teen pillada por torbe buenas pajas

Redimensionarea „shared_buffers” si „work_mem” poate reduce timpul de executie.

Pentru a incepe importul, creati mai intai o baza de date numita „imdb”:

Dupa crearea bazei de date, incepeti importul. Gasiti „imdbpy2sql.py” (inclus in imdbpy2sql) pe sistemul dvs. si executati urmatoarea comanda:

>> python imdbpy2sql.py -d [/ dir / with / plainTextDataFiles /] -u postgresql: // [postgresUser] @ localhost / [databasename] -c / directory / where / to / store / CSVfiles

Cu aceasta, toate datele IMDb ar trebui stocate in baza de date „imdb” in tabele relationale. Acum, dati permisiunile pentru a executa si rula scriptul „imdb_agens.sh”.

Cu aceasta, ar trebui sa existe o baza de date grafica complet functionala a datelor IMDb in AgensGraph.

Folosind baza de date a graficelor

Baza de date Graph stocheaza patru entitati principale ca noduri cu etichete de noduri: persoana, productie, companie si cuvant cheie. Fiecare are propriile sale proprietati. Productiile se afla in „centrul” bazei de date grafice, cu relatii de margine care duc la Productions.

Relatiile dintre entitati

Relatiile posibile sunt stocate in margini dupa cum urmeaza:

Persoana la productie:

  • ACTOR_IN
  • ACTRESS_IN
  • PRODUCER_OF
  • WRITER_OF
  • CINEMATOGRAPHER_OF
  • COMPOSER_FOR
  • COSTUME_DESIGNER_FOR
  • DIRECTOR DE
  • EDITOR_OF
  • MISC_CREW_OF
  • PRODUCTION_DESIGNER_FOR
  • GUEST_IN

Aceste relatii descriu ce fel de rol ar putea avea o persoana intr-o productie.

Productie la productie:

  • URMEAZA
  • URMATA DE
  • REMAKE_OF
  • REMADE_AS
  • MAKES_REFERENCES_TO
  • REFERENCED_IN
  • SPOOFS
  • SPOOFED_IN
  • CARACTERISTICI
  • FEATURED_IN
  • SPIN_OFF_FROM
  • SPIN OFF
  • VERSIUNE A
  • SIMILAR_TO
  • EDITAT_INTO
  • EDITAT_FROM
  • ALTERNATE_LANGUAGE_VERSION_OF
  • NECUNOSCUT_LINK

Aceste relatii descriu ce fel de legaturi care leaga Productions intre ele.

Cuvant cheie pentru productie:

  • KEYWORD_OF

Aceasta relatie leaga cuvintele cheie de productii.

De la companie la productie:

  • DISTRIBUIT
  • PRODUS
  • DID_SPECIAL_EFFECTS_FOR
  • MISC_WORK_ON

Aceste relatii descriu ce fel de munca a facut o companie de productie pentru o productie.

Este posibil sa interogati oricare dintre aceste relatii intre entitati care exista in baza de date.

Stocarea informatiilor in entitati

Exista bucati de date despre persoane, productii, cuvinte cheie si companii care sunt stocate in interiorul marginilor. Acestea sunt stocate in format JSONB. Deoarece exista o multime de campuri de informatii incomplete pentru anumite elemente din baza de date, este posibil ca unele articole din baza de date sa nu aiba campuri „informatii” pe care altii le pot avea. In loc sa stocheze aceste campuri ca „nule”, AgensGraph nu are aceste campuri in intregime daca nu sunt prezente. JSONB este un format binar care stocheaza toate informatiile ca text. Unele elemente din baza de date pot fi interpretate ca diferite tipuri de date, deci pentru a le accesa ca atare, uneori este necesara o distributie.

Exemple de interogari

Iata cateva posibile interogari care pot fi utilizate pentru a explora baza de date IMDb folosind AgensGraph si Cypher.

Gasiti numele tuturor actorilor care au actionat intr-o anumita productie:

MATCH (a: Persoana) – [: ACTOR_IN] -> (b: Production) WHERE b.id::int = ‘some_movie_id_number’ RETURN a.name, b.title;

Gasiti toate productiile la care a lucrat o persoana intr-o forma sau alta:

MATCH (a: Persoana) – [b] -> (c: Productie) WHERE a.id::int = ‘some_person_id_number’ RETURN a.nume, b, c.title;

Gasiti toate celelalte actrite cu care a lucrat o actrita:

MATCH (a: Person) – [b: ACTRESS_IN] -> (c: Production) <- [d: ACTRESS_IN] – (e: Person) WHERE a.id::int = ‘some_person_id_number’ REVENIRE a.nume, e. Nume;

Link-uri utile

Referinta referitoare la limbajul Cypher