記事の対象者と解消できるお悩み
【対象者】
初中級データアナリスト
【興味関心】
- 技術トレンド分析
- 競合調査
- オープンソースソフトウェア活用
- 新規事業のアイデア
- 開発効率の向上
【解消できるお悩み】
- 最新の技術トレンドを把握したいけど、どこから情報収集すれば良いか分からない…
- 競合他社がどんな技術を使っているのか知りたい
- 自社の開発に役立つオープンソースソフトウェアを見つけたい
- 新規事業のアイデアを得るために、最新の技術動向を調査したい
- 開発チームの効率を向上させる方法を知りたい
記事作成者
【人物】株式会社志庵 代表取締役 佐藤 光 起業6年目
【経歴】株式会社光通信➜光通信同期と起業➜データアナリスト転職➜SaaSで2度目起業
【会社実績】
SaaS 資金調達無しARR2億円
SaaS GMV200億円
【内容】自社AaaSであるStruccle、webスクレイピング、BigQueryに関する記事を作成
各種用語
- ARR(Annual Recurring Revenue)
- サブスクリプションサービスの年間売上※当社はSaaS売上
- Struccle(ストラクル)
- 株式会社志庵が独自開発しているAaaS
- AaaS(アース)
- Data Analytics as a Serviceの意
- SaaS(サース)
- Software as a Serviceの意
- GoogleCloudPlatform
- Googleが提供するクラウドプラットフォーム。この中に様々なサービスが存在する。
- GCP(ジーシーピー)
- GoogleCloudPlatformの略
- BigQuery(ビッグクエリ)
- 上記GCPの中に含まれるデータ分析基盤サービス
- SQL(エスキューエル)
- データベースを操作するプログラミング言語
- クエリ
- SQLで記述した命令文
- クエリ例)
- SQL構文のクエリ⬇
SELECT item_name, price FROM sales_table where price >= 1000;
- 上記クエリ(命令文)の意味としては「売上テーブル(sales_table)から価格(price)が1000円以上の商品名(item_name)と価格(price)を抽出する」
- SQL構文のクエリ⬇
- ペタバイト
- データの単位 ペタバイト=1000テラバイト=約100兆行のデータ
概要
GitHubは、世界中の開発者が利用する巨大なオープンソースソフトウェア開発プラットフォームです。GitHubには、膨大な数のプロジェクトが公開されており、日々新たなプロジェクトが生まれています。これらのプロジェクトに関するデータは、開発トレンド、人気言語、開発者の活動状況など、様々な情報を提供してくれます。
Google Cloudのデータウェアハウス「BigQuery」は、その強力な分析機能と無料の公開データセットを活用することで、GitHubのデータを手軽に分析することを可能にします。この記事では、BigQueryを使ってGitHubデータを分析し、オープンソースプロジェクトのトレンドを探ったり、興味深いプロジェクトを発見する方法を解説します。データ分析初心者の方でも、BigQueryを使えば、GitHubの膨大なデータから有益な情報を得て、技術トレンドを把握したり、開発に役立つリソースを見つけたりすることができるでしょう。
目次
- BigQueryでGitHubデータ分析を行うメリット
- GitHubデータ分析に役立つBigQueryの無料公開データセット
- BigQueryでGitHubデータを分析する手順
- BigQueryを使ったGitHubデータ分析例
- FAQ:BigQueryに関するよくある質問
- まとめ:BigQueryでGitHubデータ分析を行い、オープンソースの世界を探検しよう!
1. BigQueryでGitHubデータ分析を行うメリット
BigQueryは、GitHubデータ分析に最適なツールです。その理由は、以下の様なメリットがあるからです。
- 大規模データの高速処理: 膨大なGitHubデータを高速に分析できるため、GitHub全体のトレンドや個別のプロジェクトの動向を効率的に把握できます。
- 様々なデータソースとの連携: 公開データ、自社データ、外部データなど、様々なデータソースと連携できるため、GitHubデータ分析に必要なデータを統合的に分析できます。
- 豊富な分析機能: SQL、機械学習、自然言語処理など、高度な分析機能を利用できるため、複雑な分析にも対応できます。
- コストパフォーマンスの高さ: 従量課金制なので、必要な時に必要なだけ利用でき、コストを抑えられます。
- 高いセキュリティ: Google Cloudの強固なセキュリティ基盤により、安心してデータを管理できます。
2. GitHubデータ分析に役立つBigQueryの無料公開データセット
BigQueryには、GitHubデータ分析に役立つ無料公開データセットが用意されています。以下は、その一例です。
- GitHub Repos: GitHub上のリポジトリのデータセット。リポジトリ名、説明、作成日時、スター数、プログラミング言語などの情報が含まれています。
3. BigQueryでGitHubデータを分析する手順
BigQueryでGitHubデータを分析する手順は以下の通りです。
3.1 1. データ加工
収集したデータは、分析しやすいように加工する必要があります。例えば、データのクリーニング、変換、集計などを行います。BigQueryは、SQLを使ってデータ加工を行うための様々な関数を提供しています。
3.2 2. 人気リポジトリ分析
GitHub Reposデータセットからリポジトリ名、スター数、プログラミング言語などのデータを取得し、SQLクエリを使って人気リポジトリランキングを作成します。ランキングは、スター数順、フォーク数順、コントリビューター数順など、様々な基準で作成することができます。集計関数やウィンドウ関数を利用することで、複雑なランキング計算も可能です。
3.3 3. トレンド分析
GitHub Reposデータセットからリポジトリの作成日時、プログラミング言語、スター数などのデータを取得し、SQLクエリを使ってトレンド分析を行います。例えば、特定のプログラミング言語の人気度推移、スター数の多いリポジトリの特徴、開発者の活動状況などを分析することができます。
4. BigQueryを使ったGitHubデータ分析例
ここでは、BigQueryの無料公開データセット「GitHub Repos」を使って、GitHubデータ分析の例をいくつか紹介します。
BigQuery分析例:プログラミング言語別ファイル数
どのプログラミング言語がGitHubで人気なのかを調べることは、オープンソースプロジェクトを探検する上で役立ちます。
このクエリは、ファイルの拡張子からプログラミング言語を推測し、言語別のファイル数を集計します。
SELECT
CASE
WHEN REGEXP_CONTAINS(sample_path, r'\.py$') THEN 'Python'
WHEN REGEXP_CONTAINS(sample_path, r'\.js$') THEN 'JavaScript'
WHEN REGEXP_CONTAINS(sample_path, r'\.java$') THEN 'Java'
WHEN REGEXP_CONTAINS(sample_path, r'\.cpp$') THEN 'C++'
WHEN REGEXP_CONTAINS(sample_path, r'\.cs$') THEN 'C#'
WHEN REGEXP_CONTAINS(sample_path, r'\.go$') THEN 'Go'
WHEN REGEXP_CONTAINS(sample_path, r'\.rb$') THEN 'Ruby'
WHEN REGEXP_CONTAINS(sample_path, r'\.php$') THEN 'PHP'
WHEN REGEXP_CONTAINS(sample_path, r'\.swift$') THEN 'Swift'
WHEN REGEXP_CONTAINS(sample_path, r'\.kt$') THEN 'Kotlin'
ELSE 'Others'
END AS programming_language,
COUNT(*) AS file_count
FROM `bigquery-public-data.github_repos.sample_contents`
GROUP BY programming_language
ORDER BY file_count DESC;
【BigQuery SQLコード解説】
- CASE 句と REGEXP_CONTAINS 関数を使って、ファイルの拡張子からプログラミング言語を推測します。
- COUNT(*) で、言語別のファイル数をカウントします。
- GROUP BY 句で、プログラミング言語ごとに集計します。
- ORDER BY 句で、ファイル数の降順に並べ替えます。
【GitHubデータ分析への活用例】
- 人気のあるプログラミング言語を把握することで、トレンドに沿ったプロジェクトを見つけやすくなります。
- 特定の言語に興味がある場合は、その言語で書かれたプロジェクトに絞り込んで探すことができます。
BigQuery分析例:大規模プロジェクトの特定
大規模なオープンソースプロジェクトは、多くの開発者によって活発に開発が行われている傾向があります。
このクエリは、リポジトリごとのファイル数を集計し、ファイル数が多い上位10件のリポジトリを表示します。
SELECT
sample_repo_name,
COUNT(*) AS file_count
FROM `bigquery-public-data.github_repos.sample_contents`
GROUP BY sample_repo_name
ORDER BY file_count DESC
LIMIT 10;
【BigQuery SQLコード解説】
- sample_repo_name を使って、リポジトリを特定します。
- COUNT(*) で、リポジトリごとのファイル数をカウントします。
- GROUP BY 句で、リポジトリごとに集計します。
- ORDER BY 句で、ファイル数の降順に並べ替えます。
- LIMIT 句で、上位10件を表示します。
【GitHubデータ分析への活用例】
- ファイル数の多いリポジトリは、大規模で活発なプロジェクトである可能性が高いため、貢献できる機会が多いかもしれません。
- これらのプロジェクトを参考に、開発手法やコードの品質などを学ぶこともできます。
5. FAQ:BigQueryに関するよくある質問
Q1. BigQueryの無料枠を超えて利用すると、どのくらい費用がかかりますか?
A1. 無料枠を超えた場合、従量課金制で料金が発生します。料金は、処理したデータ量やストレージ容量などによって異なります。詳しくは、BigQueryの料金ページをご確認ください。
Q2. BigQueryで使えるSQLは、他のデータベースと同じですか?
A2. BigQueryは標準SQLをサポートしており、他のデータベースで学んだSQLの知識を活かすことができます。ただし、BigQuery独自の関数や構文も存在するため、BigQueryのドキュメントで詳細を確認することをおすすめします。
Q3. SQLの学習には、どのような教材がありますか?
A3. SQLの学習には、オンライン学習サイト、書籍、動画教材など、様々な教材があります。初心者向けの教材から、上級者向けの教材まで、レベルに合わせて選ぶことができます。Googleが提供するBigQueryのチュートリアルもSQLの学習に役立ちます。
6. まとめ:BigQueryでGitHubデータ分析を行い、オープンソースの世界を探検しよう!
BigQueryは、GitHubデータ分析に最適なツールです。BigQueryの高速な処理性能、豊富な分析機能、そして無料公開データセットを活用することで、誰でも簡単にGitHubデータ分析を行うことができます。人気リポジトリランキングを作成したり、トレンド分析を行ったり、BigQueryでGitHubデータ分析を行い、オープンソースの世界を探検してみましょう!
BigQuery導入サポート、転職検討中の方はお問い合わせフォームからご相談くださいませ。
誠心誠意精一杯対応いたします。
【参考URL】
GoogleCloudPlatform:https://console.cloud.google.com/welcome/new
BigQuery:https://cloud.google.com/bigquery?hl=ja
BigQueryリリース情報:https://cloud.google.com/bigquery/docs/release-notes
BigQuery料金:https://cloud.google.com/bigquery/pricing
BigQuery料金無料枠:https://cloud.google.com/bigquery/pricing?hl=ja#free-tier
Google Cloud活用事例:https://cloud.google.com/customers/index.html?hl=ja#
Looker Studio:https://cloud.google.com/looker-studio?hl=ja
Looker Studioサンプル:https://cloud.google.com/bigquery/docs/visualize-looker-studio?hl=ja