皆さんこんにちは。Web 業界のなんでも 雑談室パーソナリティーのキース
ことくわはらです。この番組では Web 業界に関すること、日々感じている
ことなど様々なコンテンツをお届け していきます。今回はまた時間が
来ましたけど、久しぶりにゲスト 会になりたいと思います。今日も
楽しく話していただけたらなと思います ので。では今日はゲストにだいち
さんという方をお呼びしております。 だいちさんよろしくお願いいたします。
だいち どうも初めましてだいちです。よろしくお願いいたします。
おだしょー よろしくお願いします。だいちさんとはツイッターで初めて
知り合ったぐらいで、本当に直接 話すの今初めてなんですよね。
だいち そうですね。僕も始まる前 から緊張して。本当にツイッター
のDMぐらいですね。見やり取りを 直接的にしていたっていうのは。
おだしょー ぐらいですもんね。あと1回だけ聞いた
のを記事にコメントさせてもらった ぐらいの感じの気がします。
だいち そういえばレビューいただき ました。レビューありがとうございました。
おだしょー 簡単ですけど、だいちさんから
自己紹介いただければと思います。
だいち はい。ツイッターのほうで僕は
だいちとしてやらせている。一応 名前自体本名でございます。以前までは
つい数ヶ月前ですね。まではバック エンジニアとして自宅開発で勤めて
たんですが、今現在はデータベース エンジニアとして勤めております。
最近今年の1月末に息子が生まれ まして、最近はもう息子に付きっきり
な状況で子育てを楽しんでおります。 今日はよろしくお願いします。
おだしょー はい。よろしくいたします。
1月、9ヶ月か。
だいち そうなんですよ。来週、今週か
今週26でも丸9ヶ月になるんで、だい ぶ大きくなってきて成長が楽しい
です。
おだしょー 大変な中本当にお時間ありがとうございます。
だいち 大丈夫です。
おだしょー 今日は本当に雑にしゃべ っていきたいんですけど、やっぱり
せっかくデータベースエンジニア の方と話す機会ってほぼほぼ実は
僕なくて、やっぱり僕がフロント 周りにいるので、せっかくなんで
データベースエンジニアって実際に 何するのっていうとかを聞いて
みたいなと思ったんですけど、実際 どんな感じのことをしたらいいですか
今は。
だいち そうです。僕も入社したばっかり
で多くは任せてもらってないんですけど、 やっぱり大きいところでいくと
データベースの管理っていうところ で、かつ前の自宅で勤めてたとき
では全然そのデータベースでそんな ところまで設計するのっていう
認識でいたのが、テーブルごとに 権限をこのユーザーにはつけて
つけないみたいなのを細かく管理 されていて、そこまでやるんだ
っていうところで、そういった兼ね合い でアプリケーションを開発してる
側から、何かしらこういうユーザー でこういう機能、このテーブル
参照させたいってなったら、ほんと 緊密に参照だけをさせる、もしくは
更新をさせるみたいなのも細かく 分けられていて、それの権限を
追加してください、なくしてください とかいうのを依頼を受けてやったり
または定期的な監視っていうところ だったりとかっていうのを結構
やってますね。あと僕自身が任されてる ところでいくと、割と構築関連を
テラフォームでやっていけるように っていうのを推進していきたい
っていうところでの二人目、自分が 二人目になるみたいなところで
なのでまだ立ち上がったばっかりで 今思考錯誤しながらテラフォームで
いじってるような状況ですね。そんな 感じで、管理、監視、構築
関連をほぼやっております。
はい、ありがとうございます。確かにテーブル 周り、レベルでロール管理する
っていうのは聞いたことなかったですね。
僕も本当にびっくりしました。パッチ ユーザーでこのテーブルだけにしか
参照絶対しないからっていうので、それを することで監視とかに関しても
厳密にどのユーザーで負荷を 買ってるのかみたいなところまで見れる
っていうところがメリットにはなる っていうので、結構勉強になります。
なるほど。そこまでやれば、そうですね。 ロールによるバグってあんま起きないですね。
データベースでロックしてるぐらい ですからね。
はい。
いやいやいや、ちょっと驚きです。
結構ハードなことです。
取り画面とかに入ってロール管理 してて、このロールの人はここしか
見れないっていうのをAPIレベルで やるのはよく聞く話だったり。
ちなみにテーブル周りの話ちょっと 聞いてみたいんですけど、
はい。
既存のアプリケーションだったり、 新規でやる場合もあると思いますけど、
はい。
データベースのテーブル設計だったり、 正規化だったりっていうところも
全然やったりするんですか?既存の テーブルのいわゆるリファクタリング
じゃないですけど、的なこともやったり されるんですかね?
そうですね。必要に応じてそこもやって、 かなり規模が大きいサービス
っていうところで、大掛かりになると 本当1年、2年単位で見積もって書いて
いくみたいなのを、結構ここ最近 言うと2年前ぐらいにそういうのを
やって、もうその時はテーブル周りの 再設計をし直してっていうのを
やってるっていう話は聞いて、僕は ちょうどその場面に立ち会っては
いなかったんで、めちゃくちゃ大変 だったよっていうのしか聞かなかった
んですけど、そんな感じのですね。
1年レベルって相当すごいですよね。 移行だったり、実際にでもやってみないと
本当怖いですからね、そういうのって。
そうですね。めちゃくちゃ、それこそ CMに出てるぐらいのサービスを
扱ってるんですよね。
すごい。
それゆえにデータ量も膨大で。
そうですね。移行計画めっちゃ大変そう って感じですね。
僕が以前やったもんだと、本当多くて データ量で言っても数千万あれば
多いデータだなっていうところだった のが、もう普通に億単位であるんで。
億も億で何百億みたいなレベルで。
デカ。
言ってて、僕も全然想像つかないんで。
やばいですね。数百億はやったことない ですね、さすがに。
そこまでいくとクエリ一発じゃ無理 じゃないみたいなとこありそうですね。
そうですね。もうSQLも見ててもよく わかんなくなってます。
これはもうちょっともう一回腰を 擦って勉強しないとみたいな。
僕の経験、過去イージーサイトいくつか 出かけたことあるんです。
僕が入ったときにテーブル6、7個ぐらい ジョインしてわちゃわちゃやってる
クエリだけでやっぱりめちゃめちゃ 長いクエリ見たことがあるんですけど。
やっぱりそういうのって全然現実 である話なんですか?
クエリ自体はイジるっていうのは 今のところまだやってないんですけども。
ちょいちょい見るものを見てると長いですね。
SQLで百何行とかはザラですって ベースでありまして。
本当に長いものは最初の一ページ、 一画面開いたらもうこれ以上見ない方がいいな
くらいの、下長すぎて多分終わりがないなみたいな。
とりあえず長いんだなっていうぐらいで 見てますね。
データベースエンジニアって名前が付くぐらい 専門職必要だなっていうのはやっぱり話聞くと
つくづく感じますね、そういうの聞くと。
そうですね、そういうふうにしかも しっかり分けることによって
分けたからこそそのテーブルごとに ロール管理してみたいなのもできるんだな。
多分全職の受託で行くとフロント、 バックエンドエンジニアとしてやってるけども
インフラ周りも含めフロントもちょこちょこっと っていうのでやったんで、それで兼領して
見るってなると負荷が大きすぎますね、さすがに。
そうなんだよね。
バックエンドの人って結構見る範囲広いですもんね。
今はインフラ周りがクラウド化したので じゃあやれるじゃんみたいな。
じゃあやれるじゃんじゃないんだよって思った。
思いますけどね。
全然スケールでかいですかね、インフラは。
バックエンドだけどアプリケーション作る人と インフラメンテナー、クラウドでやる人と
やっぱデータベースは分けたほうがいいよな っていうのも思ったり。
ただバックエンドも、いわゆる工技並みの フロントエンドってネイティブアプリもそうですけど
フロントエンドってほぼ言語一択しかないので バックエンドって言語大量にあるんですよ。
っていうのもあるので、その言語ごとに 特性であったりするので、それ専門の
エンジニアが立っても、まあまあ細分化する 意味ではありだよなっていうのを思ったりも
最近してて。
弊社のバックエンドのほうでもテックリード チームがあるんですけど、テックリードチームの
アプリケーションだけの人たちでも、 逆に分からんものは分からん。
語をやったことあるとか、英語知識ないとか 訳もしかりだったりするので、それをテックリードで
サポートするほうがつらくないみたいな 感じがあって。
バックエンドの人はすごく今大変すぎるな っていうのを何となく思ってました。
僕もそれやっぱりそこですね、それゆえに この先のキャリアパスどうしてこうみたいな
あまりにも広大すぎて、どっか的絞れないかな っていう矢先で今のデータベースエンジニア
の話が舞い込んできたんで、データベースで 一本の道絞って、そこを極めるまで
いかないにしても、データベースのことを 大事に聞いたら何か分かるよみたいな
ポジションが得られたらな、みたいな感じで 今に至りますね。
データベースを選んだのは本当に僕は正解 というふうに思っていて、やっぱり一本
突破するんだったら、絶対なくなることがない データベースではなと思ってますよ。
言語で言えるとかだったら、使われないことを 言うしょっちゅうありますからね。
クラウドベンダー変わったりしたら えーってなったりするし。
そういった意味ではデータベースって やっぱもう地球でいうと地面みたいな
話なんで、固いなっていうところで そこを選びました。
結果、アプリケーションとかシステムって データをどう管理するかとそれをどう見せるか
要はアルゴリズムです。
極力二択に尽きるので、その方になるのは 本当正解というか、その分大変なんですよね。
何十年ずっとデータベースのソフトウェアって だいたい今はマイスケールか、キュースグレーか
ノイスケールは大量に這いまくってますけど、 基本的にリレーショナルっていうと
あとオラクルか。
そうですね、その3つが。
そのくらいですもんね。
僕はもうこの業界来て10年目くらい来ましたけど、 未だにずっとやっぱりマイスケールがって話か
とかキュースグレーがの話か、 永遠に出続けてるので。
まあこの先も早々変わらないんでしょうね、 と思ったりしてますけどね。
そうですね、極端に変わることはないのかなっていうので。
僕前職だともう本当マイスケールが ほぼほぼだったんで、
ほんと若干の補修作業みたいなところで SQLサーバーですね。
もうちょっと触って、もうSQLサーバー 何じゃこりゃっていうような
分かんないみたいな感じで何とか乗り越えて。
今に至ってはオラクルが現状メインなんですよね。
オラクルメインでちょっとクラウド移行していこう みたいなところで、
ポスグレーを中心に使ってるような状況で。
マイスケールから入った自分からしたら、
オラクルもちょっと癖あるなっていうところが、
なかなか今もがいてるような状況で。
だからといってオラクルを集中して じゃあ勉強しようみたいになったら、
今ちょうど移行してるっていう話なんで。
そこでオラクル変に意識つけて、
全くないよりはあったほうがっていうところで ありますけど。
っていうのでちょっと右往左往しつつも データベースエンジニアとしていろいろやってますね。
オラクルは高いんですよね、そもそもお金が。
びっくりした、金額減るときはね。
とはいえ、もうあんだけのシェアを取ってるっていうのが事実なので。
オラクルの資格があるぐらいですからね。
そうですね、会社でもさらっとゴール持ってるよ みたいな話を聞いて、
そんな簡単に取ってるぐらいなネガースでいて、
そんな簡単に取れるもんでもないよねって思いながら。
えー、すご。
結構年違い方で取ってます。
そうなんですね。
あれを、僕も話だけは知ってて、 実は僕オラクル一回も触ったことないんですよ。
クエリも書いたことない。
たまたま使わなかったらやっぱり 住宅系の会社でOSSでやるので、
普通にお客さんがそこにお金払う気がないみたいな。
それはありますよね、お金どこに払うっていうこと。
そうですね。
使うかわからないサポート費に あんな値段出すかみたいな。
その仮に一度やってくれたサポートは ついにかもしれないですし、
やっぱり商用データベースっていうと 信頼性はやっぱりありますけどね。
そうですね。
大きいとこだったらそこを選ばずらえない みたいなところは出てくるだろうけど、
多少の一般的な企業で行くってなったら もう手堅いところに行きがちですね、そこは。
安いし。
そうなんだよな。
だいぶ前にオラクルが値段が3倍くらいに 跳ね上がったみたいな話をどっかで聞いたことがあって。
それを、それゆえの高かったのか。
金額聞いたときびっくりしましたね。
オラクルだった気がしますね。
社内のチャットツールで先輩が 3倍開業権って言い出したから何のことになるか。
そんな開業権はいらないですね。
すげえなと思います。
でも、今まだうちは伸びるんだっていう 判断になったんでしょうね。
そのとき僕がいた、前職ですけどね。
そのときもデータベースまであんまり 触らなかったなっていうのがあるので。
先輩が別の会社のお仕事してるときに オラクルの話をしてたので。
本当にさすがやなっていうのを思い出してました。
マインスケールってよくも悪くも入門しやすいですけど、 ちょっとゆるいというか。
吉田にやってくれちゃうところがあるのが 厳密性が足らないので
ポスグレのほうがいいんじゃないみたいな 感覚が個人的にはあるんですけど。
だいぶ前の知識ですけどね。 僕がだいぶ前にやった話ですけど。
そうですね。
こっちのほうでもそんな感覚での話。
僕も正直ポスグレ全然触ってなかったんで 知識ないんですけども。
マインスケールはゆるいからみたいなところは やっぱり言ってましたね。
ゆるいからポスグレのほうを中心的に 使ってるみたいな感じでしょうね。
なるほどですね。
ちなみに今からデータベース勉強するとなった場合、 おすすめの学習パターンというか、
こういうサイト見たらいいとか、こういうドキュメント、 おすすめ書籍とかあったら聞いてみたいなと思ったんですけど。
ですよね。
当時はもうなかなか、またこれも覚えなきゃ、これも覚えなきゃみたいなテンテコ前でしたけども、
ある程度来ると、あ、そういうのがあるんだね、分かったよぐらいな感じで流していける。
本当に自分が必要だって思うものを後押し持って進めるようになってきたなっていう。
そこがめちゃくちゃ大事ですね。
本当その感覚になるのがね、初級からそこに行くのが多分一つの壁の中も僕はありますけどね。
銀さんで言うとこの業界は何年ぐらいになるんですか?
僕が?本当は確か10年目だった気がします。
大学院僕一浪して入って大学卒業して、帰って25から。
今年35なんで、満10年経ったのかな?10年目なのかな?いや、経ったのかな?って感じです、実は。
へー、そうなんですね。大先輩だ。
僕は浅く広くなタイプで、あんまり頭が良くなく、コンピューターサイエンスの勉強したけど忘れて卒業してるので。
とにかく実践の方があるのみやなっていうので。
僕もそういうなんですか、バータリテキと言ったら聞こえ悪いですけど、とにかく飛び込んでしまって見つければいいじゃんタイプだったので。
確かにそれはありますね。
逆に言うと体系だって学んだり、いろんなものをまとめてドキュメントに書いたり、記事書かれる方には未だに敵わんなって思うなんとなく。
同感的なのはありますけどね。
でもそれを自分がやるかって言ったら合わないというか、なんか違うんですよね。
やりたい欲はあるけど、モチベーションがそんなに高いかって言うとそんなこともないなっていう。
大抵的なのは本当。
そういうことをね、やってくれる人が他にいるので、また乗っかりたいっていう。
なるほどね、確かに。
でも、ちゃんと最終的には抽象化したものごとが考えられるようにしたいところでありますしね。
まあまあそんな感じです。
あれですね、ちょっと話が脱線しちゃったんですけどね。
結論としてあれですね、僕が学んできたみたいなところはもう実践あるのみたいなところでですね。
僕のやっぱりまだ歴が浅いっていうか、入り口がもう初学からでっていうところで始めたんで、
初めてこれからプログラミングを学びたいんですけどみたいな人の話聞いたりとかするんで、
そういった人向けでいくと、
本当に読みやすい何か書籍を見つけて順を追って学んでいった方がいいのかなっていう。
もしくはもし可能であれば実務的なところを触れる環境を見つけてそこに飛び込んでみるのどちらかかなっていう感じですかね。
そんな感じのやり方でやっていければいいんじゃないかなっていう気がします。
お話聞いた感じ、このだいぶ前ですけど転職ブログ書いてるじゃないですか。