この記事は「データベーススペシャリスト資格に興味はあるが、どのようなものか?どう学ぶのか?」という方向けに、具体的な内容と私自身の挑戦ログをお伝えする。学び中の方や、これから学ぼうとされる方の参考になれば幸いだ。
今回はSQLの基本・環境準備・考察について書く。
SQLとは何か
簡単な説明
- リレーショナルデータベース(複数の「表」でデータを扱うこと)の管理や操作を行うための言語
- 構造化された(Structured)問い合わせ(Query)のための言語(Language)
- 元々はIBMやOracleといったRDBMS(リレーショナルデータベース管理システム)を販売する企業により、自社のデータベース製品を操作するための言語として開発された。その後規格が定められ、汎用的に使えるようになった。
学ぶメリット(実用面)
- 自分で、幅広く、汎用的にデータ分析できるようになる。それによりデータから得られる知見が詳細になり、精度の高い「打ち手」が考えられるようになる。例えばコストがかかる販売促進キャンペーンを「筋の良い顧客」にのみ行う場合などだ。(生データをCSVで加工し、Google Big Queryに展開し、Big Query MLのような拡張機能を使う…などの合わせ技になる)
- データが「早く、色々な種類で、大量に集まる」(3Vと言う。Velocity,Variety,Volumeの略)ようになる一方、データの抽出・整形・分析といった作業をシステム部門に都度依頼しているのではスピードが出せなくなっている現実がある。
- 個人が大量の生データにアクセス可能な「データ分析の民主化」が始まった。また、環境も整いつつある。少しのやる気があれば自分で抽出・加工・分析は可能。他人依存から脱却できる。(エンジニアに都度依頼するのは双方大変だし生産性が下がる。)
- BIツールは世間にたくさんあるが、テンプレでできることは限られている。「時系列分析の幅をもっと広げたい」「別の観点を適用したい」などカスタムする場合、生データ(加工されていない最も細かい粒度)を使う必要が出てくる。このとき、エクセルでは扱いきれない量になるし、BIツールと直接連携すると複雑なフィルタ操作や動作が重くなる原因になる。
- そこで、CSVファイルの分析や、BIツールに取りこむ前のデータの抽出・整形といった前処理でSQLは多いに役に立つ。単体でも使えるし、他のBIツールと組み合わせてより多くのことができる。つまりやれることの幅が大きく広がる。
- BIツールはそれぞれの作法があるが、SQLは標準でありどこでも使える。つまり汎用性がある。
学ぶメリット(試験対策面)
- データベーススペシャリスト試験の合格率を引き上げる。本試験において、SQLは午前2、午後1、午後2で関連する出題がされ、その比率が高まっている。
- よってSQLを十分理解することが合格の絶対条件と言っても過言ではない。これはおそらくデータ分析がより世間で注目を浴びていることに起因するものだろう。
SQLをどのように習得するか
実際に手を動かすこと
- SQLは「言語」なので実際に手を動かすことが習得の必須条件。
- 現在は個人が、無料で、手軽に使える環境が整っている。
Google Big Queryを利用
- WindowsならMySQLを使う選択肢もあるが、インストールが必要であり、かつ基本的なSQLの動作のみとなる。
- 一方、Google Big Queryは「インストール不要」「基本的に無料※1」「Googleの様々な機能と連携可能※2」とメリットが多いため、これを使うことにする。
- ※1 データ量が月10GB、クエリ量が月1TBまで無料。個人演習なら1%も使わない。
- ※2 Googleアナリティクスのデータエクスポートが可能。GoogleスプレッドシートやGoogleデータポータルからも利用できる。つまりGoogleが提供する複数サービスにおけるデータ保持・加工のハブとしての役割を持っている。また、ユーザ独自データをアップロードして使ったり、主要なBIツールからの接続も可能。
Big Queryサンドボックスを利用
- Big Queryを無料で使うには「Google Cloud Platform」の無料トライアルを開始するか、サンドボックスを利用するかの二択。
- サンドボックスはクレカ登録不要で、そもそも「Big Queryを無料で試せるオプション」なのでこちらを利用する。
- ただしサンドボックスは全てのテーブルが60日間の有効期限がある。この点が心配な場合はサンドボックスから「Google Cloud Platform」の無料トライアルに移行するのが良い。
SQLの環境準備
アカウントの開設
- 以下のURLにアクセスし、Big Queryに移動をクリック
- https://cloud.google.com/bigquery/docs/sandbox/?hl-ja
プロジェクトの作成
- Big Queryのアカウントは、アカウント・プロジェクト・データセットという3つの階層で構成されている。
- 1つのアカウントの中に複数のプロジェクトを作成できる。
- 1つのプロジェクトの中に複数のデータセットを作成できる。
- 1つのデータセットの中に複数のテーブル・ビューを作成できる。
- まずは「プロジェクトを作成」をクリックしプロジェクトを作成する。
- プロジェクト名、プロジェクトIDを入力。場所の変更は不要。
考察
- SQLは言語なので、実際に手を動かさないと体得できないし、日常使いしないと忘れる。そのために時間を使うことは、本業・副業・私生活にどのくらいプラスになるのか具体的に考えてみた。
- まずシステム会社のエンジニアであれば、ユーザ権限設定や、データの参照・更新・削除で頻繁にSQLを扱うことになるだろう。複雑なクエリはパフォーマンスを落とすので、できるだけシンプルな設計の知識も不可欠だ。(ユーザの考える業務要件はパフォーマンス面を考慮していないことが多く、下流工程で問題が顕在化することも多い)
- 次にデータ分析をメインとする部署であれば、データの参照・分析でSQLを扱うことになるだろう。昨今ではそれ以外の事務部門でも、見込み客分析などで社内データを一部参照・分析することは普通になってきた。この際も言語体系はSQLに近いものが多くなる。(例えば生命保険業では従来の紙の申込書をタブレット入力で置き換える「ペーパレス化」がかなり浸透した。(令和4年システムアーキテクト試験の午後1問題にも出題されたばかり)。これにより、提案段階から最後の成立までデータが揃い、見込み客分析が容易になった。)
- そして、ITがこれからますます浸透すれば、データに係るエンジニアや部署のニーズはさらに高まると予測できる。実際、日本においてもまだまだ電子化が進んでいない分野は多い(医療分野のようにインセンティブが働きづらい業界や、コストパフォーマンスの問題から人手で解消している中小企業の事務作業など)。世界基準で見れば、これからITによる電子化が進むことは想像に難くない。
- なお、NOSQL(NOT ONLY SQLの略。例えばキーとバリューだけの構造など。シンプルなので大量処理に向く一方、データの整合性や一貫性などは担保されない。つまり向き不向きがある)が人気なので、SQLとRDB(リレーショナルデータベース)の知識は不要になるのでは、という点も考えてみる。結果としてNOSQLが広まってもSQLの知識は必要。向き不向きがあるから。
- つまり、SQLはエンジニアやデータ分析部門では頻繁に用いられる。そしてそれらの仕事のニーズが今後も高まるので、「SQLは食えるスキル」だと言える。事実、2022年4月時点で東京丸善のシステム関連書籍コーナーにおいて、SQLに係る本が大きな1棚分の「ディスプレイする配置」で置かれていた。他にこの規模を持つのはメタバースやAIなど。データ分析のニーズが高まった現代での汎用的なスキルとして注目を浴びていることがわかる。
- また、SQLを単なる座学で終わらせず、「SQLを用いたデータ分析」スキルとして学ぶとさらに「食えるスキル」になる。
- なぜか。それは、例えばセキュリティの問題からSQLを使えない部署だったとしても、データ分析の勘所はそのまま活かせるから。例えば見込み客分析は一定のセオリーがある。
- また、副業においては例えばアナリティクスの分析、私生活においては経済データ分析などの活用まで想定される。つまり本業として重宝するだけでなく、自分の人生を豊かにするにも使える。
- まとめ。いまは大量かつ多様なデータが早く集まるようになった。そして自分で条件をカスタムし、より幅広い分析を行うための「大量の生データの加工・成形」にSQLは不可欠。(エクセルでは管理しきれず、BIツールで扱うと処理が複雑化し重くなるから)
- IT技術の浸透スピードと世間のニーズ、私自身のやりたいことを考えれば「概念データモデルを用いた業務の見える化」と「SQLを用いたデータ分析」は「体得すべきスキル」。2022年秋試験にむけ、前者は過去問、後者は演習を通じ「実際に手を動かし体得」。試験後も日常使いし、常にスキルを磨く。
参考書籍
- 集中演習 SQL入門/木田和廣/株式会社インプレス
- データベーススペシャリスト2022年版/三好康之/翔泳社
- おうちで学べるデータベースのきほん/ミック,木村明治/翔泳社
コメント