AIやIoTなどで高まるデータの重要性。今、データベース技術の「学び」が重要に! NTTデータのデータベーススペシャリストに聞く
現在、IT技術が幅広い領域で使われ、IoTの進展などにより膨大なデータが生まれています。データ活用の形もさまざまで、従来は定型的なデータ処理が多かったものの、今ではAIなど多種多様な方法で利用されており、新たな価値、サービスを生み出しています。こういったデータ中心の時代にあって、いかにしてデータを効率的に保存し、さまざまな形で柔軟に取り出せるようにしていくのかが重要になっています。そこで今回、NTTデータ 技術革新統括本部 技術開発本部のデータベーススペシャリストである藤井雅雄氏に話を聞きました。
藤井氏は、近年基幹系などさまざまな分野で導入が進むオープンソースソフトウェア(OSS)データベース(DB)である「PostgreSQL」について、NTTデータでの社員教育にも関わっています。また、PostgreSQLのコミュニティではコミッターとして活躍し、開発においてバグの修正やパッチのレビュー、世界中の技術者への働きかけを実施しています。
聞き手は、DX、クラウド時代に対応したLinux技術者向け認定試験「LinuC」やPostgreSQLをリファレンスとしたデータベース技術者向け認定試験(OSS-DB)などを通じて技術者育成に注力するLPI-Japan理事長の鈴木敦夫氏。NTTデータの技術者育成についてインタビューし、AIやIoTなどによりデータの重要性が高まる中、DB技術の重要性を浮き彫りにしました。
鈴木 いまデータへの注目が集まっています。データベースの専門家として、こうした状況をどのようにとらえていますか?
藤井 AIやIoT、FinTechなどのアプリケーションが急速に増えるなど、とにかくサービスが多様化しています。それに伴って、システム要件や求められるデータセットも変わってきています。例えばリアルタイム性でいえば、以前は多少遅れてもよかった領域でも、いまは最新情報が求められるものが増えています。データの規模についても、要件がさまざまです。いろいろなサービスや基盤がデータになっており、生活のありとあらゆるものがデータとしてためられています。それをいかに生かし、社会に還元できるかが問われています。
鈴木 いろいろなものがネットワークにつながり、データを収集できる時代になっています。集められたデータをAIなどで新しい価値に変換する際に、データソースがより使いやすくなっていなければならないということですね。
藤井 はい。ためることは大事ですが、それを取り出す時に使いやすい性能が確保されている必要があります。セキュリティなどの要件が確保されていることも重要です。そのためのデータ基盤として、DBが重要になってきます。
鈴木 いろいろなDBの技術がありますが、最近はパブリッククラウドのDBなどでは用途別にさまざまなものが出てきています。その中で、いまRDBを学ぶことにどのような価値がありますか?
藤井 さまざまなDBが出てきている背景には、さまざまな用途が登場していることが挙げられます。例えば、RDBみたいなかっちりしたデータ構造のものもあれば、NoSQLなどより柔軟なものも出てきています。
そういう中でRDBを学ぶ意義は、RDBがあらゆるDBを学ぶ際の軸になるからです。デファクトであるRDBを学んだ上で、いろいろな製品を見ていくことで、幅広い理解が進みます。
鈴木 なるほど、1つのDBを通して、さまざまなデータ構造やアクセス方法、データ処理方式などデータを扱う技術要素を学べるということですね。中でも、成熟しているPostgreSQLを学ぶことに価値があるということですか?
藤井 はい、その通りです。実際のところ、RDBで実装できる範囲はまだまだ大きいのが実情です。いろいろな製品がある中で、RDBがどこまで使えるのかを見極め、その上で他のDBを使っていくという意味で、RDBを学ぶことは重要です。
鈴木 商用DBもある中で、OSSのDBを学ぶことの意義についてどう考えますか?
藤井 体系的にDBを学び、さらに少し突っ込んで調べたいという時に、ソースコードを見られることの意義は深いと考えています。例えば、このトランザクションはどう実現されているかや、このトラブルがいかに発生しているかなどをソースを見ながら解析できることは面白いですし、顧客にも根拠を持って説明できるため、説得力が増します。
また、オープンソースにはカンファレンスやユーザー会が多いため、新しい情報が得やすいことも利点です。さっとインストールして試せるなど、場が提供されていることも大きいです。
鈴木 藤井さんはOSSのコミュニティでも活躍されていますが 技術者同士のつながりで得られたものにどのようなものがありますか?
藤井 世界中のさまざまな背景を持った技術者が集まっているので、自分が気づけなかったニーズ、要件、使い方、自分にないものをディスカッションなどで知ることができます。オープンだからこそのコミュニティの良さです。例えば、機能的に役立つ、優れているからといった理由で実装しようとしたコードに対して、「将来的なメンテナンス性や読みやすさを考えるべきだ」といった気づきを与えてくれるメンバーがいます。とても参考になります。
鈴木 人に聞ける場があり、技術者としての成長を実感できるのがメリットですね。ただ、海外を含めたコミュニティで日本のエンジニアはなかなか活躍できていない実態もあります。どうしたら改善できるでしょうか。
藤井 いきなり英語で海外のコミュニティのディスカッションに入るのは、難易度が高いのは事実です。まずは日本のコミュニティに参加して発言するといいでしょう。最近は、Slackで情報交換するなど盛んです。PostgreSQLであれば「PostgreSQLアンカンファレンス」というイベントがほぼ毎月のように開催されており、気軽にライトニングトークで発表もできます。さまざまな技術者とつながり、知見を得られるわけです。
また、海外のコミュニティとのやりとりについては、バグ報告から始めてみるのもいいでしょう。ドキュメントのタイプミスを見つけるだけでも歓迎されます。また、困ったら日本のコミュニティで助けを求めれば解決できることもあります。
鈴木 その意味で、さまざまなDBがある中で日本のコミュニティが発展、成熟しているPostgreSQLは技術者が学び成長するのに良いプラットフォームと言えますね。
藤井 はい、そう思います。初心者をどんどん助けようという人が多いのも特徴です。
鈴木 ここまでのお話で、データを扱う技術者の重要性はますます高まっており、DB技術を学ぶ価値が見直されていることがよく分かりました。NTTデータではDB技術者の育成に、どのように取り組んでいますか?
藤井 DB技術者にも、いくつかのパターンがあります。私のようなデータベースマネジメントシステム(DBMS)を作る人もいれば、顧客のプロジェクトに入って開発し、運用するといった人もいます。いろいろな経験をしてもらいながら、本人がどこにいきたいかを見極める必要があります。最初はDBについて全体を体系的に学び、そこから希望や適性に合わせて深めるという育て方をしています。
また、PostgreSQLなどDB自体を作りたいというのであれば、社内にいるだけでは成長できないので、どんどん社外のコミュニティに出てもらっています。講演をしたり、パッチを出したりといった機会を通じて、社外の環境を含めて育ててもらっています。
鈴木 社外に出て行くというのは、NTTデータの気風や仕組みと関係していますか?
藤井 特に技術系の部門にはその気風があります。ブランド力拡大という意味で、どんどん外へという方向性が出てきています。
鈴木 NTTデータはオープンソースのコミュニティでも表彰されるなど、活躍が目立ちますね。
藤井 もっともっと、とがった技術者がいることをアピールしていきたいと考えています。
鈴木 技術者にとって、データを扱えることの魅力はどんなことでしょう。
藤井 技術の“はやり廃り”は、らせん状の性質があります。10年たつと元に戻るといったこともあり、バラバラに追いかけてもあまり意味がありません。それよりも、RDBのような根幹技術を知り、軸とすることの意義は大きいです。
特にDBは、トランザクションだけでなく、コンピュータサイエンスのエッセンスを凝縮した世界でもあります。文字コードや、内部にソートを使っているアルゴリズム、その時のディスクI/O、メモリ、キャッシュなどの機能が含まれています。学んでおけば、情報技術者としての土台ができます。そうすると、らせんを描く技術の変遷で、何がはやり、廃っても対応できます。よくよく考えると、面白いものです。
鈴木 データを扱う技術を学ぶことはコンピュータを学ぶことにもなるため、無限の可能性があるといってもいいかもしれません。データを扱える技術者がもっとたくさんいなければならない時代ですね。そうしたデータを扱う基盤があってこそのIoT、データ分析ということでしょう。
藤井 はい。DBが中核になってきます。DB自体を専門にしないとしても、DBを学ぶ意義は非常に大きいと言えます。
鈴木 NTTデータでは、LPI-Japanが実施する「OSS-DB技術者認定」を持っている人がたくさんいらっしゃいます。認定をとることの価値や推奨の仕方について教えてください。
藤井 私が関連する部署では、最初にOSS-DB技術者認定のSilverを取るという方向性を示しています。いきなりプロジェクトに入ってDBを使うとすると、それがアプリケーション開発のフェーズならSQLしか学べず、物理設計、バックアップや監視、セキュリティなどが分からないということになってしまいます。そのため、Silverによって、DBを構成するさまざまな要素を学べることは大きいです。
まずはそれを学んでもらいたく、Silverに取り組んでもらっています。学ぶ際のゴールやモチベーションにもなりますし、われわれとしても資格の有無によって、その技術者との会話の前提がつかめるというメリットもあります。
鈴木 OSS-DBの取得を目指して体系的に学ぶことで技術者自身が持つ「技術力のポケット」にさまざまなものが入ることになり、技術者としての幅が広げられるということですね。
インタビューで話題に挙がった、PostgreSQL技術者の認定資格「OSS-DB技術者認定」。「OSS-DB Gold」と「OSS-DB Silver」という2つのレベルがある。OSS-DB Goldの認定は、PostgreSQLの内部構造についての深い知識を持ち、設計・構築からパフォーマンスの改善やトラブルシューティングまで行える技術力を証明し、OSS-DB SilverはPostgreSQLを使ったデータベースシステムの運用管理を確実に行える技術力を証明するものである。
藤井 2020年のOSS-DB技術者認定で、NTTデータはOSS-DB Goldで1位、Silverで2位という結果になりました。
鈴木 OSS-DB Goldで1位ということで、より高度な技術者の育成に力を入れていることの結果が出ているのだと感じます。OSS-DB Goldを多数の技術者が取得するのは難しいと思いますが、何か取り組みをされてますでしょうか。
藤井 実際のところ、プロジェクトの中で、PostgreSQLを使うという必要に迫られて取っている人も多いです。
鈴木 DBの分野では、「DBの専門家が勉強するもの」というイメージが強いのが実情です。かつてはDBシステムを自ら設計・開発することも多くありましたが、いまはデータベースを「使う」人をデータベース技術者と呼ぶことも多いです。
しかし、データ構造やアクセス、及ぼすシステムの影響を考えられる技術者でなければ、データベースの技術者として活躍できません。その意味で、商用でなく、中まで見えるOSSのDBを学ぶことの効果は大きいと考えています。
藤井 本当にそう思います。同じ機能を提供していてもDBごとにアーキテクチャはバラバラなので、データ構造などDBの内部まで知ることで、機能をより使いこなしたり、難しいトラブルシューティングができたりするような場面が出てきます。
例えば、DBで多いトラブルとして、従来インデックスで高速アクセスしていたシステムにおいて、途中で選択するSQL実行プランが変更になり、インデックスが使われなくなることで性能が劣化することがあります。DBがSQLプランを選択する仕組みやどのような要素がSQL実行プランの選択に影響を及ぼすのか知ることで、そのような性能劣化のトラブルシューティングが楽になります。
鈴木 まさに、中身を知っていないと解決できない問題ですね。技術者であれば本質的な技術を押さえてほしいところです。それが技術者の醍醐味だと感じます。
藤井 はい、そこが面白いところなので、ぜひ面白いと思ってもらえるとうれしいといつも思っています。
鈴木 本日のお話を通して膨大なデータが蓄積され、活用される時代にあって、データをどう保存しどう取り出すかが重要になってきていること、その仕組みを設計できる技術者が重要であること、その技術者の育成においてPostgreSQLを通したデータベース技術の学習が大変有効であることがよくわかりました。本日は貴重なお話をいただき、ありがとうございました。
このインタビュー記事は、オリジナルとしてCode Zineに掲載された記事を転載した記事となります。
2021年5月31日 掲載
『AIやIoTなどで高まるデータの重要性。今、データベース技術の「学び」が重要に! NTTデータのデータベーススペシャリストに聞く』
© EDUCO All Rights Reserved.