sql >> データベース >  >> RDS >> Mysql

PHPを使用してWiktionaryXMLデータダンプをMySQLデータベースに解析します

    これらのファイルは、XMLReaderを使用してPHPで解析できます。 compress.bzip2://での操作 ストリーム 。あなたが持っているファイルの構造は模範的です(最初の3000個の要素を覗き見ます):

    \-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)
    

    ファイル自体は少し大きいので、処理にはかなりの時間がかかります。または、XMLダンプを操作せずに、mysqlを介してSQLダンプをインポートします。 コマンドラインツール。 SQLダンプは、サイトでも利用できます。 English Wiktionaryのすべてのダンプ形式を参照してください。 :

    ファイル全体は、66 849 000を超える要素で少し大きくなりました:

    \-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でパイプ連結演算子を有効にする方法

    2. コレーションがわかりませんか? (Mysql、RDBMS、文字セット)

    3. PostgreSQLDBの現在の接続数を取得するための正しいクエリ

    4. MySQLで関係を作成する方法