1. はじめに
BigQuery は、Google が提供する低コストでフルマネージドの分析データベースです。BigQuery では、データベース管理者やインフラストラクチャの管理を必要とすることなく、テラバイト規模のデータに対してクエリを実行できます。BigQuery では、使い慣れた SQL と従量課金制の課金モデルが使用されます。このような特徴を活かし、お客様は有用な情報を得るためのデータ分析に専念できます。
この Codelab では、GitHub 一般公開データセットに対してクエリを実行します。これは、BigQuery で公開されている多くの一般公開データセットの一つです。
学習内容
- BigQuery の使用方法
- 大規模なデータセットの分析情報を取得するためのクエリの作成方法
必要なもの
2. セットアップする
BigQuery を有効にする
Google アカウント(Gmail や Google Apps)をまだお持ちでない場合は、アカウントを作成してください。
- Google Cloud Platform コンソール(console.cloud.google.com)にログインし、BigQuery に移動します。ブラウザに次の URL を入力して、BigQuery ウェブ UI を直接開くこともできます。
https://console.cloud.google.com/bigquery
- 利用規約に同意します。
- BigQuery を使用するには、その前にプロジェクトを作成する必要があります。プロンプトに従って新しいプロジェクトを作成します。
プロジェクト名を選択し、プロジェクト ID をメモします。
プロジェクト ID は、すべての Google Cloud プロジェクトで一意の名前です。以降、このコードラボでは PROJECT_ID
と呼びます。
この Codelab では、BigQuery サンドボックスの上限が設定された BigQuery リソースを使用します。請求先アカウントは必要ありません。後でサンドボックスの制限を削除したい場合は、Google Cloud Platform の無料トライアルに登録して請求先アカウントを追加できます。
3. GitHub データをプレビュー
BigQuery ウェブ UI で GitHub データセットを開きます。
データがどのように表示されるのか、簡単なプレビューで確認しましょう。
4. GitHub データにクエリを実行する
クエリエディタを開きます。
次のクエリを入力して、GitHub 一般公開データセットで最も一般的な commit メッセージを検索します。
SELECT subject AS subject,
COUNT(*) AS num_duplicates
FROM `bigquery-public-data.github_repos.sample_commits`
GROUP BY subject
ORDER BY num_duplicates DESC
LIMIT 100
GitHub のデータセットが大きいことを考慮すると、費用を節約するために、テスト時に使用するサンプル データセットを小さくすることをおすすめします。エディタの下で処理されたバイト数を使用して、クエリ費用を見積もります。
[Run] ボタンをクリックします。
数秒後に結果が下部に表示され、処理されたデータ量と所要時間が表示されます。
sample_commits テーブルは 2.49 GB ですが、このクエリで処理されたのは 35.8 MB のみです。BigQuery はクエリで使用される列のバイトのみを処理するため、処理されるデータの総量はテーブルサイズよりも大幅に小さくなる可能性があります。クラスタリングとパーティショニングを使用すると、処理されるデータ量をさらに削減できます。
5. その他の一般公開データ
次に、別の一般公開データセットなど、別のデータセットに対してクエリを実行します。
たとえば、次のクエリは、Libraries.io 一般公開データセット内にある、非推奨またはメンテナンスされていない人気のプロジェクトのうち、他のプロジェクトで依存関係としてまだ使用されているものを検索します。
SELECT
name,
dependent_projects_count,
language,
status
FROM
`bigquery-public-data.libraries_io.projects_with_repository_fields`
WHERE status IN ('Deprecated', 'Unmaintained')
ORDER BY dependent_projects_count DESC
LIMIT 100
また、データを BigQuery で一般公開している組織もあります。たとえば、GitHub の GH アーカイブ データセットを使用すると、pull リクエスト、リポジトリのスター、未解決の問題など、GitHub で公開されているイベントを分析できます。Python Software Foundation の PyPI データセットを使用して、Python パッケージのダウンロード リクエストを分析できます。
6. 完了
BigQuery と SQL を使用して、GitHub 一般公開データセットに対してクエリを実行しました。ペタバイト規模のデータセットに対してクエリを実行できます。
学習した内容
- SQL 構文を使用して GitHub commit レコードをクエリする
- 大規模なデータセットの分析情報を取得するためのクエリの作成
詳細
- Kaggle の SQL の概要で SQL について学習する。
- BigQuery のドキュメントを確認する。
- こちらのブログ投稿で、GitHub データセットがどのように使用されているかをご覧ください。
- BigQuery の TIL で気象データや犯罪データなどを調べる。
- BigQuery コマンドライン ツールを使用して BigQuery にデータを読み込む方法を確認する。
- BigQuery サブレディットで、他のお客様が現在どのように BigQuery を使用しているかをご確認ください。