BigQueryのSQLとは?よく使うSQL構文を紹介

Marketing

GoogleAnalytics4になってBigQueryが注目されていますが、データ取得のためのSQL構文はどのように作成すればよいのでしょうか。
本稿ではSQLの説明と作成方法について解説します。

目次

1.BigQueryのSQLとは

SQLとは、大量のデータから条件に該当するデータを抽出したり、データの追加や削除を行う命令を出す言語のことです。

BigQuery は、標準SQLGoogle Standard SQL)とレガシーSQL と呼ばれる2つのSQL 言語をサポートしています。Google CloudBigQuery に保存されているデータに対しては「業界標準に準拠し、拡張機能をもつ標準SQLを利用することを推奨」していますので、これからBigQueryを始める場合、まずは標準SQLでできることを確認しましょう。

2.BigQueryのSQL構文

2-1.標準SQLがサポートする構文

BigQueryの標準SQLがサポートするSQL構文(ステートメント)を分類すると、下記の表になります。

2.BigQueryのSQL構文

参考:Google CloudBigQueryでのSQLの概要

2-2.SQL構文の内容

各分類についてそれぞれ詳しく見ていきます。

①データクエリ言語(DQL
SQL構文としては代表的なSELECT構文ですが、一般的なデータベースでは多くの場合③のDMLにまとめられるところ、BigQuery ではDQLに含まれています。

SELECT構文はデータから必要な情報を取得するための命令文で下記のような基本構文となります。

SELECT [取り出したい列] FROM [データセット名]. [テーブル名];

※取り出したい列が複数ある場合は「,(カンマ)」でつなぐ

SELECTの後ろで取り出したい列を指定し(複数列取得する場合はカンマでつなぐ)、FROMの後ろでデータを取り出す元となるテーブルを指定します。

BigQueryでは、テーブルの指定は、「データセット名.(ドット)テーブル名」となります。
末尾にSQL構文がそこで終了したことを示す「;(セミコロン)」を記述
取得したい要素の項目に「*(アスタリスク)」を入れると全ての要素を取得することができます。

SELECT * FROM [データセット名]. [テーブル名];

ただしアスタリスクを利用して全カラムを取得するとクエリ量が増えてしまうため、BigQueryを無料枠で利用している場合など、クエリ量の上限を超えないか注意が必要です。

また、FROMの前に「EXCEPT(除外したい列)」を入れることで、指定した列を除外することができます。

SELECT * EXCEPT(除外したい列) FROM [データセット名]. [テーブル名];

 ②データ定義言語(DDL
一般的なDDLCREATEALTERDROP)が利用可能で、BigQuery 固有のリソース制御も用意されています。
他のデータベースと比較すると、CREATE INDEX 文が見当たりませんが、2022年4月にPreview 版として、検索インデックス機能がリリースされました。

Google Cloud検索インデックスを管理する

>>DDL公式マニュアルはこちら

CREATE構文は、スキーマやデータセットを作成するのに使用します。

CREATE TABLE {[プロジェクトID].}[データセット名].[テーブル名]

GCPの他のプロジェクトにアクセスしない場合、プロジェクトIDは省略可。
指定する場合は「`(バッククオート)」でつなぐ
(例:`project-id.dataset_name.table_name`

③データ操作言語(DML
一般的なDMLCREATEALTERDROP)が利用可能です。またMERGE TRUNCATE も対応しています。TRUNCATE TABLE は、従来はDELETEを使う必要がありましたが、202010月リリースで新機能として対応しました。

Google Cloudユーザーを笑顔にするBigQuery の使いやすい SQL新機能

>>DML公式マニュアルはこちら

INSERT構文は、テーブルに新しい行を追加するときに使います。

INSERT INTO {[プロジェクトID].}[データセット名].[テーブル名]

※プロジェクトIDに対する定義はCREATE構文と同様

④データ制御言語(DCL
一般的なDCL と同様、アクセス権付与や権限はく奪が利用可能です。

>>DCL公式マニュアルはこちら

⑤手続き型言語・⑥トランザクション制御言語(TCL
1つのリクエストで複数のSQL を実行可能です。20216月にトランザクション管理にも対応しました。

>>手続き型言語・TCL公式マニュアルはこちら

⑦その他
テーブルからのエクスポートや、テーブルへのローダー機能が利用可能です。

>>標準SQLその他公式マニュアルはこちら

3.まとめ

BigQuerySQLについて、主に標準SQLがサポートするSQL構文の説明と作成方法について説明しました。各SQLの意味と使い方さえわかれば、簡単な構文は作成できると思います。ただ全ての要素を取得するような構文を多用してしまうと、無料枠の上限を超えてしまう可能性がありますのでご注意ください。
また複雑なSQL構文やレガシーSQLを利用したい場合などは、お気軽にお問合せください。

>>データ分析・活用支援サービス

DOWNLOADこの記事に関連する資料のダウンロード


RECOMMENDおすすめ記事

CONTACT お問い合わせ・ご相談

セールス・マーケティングに関する
お悩みなら
私たちにお任せください

パーソルビジネスプロセスデザインでは、
マーケティング領域からセールス領域まで
一貫したご支援が可能です。
「データドリブンマーケティングを実現したい」
「営業のパフォーマンスを上げたい」
「ツールを導入したが成果が上がらない」
そんな場合でも、
まずはお気軽にお問い合わせください。
専門のコンサルタントがお客様と
伴走しながらゴールを目指します。
さあ、私たちと一緒に一歩を踏み出しましょう。

PAGE TOP