記事の対象者と解消できるお悩み
【対象者】
プログラミング未経験のビジネス職
【興味関心】
- データ分析にご興味がある
- 業務で必要としている
【解消できるお悩み】
- データ分析に興味はあるけど何から始めればいいか分からない…
- SQLって難しそう…プログラミング経験がない自分でも理解できる?
- 無料でデータ分析を試せる環境が欲しい
- BigQueryの使い方を具体的に知りたい
- 実際のデータを使ってどんな分析ができるのか知りたい
記事作成者
【人物】株式会社志庵 代表取締役 佐藤 光 起業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兆行のデータ
概要
「データ分析に興味があるけど、難しそうでなかなか手が出せない…」
そんな悩みをお持ちの方へ。
Google CloudのBigQueryは強力なデータ分析ツールでありながら、初心者でも扱いやすいインターフェースと無料枠を提供しています。
さらに、BigQueryには無料で利用できる豊富な公開データセットが用意されており、実際にデータを触りながらSQLを学ぶことができます。
この記事ではBigQueryの基本的な使い方から、SQLの基本構文、そしてBigQueryの公開データを使った実践的な分析例まで、
ステップバイステップで解説します。
プログラミング経験がなくてもこの記事を読めば、BigQueryを使ってデータ分析の第一歩を踏み出せるはずです。
目次
- BigQueryとは?
- BigQueryを使うメリット
- BigQueryを始める3ステップ
- BigQueryで使うSQLの基本構文
- BigQueryでよく使う集計関数
- BigQuery公開データで実践!SQL分析例
- FAQ:BigQueryに関するよくある質問
- まとめ:BigQueryでデータ分析の世界へ飛び込もう!
1. BigQueryとは?
BigQueryはGoogle Cloud Platformが提供するフルマネージド型のサーバーレスデータウェアハウスです。
ペタバイト規模のデータに対しても、高速なSQLクエリを実行し、分析することができます。
従来のデータウェアハウスと比べて、圧倒的な処理速度とスケーラビリティ、コストパフォーマンスの高さが特徴です。
BigQueryはデータの保存、処理、分析といった作業をすべてGoogleが管理するため、ユーザーはインフラストラクチャの管理に煩わされることなく、データ分析に集中できます。
また、Google Cloud Platformの他のサービスと連携することで、より高度なデータ活用が可能になります。
当社ではBigQuery導入コンサルティングのご相談を承っております。
2. BigQueryを使うメリット
BigQueryには以下のようなメリットがあります。
- 高速なクエリ処理: 大規模なデータに対しても高速なクエリ処理を実現します。
- スケーラビリティ: データ量やユーザー数が増加しても、柔軟に対応できます。
- コストパフォーマンスの高さ: 従量課金制なので、必要な時に必要なだけ利用でき、コストを抑えられます。
- 使いやすさ: サーバーレスであるため、インフラストラクチャの管理が不要で、簡単に使い始めることができます。
- 豊富な分析機能: SQL、機械学習、地理空間分析など、様々な分析機能が提供されています。
- 高いセキュリティ: Google Cloudの強固なセキュリティ基盤により、安心してデータを管理できます。
- 無料枠: 毎月1TBまでのクエリ処理と、毎月10GBまでのストレージが無料で利用できます。
- 豊富な公開データセット: 様々な分野のデータが無料で公開されており、データ分析の学習や実験に利用できます。
3. BigQueryを始める3ステップ
BigQueryを始めるには以下の3つのステップが必要です。
3.1 ステップ1:Google Cloud Platformアカウントの作成
BigQueryを利用するにはGoogle Cloud Platformのアカウントが必要です。
まだアカウントをお持ちでない方は、Google Cloud Platformのウェブサイトからアカウントを作成しましょう。
無料トライアルも利用できます。
3.2 ステップ2:BigQueryプロジェクトの作成
Google Cloud Platformのアカウントを作成したら、BigQueryプロジェクトを作成します。
BigQueryプロジェクトはBigQueryのリソースを管理するための単位です。
プロジェクトごとにデータセットやテーブルを管理することができます。
Google Cloud Platformのコンソールにログインし、プロジェクト選択メニューから「新しいプロジェクト」を選択し、プロジェクト名を入力して「作成」をクリックします。
3.3 ステップ3:公開データセットの選択
BigQueryには様々な分野のデータが無料で公開されています。
これらの公開データセットはBigQueryコンソールの「公開データセット」タブからアクセスできます。
データ分析の練習に最適なデータセットを探してみましょう。
下記記事も参考になります。
当社ではBigQuery導入コンサルティングを承っております
4. BigQueryで使うSQLの基本構文
BigQueryでデータを分析するにはSQL(Structured Query Language)という言語を使います。
SQLはデータベースを操作するための標準的な言語であり、BigQueryでも広く使われています。
ここではSQLの基本的な構文をいくつか紹介します。
4.1 SELECT文:データを取得する
SELECT文は、データベースからデータを取得するための基本的な構文です。取得したい列名と、データを取得するテーブル名を指定します。
構文:
SELECT 列名1, 列名2, ... FROM テーブル名;
例: employeesテーブルから、employee_idとemployee_name列のデータを取得する
SELECT employee_id, employee_name FROM employees;
4.2 FROM句:テーブルを指定する
FROM句は、データを取得するテーブル名を指定します。SELECT文と組み合わせて使用します。
構文:
SELECT * FROM テーブル名;
例: employeesテーブルから、すべての列のデータを取得する
SELECT * FROM employees;
4.3 WHERE句:条件に合致するデータを取得する
WHERE句は、データを取得する条件を指定します。条件に合致するデータのみが取得されます。SELECT文と組み合わせて使用します。
構文:
SELECT * FROM テーブル名 WHERE 条件;
例: employeesテーブルから、departmentが’Sales’の従業員のデータを取得する
SELECT * FROM employees WHERE department = 'Sales';
4.4 ORDER BY句:データを並び替える
ORDER BY句は、データを取得する順番を指定します。昇順(小さい順)に並べたい場合は「ASC」、降順(大きい順)に並べたい場合は「DESC」を指定します。SELECT文と組み合わせて使用します。
構文:
SELECT * FROM テーブル名 ORDER BY 列名 ASC;
例: employeesテーブルから、salaryを昇順に並べて、すべての列のデータを取得する
SELECT * FROM employees ORDER BY salary ASC;
4.5 LIMIT句:取得するデータ件数を制限する
LIMIT句は、データを取得する件数を制限します。SELECT文と組み合わせて使用します。
構文:
SELECT * FROM テーブル名 LIMIT 件数;
例: employeesテーブルから、上位10件のデータを取得する
SELECT * FROM employees LIMIT 10;
5. BigQueryでよく使う集計関数
集計関数は複数の行の値を集計して、1つの値を返す関数です。
BigQueryでは多様な集計関数が用意されています。
ここではよく使われる集計関数をいくつか紹介します。
5.1 ANY_VALUE
グループ内の任意の値を返します。主に、`GROUP BY`句で集計した際に、集計対象以外のカラムの値を取得したい場合に利用します。
構文:
ANY_VALUE(expression)
例: 各部署で最も高い給与を取得している従業員の名前を一人取得する
SELECT department, ANY_VALUE(employee_name) AS highest_salary_employee FROM employees GROUP BY department;
5.2 ARRAY_AGG
グループ内の値を配列に集約します。重複を除去したい場合は`DISTINCT`キーワードを使用します。
構文:
ARRAY_AGG([DISTINCT] expression [{ORDER BY key [ASC|DESC]} LIMIT n])
例: 各部署に所属する従業員の名前を配列で取得する
SELECT department, ARRAY_AGG(employee_name) AS employees FROM employees GROUP BY department;
5.3 AVG
グループ内の平均値を計算します。
構文:
AVG(expression)
例: 各部署の平均給与を計算する
SELECT department, AVG(salary) AS average_salary FROM employees GROUP BY department;
5.4 BIT_AND
グループ内のすべての値のビット単位ANDを計算します。主に、整数値に対してビット演算を行う際に利用します。
構文:
BIT_AND(expression)
例: 各製品カテゴリのステータスフラグのビット単位ANDを計算する
SELECT category, BIT_AND(status_flag) AS combined_status FROM products GROUP BY category;
5.5 BIT_OR
グループ内のすべての値のビット単位ORを計算します。主に、整数値に対してビット演算を行う際に利用します。
構文:
BIT_OR(expression)
例: 各製品カテゴリの機能フラグのビット単位ORを計算する
SELECT category, BIT_OR(feature_flag) AS combined_features FROM products GROUP BY category;
5.6 BIT_XOR
グループ内のすべての値のビット単位XORを計算します。主に、整数値に対してビット演算を行う際に利用します。
構文:
BIT_XOR(expression)
例: 各ユーザーグループの権限フラグのビット単位XORを計算する
SELECT user_group, BIT_XOR(permission_flag) AS different_permissions FROM user_permissions GROUP BY user_group;
5.7 COUNT
グループ内の行数をカウントします。`DISTINCT`キーワードを使用すると、重複を除去してカウントします。
構文:
COUNT([DISTINCT] expression)
例: employeesテーブルの従業員数をカウントする
SELECT COUNT(*) AS employee_count FROM employees;
5.8 COUNTIF
グループ内で条件に合致する行数をカウントします。
構文:
COUNTIF(condition)
例: 給与が10000以上の従業員数をカウントする
SELECT COUNTIF(salary >= 10000) AS high_salary_count FROM employees;
5.9 LOGICAL_AND
グループ内のすべての値が真であるかどうかを判定します。すべて真であれば`TRUE`、そうでなければ`FALSE`を返します。
構文:
LOGICAL_AND(expression)
例: すべての製品が在庫ありかどうかを判定する
SELECT LOGICAL_AND(in_stock) AS all_in_stock FROM products;
5.10 LOGICAL_OR
グループ内に真の値が1つ以上あるかどうかを判定します。1つ以上真であれば`TRUE`、そうでなければ`FALSE`を返します。
構文:
LOGICAL_OR(expression)
例: アクティブなユーザーがいるかどうかを判定する
SELECT LOGICAL_OR(is_active) AS any_active_user FROM users;
5.11 MAX
グループ内の最大値を返します。
構文:
MAX(expression)
例: employeesテーブルの最大給与を取得する
SELECT MAX(salary) AS max_salary FROM employees;
5.12 MIN
グループ内の最小値を返します。
構文:
MIN(expression)
例: productsテーブルの最低価格を取得する
SELECT MIN(price) AS min_price FROM products;
5.13 STRING_AGG
グループ内の文字列値を連結します。区切り文字を指定することもできます。
構文:
STRING_AGG([DISTINCT] expression [, delimiter])
例: 各部署に所属する従業員の名前をカンマ区切りで連結する
SELECT department, STRING_AGG(employee_name, ', ') AS employee_names FROM employees GROUP BY department;
5.14 SUM
グループ内の合計値を計算します。
構文:
SUM(expression)
例: salesテーブルの売上合計を計算する
SELECT SUM(sales) AS total_sales FROM sales;
6. BigQuery公開データで実践!SQL分析例
ここではBigQueryの公開データセット「GitHub」を使って、簡単なSQL分析例を紹介します。
このデータセットにはGitHub上のリポジトリやユーザーに関する情報が格納されています。
例:プログラミング言語別のリポジトリ数を集計する
SELECT lg.name as lang, COUNT(*) AS repo_count
FROM `bigquery-public-data.github_repos.languages`
, unnest(language) as lg
GROUP BY 1
ORDER BY repo_count DESC LIMIT 10
このクエリを実行すると、GitHubで最も多く使われているプログラミング言語上位10件と、それぞれの言語で作成されたリポジトリ数が表示されます。
このクエリでは、`SELECT`, `FROM`, `WHERE`, `GROUP BY`, `ORDER BY`, `LIMIT` などの基本的なSQL構文と、集計関数 `COUNT(*)` を使用しています。
当社ではBigQueryを活用したデータ分析サービスも提供しています。
7. FAQ:BigQueryに関するよくある質問
Q1. BigQueryの無料枠を超えて利用するとどのくらい費用がかかりますか?
無料枠を超えた場合従量課金制で料金が発生します。
料金は処理したデータ量やストレージ容量などによって異なります。
BigQueryの無料枠は毎月1TBまでのクエリ処理と毎月10GBまでのストレージです。
詳しくはBigQueryの料金ページをご確認ください。
Q2. BigQueryで使えるSQLは他のデータベースと同じですか?
BigQueryは標準SQLをサポートしており、他のデータベースで学んだSQLの知識を活かすことができます。
ただし、BigQuery独自の関数や構文も存在するため、BigQueryのドキュメントで詳細を確認することをおすすめします。
Q3. SQLの学習にはどのような教材がありますか?
SQLの学習にはオンライン学習サイト、書籍、動画教材など、様々な教材があります。
初心者向けの教材から、上級者向けの教材まで、レベルに合わせて選ぶことができます。
Googleが提供するBigQueryのチュートリアルもSQLの学習に役立ちます。
8. まとめ:BigQueryでデータ分析の世界へ飛び込もう!
BigQueryは強力なデータ分析ツールでありながら、初心者でも扱いやすいインターフェースと無料枠を提供しています。
無料公開データセットを活用すれば、費用をかけずにSQLを学び、データ分析のスキルを磨くことができます。
この記事を参考にBigQueryでデータ分析の世界へ飛び込んでみましょう!
当社では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