sql >> Database >  >> RDS >> Mysql

Parse Wiktionary XML-gegevensdump in MySQL-database met behulp van PHP

Die bestanden kunnen in PHP worden geparseerd met XMLReader werkend op een compress.bzip2:// streamen . De structuur van het bestand dat je hebt is voorbeeldig (kijk in ca. de eerste 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)

Het bestand zelf is iets groter, dus het duurt behoorlijk lang om het te verwerken. U kunt ook niet op de XML-dumps werken, maar gewoon de SQL-dumps importeren via de mysql commandoregel-tool. SQL-dumps zijn ook beschikbaar op de site, bekijk alle dump-formaten voor het Engelse WikiWoordenboek :

Het totale bestand was iets groter met meer dan 66 849 000 elementen:

\-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. SQLite-queryresultaten opmaken als een door komma's gescheiden lijst

  2. Converteer 'datetimeoffset' naar 'datetime2' in SQL Server (T-SQL-voorbeelden)

  3. Waarom is het resultaat van `select 'a'=0;` 1?

  4. Hoe % te ontsnappen in een query met behulp van python's sqlalchemy's execute() en pymysql?