最近、BigQueryとSQLの違いは?というご質問が増加しています。
BigQueryとは、Googleが提供しているデータウェアハウスで、大量のデータを取り込み、分析することを目的にしたサービスです。一方、SQLはデータベースを操作するための言語のことです。
でも、このような回答だけでは、中々、納得するほどの理解は得られないのかもしれません。
この記事では、BigQueryとSQLの違いについて、この分野にお詳しくない方でもご理解できるように説明します。
BigQueryとSQLの違い
この記事のテーマであるBigQueryとSQLの違いは、それぞれの概要を理解することが最善の回答です。
正確にいうと、「BigQueryとSQLの違い」という疑問自体、的を射たご質問ではありません。「違い」ではなく、比較対象にすること自体がおかしいのです。
たとえば、下記のようなご質問には、違和感を感じるはずです。
ExcelとExcel関数の違い
普段、ExcelもExcel関数も使っている方であれば、このご質問に違和感を抱くはずです。ExcelとExcel関数は、比較するものではなく、Excel内で使うのがExcel関数だからです。
ExcelとExcel関数の関係性
前述の通り、ExcelとExcel関数は比較するものではありません。図で表現すると下記のようなイメージでしょう。
Excelは、知名度の高いOfficeソフトウェアのため、この例をご理解いただける方は多いのではないでしょうか。
もう一つ例を挙げれば「NewYork Timesと英語の違い」です。
BigQuryとSQLの関係性
次は、この記事のメインテーマであるBigQueryとSQLの違いについてです。
勘のよい方なら、すでに前節の例でご理解されていると思いますが、BigQueryとSQLの関係性もExcelとExcel関数の関係性と一緒です。
つまり、BigQuery内で使うのがSQL言語なのです。
上記イメージの赤枠内に記述されている構文がSQL言語です。
詳細解説
ここまでで、「BigQueryとSQLの違い」という疑問はおおむね解消されているかと思いますが、もう少し詳しい説明も添えておきます。
『ExcelとExcel関数』、『BigQueryとSQL』。
今回の記事では、両者の関係性を説明することで回答としましたが、この例には補足が必要です。
通常、Excel関数といえばExcel専用の関数という印象があると思いますが、BigQueryで使うSQL言語は汎用性の高い言語です。
SQLはBigQueryのみで使われる言語ではなく、データベース全般で使われる汎用性の高い言語です。
よって、正しい解釈としては、「BigQueryではSQL言語が採用されているため、SQL言語が使える」です。
SQLは汎用性の高いデータベース用言語ですが、実は、システム毎に独自のSQLが使われていた経緯があります。
(SQLの方言と呼ばれます)
たとえばプログラミング言語のような完全に標準化された言語とは、少し性質が異なるのです。BigQueryでも元々は独自のSQLが使われていたのですが、2016年頃から標準SQLをサポートしています。
あとがき
今回は、最近ご質問が多い「BigQueryとSQLの違い」について記事にしました。
身近なExcelの例を用いて説明しましたので、ご理解いただけたのであれば幸いです。
なお、BigQueryでも使えるSQL言語は汎用性の高い言語であることも説明しましたが、たとえば、データベースアプリケーションの「Microsoft Access」や、RDBMSの「MySQL」、「PostgreSQL」、「SQL Server」等のデータベースサービスでも、SQL言語を使います。
SQLは、RDBMSやBigQueryのようなデータウェアハウスで標準的に使う言語なのです。