BigQueryとは? データ分析を強力に支援するデータウェアハウス

2024/06/13に公開されました。
2024/06/13に更新されました。

BigQueryとは?実際にBigQueryでSQLを実行し、分析結果を得る。


author: kwgc-t

はじめに

近年、データ活用の重要性が高まってきています。現状の解析や将来予測のためのBIツールであったり、OpenAIによって公開されたChatGPTを発端とした生成AIも活用するためにはデータ収集、整備が重要になってきています。

また、経済産業省が公開しているDX推進指標(引用リンク参照)では、データに関わるITシステム構築の定性指標が示されています。(筆者による抜粋と要約)

  • データを使いたい形で使えるITシステムとなっているか
  • 全社横断でデータを活用できるITシステムとなっているか
  • データを活用し、それに適したシステム環境を構築できているか

皆様はDX推進指標で示されたような問題を抱えていないでしょうか?

  • データの形式がバラバラで使いにくい
    • あるデータはテキスト、あるデータは画像、あるデータはバイナリ
  • どこにどんなデータがあるか把握できていない
    • 部署AのデータはファイルサーバーA、部署BのデータはファイルサーバーB
  • 意思決定のための参考情報としてデータを即時に取得できるようになっていない

データ活用のためにはデータ基盤の整備、構築が不可欠です。GoogleCloudではこれらの問題解決の糸口となるデータ基盤の構築およびデータ活用のためのサービスとしてBigQueryが提供されています。

BigQueryとは?

GoogleCloudがフルマネージドで提供するデータウェアレイク、データウェアハウス、データマート等を一元的に作成、管理ができるサービスです。データを格納するストレージや検索や分析のためのコンピュートリソースもGoogleCloudが全て管理しているため、メンテナンスの必要がありません。

BigQueryでできること

BigQueryは様々な機能や特徴があります。また、他のGoogleCloudのサービスとシームレスに連携も可能です。

非構造データの取り扱い

音声、画像、動画などテキストではないデータを取り扱うことが可能です。様々なフォーマットのデータを統一的な方法で操作が可能です。

データを論理的に集約

データを「データセット」という単位にまとめることで、部署ごとにデータを整理できます。例えば、部署Aのデータは部署A専用のデータセットに、部署Bのデータは部署B専用のデータセットに分けられます。これにより、データの所有者や管理者を明確にし、データセット単位でアクセス権限やバックアップを設定できます。

PB(ペタバイト)級のデータを高速処理

PBのデータも数秒で処理できる性能を持ちます。データの量や処理の複雑度に応じてGoogleCloudが自動的にコンピュートリソースの割当て、コストや処理時間の最適化を測っています。
この処理性能でデータ処理そのものにかかるコストや分析にかかる時間を大幅に圧縮できることが見込めます。また、大規模データを母体としていも即座にデータの取得ができます。

標準SQLで操作可能

SQL2011という事実上の標準規格のSQLで操作が行えます。RDBを利用して分析や開発をしているのであれば、特別なキャッチアップは不要です。
さらにBigQueryでは独自の関数も提供されており、より効率的に分析、開発が行える環境が整えられています。

機械学習モデルの構築・実行

BigQueryMLという機械学習サービスが提供されています。
SQLエディタ上でSQLを使い、機械学習モデルの構築が行えます。BigQuery上で構築されるモデルのため、データの移動の必要がなく、シームレスに機械学習への接続が行えます。

自然言語を使ったデータ分析

SQLが扱えないユーザーでも自然言語による問い合わせでデータ分析が行えます。
例えば2024年5月の売上を営業別に集計したい場合は、以下のように問い合わせが可能です。

2024年5月の営業別に売上を集計する

リアルタイムデータの収集

GoogleCloudにはメッセージングサービスとしてPub/Subが提供されています。Pub/SubはBigQueryと強力な連携を簡単に行うことができます。例えばセンサーから断続的に取得できるデータをBigQueryとPub/Subの連携によってリアルタイムに収集ができます。

