3.1 はじめに

ここでは SQL の基本的なことを確認します. SQL を使ってデータを処理する機会は多々ありますが, このインターンシップではさほど高度な SQL の知識を要求しません. SELECT, JOIN, GROUP BY, ORDER BY, WHERE 句などを使って必要なデータの抜き出しやグループ集計などができるのならば, Treasure Data の説明をしている 4 章まで読み飛ばして問題ありません.

SQL とはリレーショナルデータベース言語です. ANSI によって規格が定められていますが, 実際には実装されているソフト(リレーショナルデータベース管理システム, RDBMS) によって様々なバリエーションがあります. 例えば、MySQL, PostgreSQL, Microsoft SQL Server, Oracle Database, Presto, HiveQL などがあります. それぞれのソフトがあつかうデータベースの仕様によって集約関数の名称が違ったり, 機能が追加されてたりしますが, ここで説明する内容は比較的共通したものとなっているはずです.

SQL や他のデータベースを操作するソフトウェアのほとんどでは, データを2次元の行列として扱い, これをテーブルと呼びます。つまり, エクセルのシートのように行と列で区切られたマスの行列を想像してください. よって SQL でも, ヨコの並びをレコード数または (row), タテの並びをまたはカラム (column) といいます。データサイエンスでは、行が観測点 (オブザベーション)、列が変数におおむね対応しますが, 管理する際の利便性の観点で変わるため必ずしも一致するとは限りません.

行と列で構成されたデータの塊がテーブルで, 複数のテーブルの集まりがデータベースです. データベースから様々なテーブルを取り出し, 集計加工することができるのが SQL です. どのようなテーブルを読み込み, どう集計して出力するかという命令文をクエリ (query)といいます. ここでは, SQL の基本的な操作を確認し, 今回のインターンシップで使用する Treasure Data (TD) の使い方の補足説明をします.