sql >> Databasteknik >  >> RDS >> Mysql

Analysera Wiktionary XML-datadump till MySQL-databas med PHP

Dessa filer kan tolkas i PHP med XMLReader fungerar på en compress.bzip2:// stream . Strukturen på filen du har är exemplarisk (kika in i ca. de första 3000 elementen):

\-mediawiki (1)
  |-siteinfo (1)
  | |-sitename (1)
  | |-base (1)
  | |-generator (1)
  | |-case (1)
  | \-namespaces (1)
  |   \-namespace (40)
  \-page (196)
    |-title (196)
    |-ns (196)
    |-id (196)
    |-restrictions (2)
    |-revision (196)
    | |-id (196)
    | |-parentid (194)
    | |-timestamp (196)
    | |-contributor (196)
    | | |-username (182)
    | | |-id (182)
    | | \-ip (14)
    | |-comment (183)
    | |-text (195)
    | |-sha1 (195)
    | |-model (195)
    | |-format (195)
    | \-minor (99)
    \-redirect (5)

Själva filen är lite större, så det tar ganska lång tid att bearbeta. Alternativt kan du inte använda XML-dumparna, utan bara importera SQL-dumparna via mysql kommandoradsverktyg. SQL-dumpar finns också tillgängliga på webbplatsen, se alla dumpformat för Engelska Wiktionary :

Den övergripande filen var lite större med mer än 66 849 000 element:

\-mediawiki (1)
  |-siteinfo (1)
  | |-sitename (1)
  | |-base (1)
  | |-generator (1)
  | |-case (1)
  | \-namespaces (1)
  |   \-namespace (40)
  \-page (3993913)
    |-title (3993913)
    |-ns (3993913)
    |-id (3993913)
    |-restrictions (552)
    |-revision (3993913)
    | |-id (3993913)
    | |-parentid (3572237)
    | |-timestamp (3993913)
    | |-contributor (3993913)
    | | |-username (3982087)
    | | |-id (3982087)
    | | \-ip (11824)
    | |-comment (3917241)
    | |-text (3993913)
    | |-sha1 (3993913)
    | |-model (3993913)
    | |-format (3993913)
    | \-minor (3384811)
    |-redirect (27340)
    \-DiscussionThreading (4698)
      |-ThreadSubject (4698)
      |-ThreadPage (4698)
      |-ThreadID (4698)
      |-ThreadAuthor (4698)
      |-ThreadEditStatus (4698)
      |-ThreadType (4698)
      |-ThreadSignature (4698)
      |-ThreadParent (3605)
      |-ThreadAncestor (3605)
      \-ThreadSummaryPage (11)



  1. MySQL Job kunde inte starta

  2. Hur man eliminerar dubbletter av rader i SQL

  3. Använd php mysqli skapa reskontrabok och få balans enligt DR och CR

  4. Hur upptäcker man en återställning i MySQL-lagrad procedur?