Google BigQuery を使って GitHub のデータを研究しよう
2012年6月1日金曜日 | 14:44
Labels: BigQuery
Posted by 山崎富美 Developer Relations Team
[本記事は、Web Performance Engineer の Ilya Grigorik が書いた"Using Google BigQuery to learn from GitHub"を元に翻訳しました。Ilya は、Google のウェブパフォーマンスエンジニア兼アドボケイトであり、オープンソースのエヴァンジェリストであるとともに分析ギークでもあります。Ilya についてもっと知りたい方は、igrigoriki や igvita.com をご覧ください。-山崎]
世界中のオープンソースプロジェクトの開発者の皆さんは、毎日、コードを書いたりレビューをしたり、バグレポートを書いたりバグについて議論をしたり、ドキュメントやプロジェクトの wiki を更新するなど、何百万ものプロジェクトに貢献しています。 こうした活動を通じて生まれたデータは、プログラミング言語の人気の推移、欠陥率、貢献度、特定のフレームワークやライブラリの人気を含む、産業全体の興味深いトレンドを示しています。
これらのトレンドを分析するときに難しいのは、どうやってデータを集めるかです。 それぞれのプロジェクトには、それぞれのワークフロー、コードリポジトリ、規約が存在します。私自身が携わっている多くのプロジェクトも GitHub 上にホストしていますが、GitHub 上にホストされた 260 万以上の公開プロジェクトから、開発者の活動を分析したいとずっと思っていました。 そのため、今年初めに GitHub Archive が作られたのです。
GitHub Archive は、公開されている GitHub のタイムラインを記録して、それをアーカイブ化して、更に分析をするために簡単にアクセスできるようにするプロジェクトです。 毎日、12 万件以上の公開された活動をアーカイブします。そこには、新しいコミットやイベントのフォーク、チケットをオープン、クローズする活動が含まれ、それぞれ詳細なメタデータが付与されています。
こうしてデータが集まり、それを分析するためのツールが必要となった時、Google BigQuery を知りました。 Dremel(ウェブスケールのデータセットを分析するための、Google 社内で人気のあるツール)での研究をふまえ、BigQuery は、データセット全体のインポートを簡単にし、SQL のようなシンタックスで数ギガバイトのデータを数秒で調べることができます。 また、このツールを使えばテラバイト級のデータセットにも対応できるので、成長の余地が多くあります。
そして、GitHub チームと BigQuery チームのコラボレーションのおかげで、GitHub データセットが公開となり、いろいろな分析を行うことができるようになりました。データを集めることやデータベースのスキーマについて心配する必要はありません。重い作業は BigQuery がすべて行なってくれるので、皆さんはリアルタイムに実行されるクエリを組み立てるだけです。
実例を紹介しましょう。これは、この一ヶ月の GitHub 上で最も人気のあるプログラミング言語を表示しています。
詳細を知りたい方は BigQuery にサインアップし、githubarchive.org にある手順説明をご覧の上、GitHub データセットにアクセスしてみてください。100GB のクエリ割り当てを無償で利用することができます。



