GHTorrent の MSR 2014 Mining Challenge Dataset の使い方

heroImage

1. はじめに

GHTorrent 1 は、GitHub の公開イベントデータを収集し、研究者が容易にアクセスできるように整理した大規模なデータセットです。このプロジェクトは GitHub の公式 API を使用して、プルリクエスト、コミット、イシューなどの活動に関連するデータを継続的に取得し、これらのデータを MongoDB 形式と MySQL 形式で公開しています。

執筆時点で GHTorrent プロジェクトは既に停止しており、公式サイトにもアクセスすることが出来ません。しかし、Wayback Machine 上にアーカイブとして残っており、データもサルベージすることが可能です。

MSR 2014 Mining Challenge Dataset は、オリジナルの GHTorrent データセットを縮小したバージョンです。このデータセットには、プログラミング言語ごとにスター数が多い 90 個のプロジェクトと、そのフォークが含まれています。詳しい情報は MSR 2014 Mining Challenge Dataset の Web ページ 2 を参照ください。

本記事では、MySQL 形式の MSR 2014 Mining Challenge Dataset を、ローカル環境の MySQL にインポートして使用する手順について記述します。以降の作業は Ubuntu 22.04 LTS + MySQL Ver.8.0.35 環境下で実行したものです。また、MySQL はインストール済みの前提で記述しています。MySQL のインストール方法などについては割愛していることを、ご了承ください。

2. データセットのインポートと使用方法

一応、MSR 2014 Mining Challenge Dataset の Web ページ 2 にインポートする手順は記載されていますが、MySQL の文法が古いため、MySQL 8.0 系で Web サイトに記載されているコマンドを実行するとエラーが出ます。MySQL 8.0 系の文法に書き直したコードを以下に示します。

1
$ wget http://ghtorrent-downloads.ewi.tudelft.nl/datasets/msr14-mysql.gz
2
$ mysql -u root -p
3
Enter password: # root のパスワードを入力する
4
mysql> create user 'msr14'@'%' identified by 'msr14';
5
mysql> create database msr14;
6
mysql> GRANT ALL PRIVILEGES ON msr14.* TO 'msr14'@'%';
7
mysql> flush privileges;
8
mysql> exit
9
$ zcat msr14-mysql.gz | mysql -u msr14 -p msr14
10
Enter password: # msr14 と入力する
11
$ mysql -u msr14 -p msr14
12
Enter password: # msr14 と入力する
13
mysql> SELECT language, COUNT(*) FROM projects WHERE forked_from IS NULL GROUP BY language;
14
+------------+----------+
15
| language | COUNT(*) |
16
+------------+----------+
17
| Scala | 9 |
18
| R | 4 |
19
| C++ | 8 |
20
| JavaScript | 9 |
21
| TypeScript | 1 |
22
| C | 10 |
23
| C# | 8 |
24
| Go | 1 |
25
| Java | 8 |
26
| CSS | 3 |
27
| PHP | 9 |
28
| Python | 10 |
29
| Ruby | 10 |
30
| NULL | 1 |
31
+------------+----------+
32
14 rows in set (0.01 sec)

3. おわりに

ここまで、MySQL 形式の MSR 2014 Mining Challenge Dataset を、ローカル環境の MySQL にインポートして使用する手順について記述してきました。MySQL に慣れている人はターミナル上で分析しても良いと思いますが、慣れていない人は DBeaver などの GUI で MySQL を操作できる GUI ツールなどを駆使して分析すると良いと思います。


  1. Gousios, Georgios. 2013. “The GHTorent Dataset and Tool Suite.” In Proceedings of the 10th Working Conference on Mining Software Repositories, 233–36. MSR ’13. IEEE Press.

  2. MSR 2014 Mining Challenge Dataset:https://web.archive.org/web/20220505002737/https://ghtorrent.org/msr14.html 2