BigQueryの使い方

BigQueryを使うために特別なツールは必要ありません。ブラウザからコンソールにアクセスし、SQLを入力するだけで使うことができます。

BigQueryをはじめる

前述の通り、BigQueryを使うためにはブラウザさえあればよいので、始めてみましょう。
BigQueryにはサンドボックスが用意されており、無料枠内であれば課金を有効にしなくても利用ができます。
いくつか準備が必要になるので、手順を紹介します。

BigQueryを使うための準備

Googleアカウントの作成

gmail.comのアカウントでBigQueryは利用できるので、以下手順に従って作成します。

GoogleCloudのプロジェクトの作成

BigQueryを利用するためにプロジェクトという枠組みを作成する必要があります。
以前の記事を参考にGoogleCloudのプロジェクトを作成してください。

BigQueryを使う

BigQueryの無料枠

BigQueryには無料枠が用意されています。この枠を越えるまでは課金は発生しません。

  • 毎月10GBまでのストレージ容量
  • 毎月1TBまでのスキャン

BigQueryのチュートリアル

BigQueryでシンプルな分析をしてみましょう。
GoogleはPublicDatasetという無償で公開しているデータがあるので、こちらを利用します。今回はSQLについての詳しい言及は行いません。

分析対象はglobal_air_qualityという大気中の汚染物質の含有量を計測したデータです。このデータを利用して分析をします。

分析内容: アメリカのHU-Beltsvilleというロケーションで観測された2022年5月の都市別、汚染物質別の汚染物質量の平均値を出す。
この分析のためのSQLが下記です。

SELECT
  city,                    -- 都市
  pollutant,               -- 汚染物質
  unit,                    -- 単位
  AVG(value) AS value      -- 量
FROM
  `bigquery-public-data.openaq.global_air_quality`
WHERE
  country = 'US'
  AND location = 'HU-Beltsville'
  AND timestamp BETWEEN "2022-05-01"
  AND "2022-05-31"
GROUP BY
  city,
  pollutant,
  unit

このSQLをBigQueryのSQLエディタにコピーし、実行すると下記の結果が得られます。
※2024年6月時点の結果であり、実際に得られる結果は異なる可能性があります。

citypollutantunitvalue
Washington-Arlington-Alexandriabcµg/m³0.2525568182
Washington-Arlington-Alexandriacoppm0.08704318937
Washington-Arlington-Alexandriao3ppm0.03008
Washington-Arlington-Alexandriano2ppm0.003835820896
Washington-Arlington-Alexandriaso2ppm0.00001142857143
Washington-Arlington-Alexandriapm25µg/m³4.815047022

終わりに

BigQueryの特徴や解決できる問題、利用方法について簡単に解説いたしました。 この他にもBigQueryには様々な仕組みがあります。セキュリティ確保のためのアクセス制御やデータのプロファイリング、処理のスケジューリング等です。

データ活用、整備に悩みがありましたら、BigQueryを活用することを検討してみてください。

引用

用語

用語解説
BIBusiness Intelligence。データを分析、可視化すること
フルマネージドプロバイダーが提供するサービスの基盤を全て管理していること
データレイク形式を整理せず、とにかくデータを蓄積し続ける場所、仕組みのこと
データウェアハウスデータレイクを源泉として、時系列等一定の基準を設けて整理する仕組みのこと
データマートデータウェアハウスを源泉として、データの活用を行いやすい形に整形、集約、フィルタリングをする仕組みのこと
PBペタバイト。TB(テラバイト)の約1,000倍の容量

※本記事は、ジーアイクラウド株式会社の見解を述べたものであり、必要な調査・検討は行っているものの必ずしもその正確性や真実性を保証するものではありません。

※リンクを利用する際には、必ず出典がGIC dryaki-blogであることを明記してください。
リンクの利用によりトラブルが発生した場合、リンクを設置した方ご自身の責任で対応してください。
ジーアイクラウド株式会社はユーザーによるリンクの利用につき、如何なる責任を負うものではありません。