要約
- エンジニア以外の職種の方々がSQLを学ぶことはメリットがたくさんある
- SQLは他のプログラミング言語と比べてそこまでハードルは高くない
- trocco最高!!データカタログめっちゃ便利なのでオススメ!!
はじめに
「データドリブン」とか、「データ利活用」とか、
データをうまいこと使って効率よく業務回していこうよ!!という風潮がメジャーになり(なって欲しい)
現在では非常に多くの部門やチームでデータの利活用が行われています。
セールスやマーケターなど、エンジニアでは無い人が
SQLを利用してデータを取得・加工している場面もよく目にするようになりました。
エンジニアではないが、SQLに興味はある。
だけど、SQLはやったことないし、できたほうが便利なのはわかっているけど、
正直流行っているだけで、本当に役に立つのかも怪しい。
何事も、身につける上で難易度なんて人それぞれかと思います。
ただ、前述の通り、データドリブンであることがスタンダードになりつつ昨今、
SQLスキルを取得することのメリットは大きいはずです。
また、(他のプログラミング言語と比べて)SQLは非エンジニアにもとっかかりやすいので
そこまでハードル高くないよ、とも思います。
どうしたらSQLの習得に前向きになってもらえるかを
深夜のテンションで考えた結果、記事ができあがりました。
なお、技術的なことは今回一切書いておりません。また内容にも保証はありません。
アドベンドカレンダー用のポエムです
読んでほしい人
- データの抽出・加工に課題を感じている、エンジニア以外の職種の人。
- SQLに興味があるけど、、難しそうだから手をこまねいている人
- SQL初心者でつまづきそうな人
- SQL以外のプログラミング言語に挑戦したけど挫折した人
- クリスマスやサンタクロースが好きな人
- 暇で他にやることがない人
読まない方がいい人
- クリスマスやサンタクロースというワードが嫌いな人
- 暇じゃない人
データドリブンに必要なもの
「データドリブン」にやろうと思っても、すぐにできるわけではありません。
データ分析基盤を作る必要があります。
データ分析基盤を作るために必要なことは以下です。
1. 様々なデータソースからデータを収集
2. 収集したデータをDWHへ投入する
3. DWHへ投入したデータを使いやすいようにSQL等で加工する
4. 加工した結果を抽出したり、可視化したりする
1~4は、主にエンジニアが担当する領域です。
1~2は、「データ分析基盤を作る」
3~4は、「データ分析基盤を運用する」ために必要なことです。
ただし、社内のエンジニアが少ない・いない・頼れないなどで
データ分析基盤が作れず、、困っている方も多いのではないでしょうか。
また、データ分析基盤はあるものの、エンジニアが忙しくてオーダーの順番待ちに回されてしまう…なんて人もいるのではないでしょうか。
エンジニアの仕事とサンタクロースの仕事には共通点がある
急にどうしたという感じですね。
まず、 仕事内容で比較してみましょう。
- プレゼントを仕入れる( = 様々なデータソースからデータを収集)
- 倉庫に運ぶ (= 収集したデータをDWHへ投入する)
- 倉庫からプレゼントを選びラッピングする ( = DWHへ投入したデータを使いやすいようにSQL等で加工する)
- 各エリアに届ける( = 加工した結果を抽出したり、可視化したりする)
また、 仕事で必要とされるスキルで比較してみましょう。
サンタクロース( = エンジニア ) になるためには
- 空を飛ぶソリ操縦の運転免許 ( = エンジニアリング力 )
- 各エリアに必要なアイテムを適切に梱包し届ける技術 ( = データを加工・抽出する技術 )
が必要です。
つまり サンタクロースはエンジニアであり、
エンジニアはサンタクロース と言っても良いでしょう。
面倒くさいので、しばらくは サンタクロースはエンジニアである前提で話を進めます。
サンタクロース 我が家に来ない問題
残念ながら、サンタクロースの人数には限りがあります。
先程、以下のようにお伝えしました。
サンタクロース( = エンジニア) になるためには
- 空を飛ぶソリ操縦の運転免許 ( = エンジニアリング力 ) と
- 各エリアに必要なアイテムを適切に梱包し届ける技術 ( = データを加工・抽出する技術)
が必要です。
実は、これらを両方兼ね備えたサンタクロースの育成・発掘はなかなか大変です。
また、サンタクロースと契約するにはまあまあ高いお金が必要になります。
各エリアで、十分なサンタクロースの人数を確保するのは大変なことなのです。
クリスマスなのに、サンタクロースがいないから、プレゼントをもらえない。
そんなエリアにお住まいの方々もいるのではないでしょうか?
サンタクロースがいないエリアにお住まいの方々は、そういうものだと諦めるしかないのでしょうか??
サンタクロースが少ないエリアにお住まいの方は、クリスマスを過ぎて年明けになってしまっても、
プレゼントが届くことを信じて、健気に待つことしかできないのでしょうか??
違います。
あなたがサンタクロースの代わりになって、プレゼントを届けてあげればよいのです。
そろそろサンタクロースという言葉に脳が疲れてきたと思いますので
ここからはちょっとずつ話に戻します。
データ分析基盤に必要な要素
データ分析基盤を作り、効果的に運用するために、以下が必要とお伝えしました。
- 空を飛ぶソリ操縦の運転免許 ( = エンジニアリング力 ) と
- 各エリアに必要なアイテムを適切に梱包する技術 ( = データを加工する技術)
これらについて簡単に現状をご説明します。
エンジニアリング力
エンジニアリング力というのは、プログラミングができて、システム周りの環境を構築できて、
実現したいことを実現できる力みたいな感じだと思ってください。
先程お話した、「データ分析基盤を作るために必要なこと」のうち、1~2に必要な力になります。
1. 様々なデータソースからデータを収集する
2. 収集したデータをDWHへ投入する
3. DWHへ投入したデータを使いやすいようにSQL等で加工する
4. 加工した結果を抽出したり、可視化したりする
まずエンジニアリング力を身につけるのは大変です。
日々エンジニアは厳しい修行に耐え、しのぎを削ってエンジニア力を鍛え高めています。
エンジニア同士で、生き残りをかけた戦いが行われているのです。
また、十分なエンジニアリング力がないと、
イチからデータを取得し連携する仕組みを構築しようとすると大変です。
つまり、高いエンジニア力をもつエンジニアを確保することは、非常に難しいことなのです。
でも大丈夫。
現代の世の中には、エンジニアリング力にあまり左右されず、
データ連携を可能にするサービスやツールがあります。
それが trocco 。
画面に従って設定をするだけで、データの収集・連携が簡単に実現可能です。
troccoのようなサービスを用いることで
エンジニアでない方でも、データの収集が可能になります。
サンタクロース( = エンジニア ) がソリに乗る ( = エンジニアリング力で解決する )なら、
troccoは 無免許でも乗れて空も跳べる、電動キックボードみたいなものといってよいでしょう。
もちろん、この電動スクーターはソリに乗るより圧倒的に簡単でメンテナンスも楽ちんです。
ソリだとトナカイの飼育という手間が発生しますよね。それがなくなります。
あまりにもクリスマスに毒された表現になってしまいましたね。
troccoだと、コードを書く手間がぐっと減らせて、また運用面でも便利な機能が詰まってます。
troccoは機能面でも運用コスト面でも、 エンジニアの皆様に非常にご活用いただいております。
そういうことが言いたかったんです。
話が脱線してしまいました。
つまり、 現代社会では、高いエンジニアリング力を持つエンジニアが沢山いなくても、便利なツールを活用することで、データ分析基盤が作れるのです。
データを加工・抽出する技術
これが本題です。
1. 様々なデータソースからデータを収集する
2. 収集したデータをDWHへ投入する
3. DWHへ投入したデータを使いやすいようにSQL等で加工する
4. 加工した結果を抽出したり、可視化したりする
データを加工・抽出する技術は、3~4で必要になります。
1~2が簡単にできるようになっても、3~4が十分にできないと
せっかく作ったデータ分析基盤はデータの倉庫となり、本当に使いたいデータはどこかに眠ったまま…
また、データを取り出すのも一苦労です。
データを加工する技術は色々ありますが、エンジニアはSQLという言語を利用しています。
というより、SQLが一番使いやすく、 SQLができればある程度なんでもできます。
これがSQLの取得をオススメする第一の理由です。
とはよくいうものの、エンジニアではない方がはこう思うことでしょう。
- SQLなんて書いたことがないからできない
- プログラミングでしょ?なんか難しそう
- だったら普段触っていて手慣れているExcelやマクロみたいにやりたい
Excelやマクロがとても得意で何でもシュッとできる方であれば、それで全然問題ないと思います。
ただし、Excelやマクロでデータを効率よく収集・加工できず、
かつ、これ以上どうにかできるポジティブなイメージがついていないからこそ
SQLの存在を知るまでにたどり着いたのではないでしょうか。
つまり
データの取得・収集はツールに任せればある程度はできるけど
より効率よく、より使いやすい形で収集し、加工するにはSQLできたほうが良いよね
ということです。
逆に、SQLができれば、あなたもサンタクロースのように
必要なデータを必要としているメンバーに届けることができます!!
でも、難しいんでしょう…?
そんなことはありません。
SQLの学習は(他の言語と比べて)圧倒的にわかりやすく、かつ、リターンが大きいです。
SQLのよいところ① (他の言語と比べて)圧倒的にわかりやすい
そもそも「何の処理をやっているのか」がなんとなくわかる。
SELECTだったら選択、UPDATEだったら更新…
詳しい動きは解読が必要だけど、とりあえず何やっているかはパッとみてわかる。
個人的にはマクロより全然とっつきやすいです。
また、SQLはデータベースを操作する言語です。
そのため、世界がデータベースに閉じている。
「SQLを書くだけ」であれば、ブラウザとか、サーバーとか、ネットワークとか
他に意識することがそんなにないのも、エンジニアじゃない人からしてみれば嬉しいところ。
SQLのよいところ② いろんな製品で使える
SQLを覚えると、データベースに保存されているデータに対して
「取得」「更新」「削除」「追加」ができるようになります。
更に、SQLは国際標準化されているため
データベースやDWHはもちろん、様々なサービスや製品でSQL/SQLに近しいものが実行できます。
一度覚えたことが、他で無駄にならないってめっちゃよくないですか?
SQLのよいところ③ 基本的な機能が使えれば実務で十分活かせる。
SQLの基本動作は「選択」「更新」「挿入」「削除」の4つに分けられます。
さらに、「選択」さえ身につけ、必要なデータを取り出すことができれば、すぐに実務で活かすことができます。
ちなみにこの「選択」の動作ですが、突き詰めると色々な事が、色々な様にできます。
つまりはやりこみ要素です。
わかりやすくて、無限に遊べる。SQLって神ゲーなのかもしれません。
やる気あればできるってコト?
ぶっちゃけやる気あればできます。
でもそんなガチなやる気じゃなくて、試しにやってみようかな、ぐらいの気持ちで大丈夫です。
試しにやってみたらわかります。
そこまでいうならオススメの勉強法とか教えてくれるわけ?
なんでもそうですが、実際に手を動かしてみることが一番だと思います。
例えば、すでに会社内でBigQuery、RedshiftなどのDWHを利用していて、参照権限をもらっている場合。
試しに自分が使う情報をパッと抜けるSQLを書いてみるとか。
それで自分が便利になればハッピーだし、勉強にもなるし、一石二鳥ですよね。
DWH以外でも。
例えばBIツールによっては、SQLライクに操作できる機能を搭載しているものもあります。
現状使えるDWHもBIも無い場合も大丈夫。
簡単にSQLを触れる、いい方法がいくつかあります。
例えば練習問題に対してブラウザでSQLを書いて実行できるサイトは沢山あります。
http://sql.main.jp/
Googleスプレッドシートでは、表をテーブルに見立て、SQLライクに操作できたりします。
https://admin-it.xyz/operation-efficiency/spreadsheet-query-series1/
ちょっと難易度は上がりますが、自分のパソコンに自分専用のデータベースを作って、実行してみるとかもオススメ。
教本やオンラインラーニングなどを検討している場合、大抵そちらに自分専用の練習環境の作り方も書いてあるので、それに従えば大丈夫◎
初心者学習!となると、教本やオンラインラーニングなどがメジャーだと思いますが
まずは自分が便利に使えるSQLを作ってみて、それをどんどんアップデートしていくほうが体に刻み込まれます。
ただし、SQLはデータベースを操作する言語という性質上、
ちゃんとやろうとすればするほど、データベースに関する論理的が必要になります。
これは、手を動かすだけではなかなか身につかないこともあるので、
そちらだけはきちんと知識を身に着けていく必要があるかも。
本格的に学習をしたい場合は、もっと詳しくまとめてくれている先人がいるので、そちらを見てください!
どうですか?
話が脱線しまくりましたが、ちょっとはSQLに対するチャレンジのハードルが下がったら嬉しいです。
この記事を何故かここまで読んでしまったSQLが書けるエンジニアの方へ
データ抽出やってみたい! SQLも勉強してるんです!
そんな非エンジニアの方が近くにいたら大切にすべき貴重な人材なので
ぜひ応援とサポートをしてあげてください。
優しくするつもりで、エンジニアじゃなきゃ難しいよとか言わなくていいです
実行環境どうやってつくればいいよとか、
オススメの勉強法はコレだよとか教えてあげてくださいね。
社交辞令だったら、そのときはそのときです。
最後に
私がカスタマーサクセスを努めているtroccoはとても優れたETL/ELTツールです!!
ユーザーとしては、情シス、エンジニアの方に多いですが、マーケターや営業の方にもご愛用いただいております。
SQLがなくても設定可能なデータソースはありますが、
SQLが書けるようになると、さらに柔軟にできるコトが増えますよ!!
さらに、troccoにはSQL作成を支援する機能も備わっています。
それが データカタログ機能!!
例えば…
「SQLは書けるようになったけど、肝心のデータ同士の関係性を調べるのに時間がかかる…」
そんなときは、データ同士の関係を表現してくれる ER図作成機能や、カラムリネージ機能が便利
「自分が抽出したいデータが、どのテーブルのどの項目を見ればいいのかわからない…」
なんと。データカタログ機能では、テーブル名/カラム名/メタデータ(データについての説明書きみたいなデータ)をまたいだ あいまい検索に対応しています。
気になるワードから、気軽にデータに関する調査が進められるのは嬉しいですね
私も、業務に必要なデータを抽出するSQLを書くときは、データカタログを活用しています
またtroccoを開発・運営しているprimeNumberでは、ソリューションサービスも提供しています。
データ利活用における課題解決はもちろん、お客様自身でデータ利活用を自走いただけるようサポートをしています。
クリスマス的にいうと
サンタクロースの代わりにプレゼントを配りたいけど、
空を飛ぶソリの免許を持っていない人に、空を飛べる電動キックボードを提供する。
肝心のサンタクロース不足も解消するために、サンタクロースの育成もする。
世界中のみんなに、データというプレゼントを届けるため頑張る、夢たっぷりやさしい会社です。
僕はこの会社に転職してから、寝言で笑うようになりました。
この記事で興味をもっていただけるかもなんて思っていませんが
(ふざけて書きすぎて怒られないか震えてる)
もし興味がありましたらお気軽にお問合せくださいね。
それではメリークリスマス