GitHub データ

BigQuery を使用して一般公開データセットを照会する方法

BigQuery は、フルマネージドのデータ ウェアハウスおよび分析プラットフォームです。SQL クエリを使用して分析できる一般公開データセットが用意されています。BigQuery 一般公開データセットには、ウェブ UIコマンドライン ツールを使用するか、さまざまなクライアント ライブラリJava.NETPython など)を使用して BigQuery REST API を呼び出すことによって、アクセスできます。

現在、BigQuery の一般公開データセットは US マルチリージョン ロケーションに格納されています。一般公開データセットをクエリする場合は、コマンドラインで --location=US フラグを指定するか、BigQuery ウェブ UI で処理ロケーションとして US を選択するか、または API でジョブリソースjobReference セクションの location プロパティを指定します。一般公開データセットは米国内に格納されているため、一般公開データのクエリ結果を別のリージョンにあるテーブルに書き込むことはできず、一般公開データセットのテーブルを別のリージョンにあるテーブルと結合することもできません。

BigQuery の一般公開データセットの使用を開始するには、プロジェクトを作成または選択します。毎月、最初の 1 テラバイトのデータの処理については課金されないため、課金を有効にせずに一般公開データセットのクエリを開始できます。無料枠を超える可能性がある場合は、課金を有効にする必要があります。

  1. Google アカウントにログインします。

    Google アカウントをまだお持ちでない場合は、新しいアカウントを登録します。

  2. GCP プロジェクトを選択または作成します。

    [リソースの管理] ページに移動

  3. プロジェクトに対する課金を有効にします。

    課金を有効にする

  4. 新しいプロジェクトでは、BigQuery が自動的に有効になります。既存のプロジェクトで BigQuery を有効にする手順は以下のとおりです。 BigQuery API を有効にする。

    Enable the API

データセットの概要

GitHub は、ソフトウェアを構築する方法で、世界中にいるオープンソース開発者の最大規模のコミュニティのホームです。2008 年以後、1,200 万人を超えるユーザーが 3,100 万プロジェクトで GitHub に協力しています。

この 3 TB を超えるデータセットは、現在までの GitHub での活動に関連する最大の公開情報で構成されています。280 万を超えるオープンソース GitHub レポジトリ、1 億 4,500 万以上のユニーク コミット、20 億以上の異なるファイルパス、1 億 6,300 万ファイルの最新リビジョンの内容の全スナップショットが含まれ、すべて正規表現で検索できます。

BigQuery コンソールで、このデータを探索してみましょう。

GitHub 公開データセットに移動

サンプルクエリ

BigQuery を使用してこのデータで実行できる SQL クエリの例をいくつか示します。ヒント、更新されたリソース、コミュニティ コンテンツについては、https://medium.com/@hoffa/b3576fd2b150 で更新されたリソースのリストをご覧ください。

最もよく使用されている Go パッケージ

SELECT
  REGEXP_EXTRACT(line, r'"([^"]+)"') AS url,
  COUNT(*) AS count
FROM
  FLATTEN( (
    SELECT
      SPLIT(SPLIT(REGEXP_EXTRACT(content, r'.*import\s*[(]([^)]*)[)]'), '\n'), ';') AS line,
    FROM (
      SELECT
        id,
        content
      FROM
        [bigquery-public-data:github_repos.sample_contents]
      WHERE
        REGEXP_MATCH(content, r'.*import\s*[(][^)]*[)]')) AS C
    JOIN (
      SELECT
        id
      FROM
        [bigquery-public-data:github_repos.sample_files]
      WHERE
        path LIKE '%.go'
      GROUP BY
        id) AS F
    ON
      C.id = F.id), line)
GROUP BY
  url
HAVING
  url IS NOT NULL
ORDER BY
  count DESC
LIMIT 10

最もよく使用されている Go パッケージ

最もよく使用されている Java パッケージ

このクエリは、小さなサンプル テーブルを使用して、最もよく使用されている Java パッケージを検索します。

SELECT
  package,
  COUNT(*) count
FROM (
  SELECT
    REGEXP_EXTRACT(line, r' ([a-z0-9\._]*)\.') package,
    id
  FROM (
    SELECT
      SPLIT(content, '\n') line,
      id
    FROM
      [bigquery-public-data:github_repos.sample_contents]
    WHERE
      content CONTAINS 'import'
      AND sample_path LIKE '%.java'
    HAVING
      LEFT(line, 6)='import' )
  GROUP BY
    package,
    id )
GROUP BY
  1
ORDER BY
  count DESC
LIMIT
  40;

最もよく使用されている Java パッケージ

'This should never happen'(こうなってはいけない)が出現する回数

このクエリは、小さなサンプル テーブルを使用して、"this should never happen"(こうなってはいけない)というコメントが出現する回数を調べます。

SELECT
  SUM(copies)
FROM
  [bigquery-public-data:github_repos.sample_contents]
WHERE
  NOT binary
  AND content CONTAINS 'This should never happen'

ヒント: このクエリをデータセット全体に対して実行すると、答えは約 1,000,000 にもなります。

'This should never happen'(こうなってはいけない)が出現する回数

データセットについて

データセット ソース: GitHub

カテゴリ: テクノロジー、ソーシャル

使用: このデータセットは、データセット ソース(https://help.github.com/articles/github-terms-of-service/)によって規定されている条件の下ですべてのユーザーが使用できるように公開されています。また、Google はこのデータセットを「現状のまま」提供し、明示または黙示を問わず、いかなる保証も行いません。Google は、このデータセットの使用で、直接または間接の損害が発生したとしても一切の責任を負いません。

更新頻度: 毎週

BigQuery で表示: GitHub データに移動

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...