BigQuery初心者がデータ分析を始めてみた【第1回】プロジェクト作成からクエリ実行まで

BigQueryとは、Googleが提供するフルマネージドのクラウドデータウェアハウスサービスです。大量のデータを高速に分析できることが特徴で、サーバーの管理やインフラの構築が不要なため、データ分析に集中できます。

本連載では、BigQueryの基本操作から応用機能まで、実際に手を動かしながら学んでいきます。第1回では、プロジェクトの作成からクエリ実行までの基本操作を紹介します。

はじめに

データ分析基盤としてBigQueryがよく使われていることを知り、基本的な使い方を学ぶために実際に触ってみることにしました。

本記事では、BigQueryの基本的な操作と特徴についてまとめました。

BigQueryの特徴

BigQueryについて、公式は以下のように説明しています。

BigQuery は、Google Cloud のフルマネージド、ペタバイト規模の分析データ ウェアハウスです。SQL クエリを使用して大量のデータをリアルタイムで分析できます。

引用: [BigQuery とは | Google Cloud]cloud.google.com

主な特徴は以下の通りです。

サーバーレスで管理不要

従来のデータベースのように、サーバーの構築や管理が不要です。

インフラの運用をGoogleに任せることができるため、データ分析業務に専念できます。

高速なクエリ処理

BigQueryは列指向ストレージを採用しており、必要な列のデータだけを読み込むことで高速な処理を実現しています。

数TB規模のデータでも数秒で集計結果を得られることが特徴です。

従量課金制

使った分だけ料金が発生する仕組みです。

具体的には、クエリでスキャンしたデータ量とストレージの使用量に応じて課金されます。

Google Cloudとの親和性

Google Cloud StorageやGoogle Apps Scriptなど、他のGoogle Cloudサービスとシームレスに連携できます。

前提条件

BigQueryを利用するには、Google Cloudアカウントが必要です。以下の準備を行ってください。

Google Cloudアカウントの作成

Google Cloudを初めて利用する場合は、Googleアカウントでログインし、Google Cloudアカウントを作成します。

cloud.google.com

Google Cloudプロジェクトの作成

BigQueryを利用するには、Google Cloudプロジェクトを作成する必要があります。

  1. Google Cloud Console (https://console.cloud.google.com/) にアクセス
  2. 画面上部の「プロジェクトを選択」をクリック
  3. 表示されたダイアログで「新しいプロジェクト」をクリック
  4. プロジェクト名を入力して「作成」をクリック

プロジェクトでは、APIの管理、課金の有効化、共同編集者の追加などを行います。

BigQuery APIについて

新しいプロジェクトでは、BigQuery APIは自動的に有効になります。

新しいプロジェクトでは BigQuery API が自動的に有効になります。

引用:[BigQuery - Google Cloud Platform Console ヘルプ] support.google.com

既存のプロジェクトで初めてBigQueryを使う場合は、手動でAPIを有効化する必要がありますが、本記事では新しいプロジェクトを作成する前提で進めるため、API有効化の手順は不要です。

課金の有効化

BigQueryを利用するには、課金を有効化する必要があります。

Google Cloudでは、初回登録時に90日間有効の$300分の無料クレジットが提供されます。クレジットカード情報の登録が必要ですが、無料期間中は自動的に課金されることはありません。

また、BigQueryには無料枠があり、毎月1TBまでのクエリ処理と10GBまでのストレージが無料で利用できます。本記事の内容であれば、無料枠内で十分実践できます。

BigQueryコンソールへのアクセス

Google Cloud Consoleにログインした状態で、以下のURLにアクセスします。

console.cloud.google.com

初回アクセス時は、BigQueryの利用規約への同意が求められる場合があります。

実践編

それでは実際にBigQueryを操作していきます。

プロジェクトとデータセットの作成

BigQueryでは、テーブルを格納するための「データセット」というコンテナを作成する必要があります。

Google Cloud ConsoleからBigQueryのページを開きます。

コンソール画面

左側のナビゲーションからプロジェクトを選択し、「データセットを作成」をクリックします。

データセットの作成画面では、以下の項目を設定します。

  • データセットID: 任意の名前(例: test_dataset)
  • ロケーション: データの保存場所(例: asia-northeast1(東京))

設定を確認して「データセットを作成」をクリックすると、データセットが作成されます。

作成されたデータセット

ネイティブテーブルの作成

ネイティブテーブルは、データをBigQueryのストレージに保存するテーブルです。

今回は、テスト用に作成した架空のECサイト売上データ(注文日、商品名、カテゴリ、数量、単価、金額を含む約100行のCSVファイル)を使用します。

作成したデータセット(test_dataset)を選択し、データセット名の右側にある「︙」(縦3点)をクリックして「テーブルを作成」を選択します。

テーブル作成画面で以下を設定します。

  • テーブルの作成元: アップロード
  • ファイルを選択: 手元のCSVファイルを選択
  • ファイル形式: CSV
  • テーブル名: 任意の名前(例: sales_data)
  • スキーマ: 自動検出

さらに「詳細オプション」を展開し、「スキップするヘッダー行」に1を設定します。これは、CSVファイルの1行目がカラム名(ヘッダー)のため、データとして読み込まないようにする設定です。

設定後「テーブルを作成」をクリックすると、データがBigQueryにインポートされます。スキーマの自動検出により、各カラムのデータ型、フィールド名が自動的に認識されます。

自動認識されたスキーマ(カラム)

クエリの実行

作成したテーブルに対してクエリを実行してみます。画面上部の「クエリを新規作成」をクリックします。

まずは基本的なSELECT文を実行してみます。

SELECT *
FROM `プロジェクトID.test_dataset.sales_data`
LIMIT 10

クエリを実行すると、10件のデータが正常に取得できました。

クエリ結果

次に、WHERE句やGROUP BY句を使った集計クエリを試します。

SELECT 
  product_name,
  SUM(quantity) as total_quantity,
  SUM(amount) as total_amount
FROM `プロジェクトID.test_dataset.sales_data`
WHERE order_date >= '2024-01-01'
GROUP BY product_name
ORDER BY total_amount DESC

商品ごとの売上合計が正しく集計され、金額の降順で表示されました。

クエリ結果

まとめ

第1回では、BigQueryの基本操作を実際に試してみました。

本記事で学んだポイントは以下の通りです。

  • サーバーレスで環境構築不要、すぐにデータ分析を開始できる
  • 新しいプロジェクトではBigQuery APIが自動的に有効化される
  • データセットとテーブルを作成し、CSVファイルからデータを読み込める
  • スキーマの自動検出により、データ型を自動認識できる
  • SQLクエリで簡単にデータを抽出・集計できる
  • 毎月1TBまでのクエリ処理が無料で利用できる

次回【第2回】では、ネイティブテーブルと外部テーブル(Googleスプレッドシート)の違いと使い分けについて解説します。

執筆担当者プロフィール
寺内 爽併

寺内 爽併(日本ビジネスシステムズ株式会社)

メディア・エンターテインメント本部インテグレーション部3G所属。 Google CloudやGoogle Workspaceを中心に扱っています。

担当記事一覧