WikipediaのSQLダンプから親カテゴリを含むカテゴリ情報をCSVで吐き出すツールをDockerhubで公開
動機
itemizerでは多数の商品を取り扱うため、商品をカテゴリごとに、階層的に分けたいと考えた。 そこで弊チームの一員に相談したところ、Wikipediaがカテゴリ情報を持っているので利用すればよいとの助言を受けたため、カテゴリ情報をCSVで吐き出すことにした ※オープンデータ関連の講演を聴講する機会が多々有ったが、自分の頭の中のテーブルには載っていなかったのではっとしたのは内緒。
手順
とりあえずwikipediaが公開しているSQLダンプファイルの一覧を探すと以下のサイトにあたった。
Wikipediaのダウンロードできるデータファイル一覧 | mwSoft
SQLファイルはテーブルごとに分割してダンプされており、各SQLファイルの概要とそのカラムの説明が記載されている非常に良心的なサイトで安心した。
categoryテーブルをCSVに書き出すだけで良いのかと思ったのもつかの間、categoryテーブルのカラムを見ると親カテゴリの記載がないことに気づいた。 こんな時にはstackoverflowの出番なのだが、今回は納得できる回答が見当たらず、DockerhubやGithubにもそれらしいリポジトリは見当たらなかったため自作することにした。
niwatolli3/wikipedia-category-csv
https://hub.docker.com/r/niwatolli3/wikipedia-category-csv/
以下のコマンドを実行すると、カテゴリ情報を持つCSVファイルが出力される。出力先は /opt/categories.csv である。
docker run -d -v /opt/:/opt/ --rm niwatolli3/wikipedia-category-csv
/home/tomi/repos/wikipedia-category-csv% docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 39a3f0ad16f0 niwatolli3/wikipedia-category-csv "/bin/sh -c '/usr/..." 2 minutes ago Up 2 minutes flamboyant_bhabha
IMAGEに自分のハンドルネームが載っていてこの上なく嬉しい。