ラグビーで鍛えた精神でデータとスクラム!メタデータ整備の最前線
はじめに
はじめまして、蕪木(カブラキ)です。前回の丸田さんに続いて、リクルート社内のICT組織のお仕事についてご紹介します。
私は今年リクルートに入社したばかり、社会人経験3年目の若造です。学生時代の部活動(ラグビー)や研究、前職でのWebサービス開発経験から闘えるエンジニアとなった稀なバックグラウンドがあります。また、自分の所属する組織は経験豊富な社員の方々が多い環境です。そんな中、私は自身の経験を活かしながら担当領域で技術的なソリューションを提案したり、実際に手を動かしてモノづくりを行ったり、自身の経験のない業務領域へのチャレンジをしている最中です。
今回はそんな私が行っている「メタデータ整備に向けての取り組み」についてお話しします。
本編
今回の案件概要
社内の経営管理基盤システム刷新プロジェクトに伴って、データ基盤システムで管理される様々なデータ構造も変わることとなりました。
そのため、社内ユーザの既存業務プロセスが刷新後も担保されるよう、改修内容の広報やユーザが使用する(データ基盤へのアクセスを前提とした)業務用ツールの改修などへの対応サポートが必要となります。
そして、各ユーザの対応をスムーズに進めるためには、ユーザ自身でデータの意味合いがわかる情報を整備する必要がありました。
どうする蕪木
これまでの状況を踏まえ、様々なフォーマットかつ各所に点在するデータの意味合いを示す ”メタデータ” を活用するため、まずはこれを一か所に集約する環境づくりを始めました。
具体的には、現在データ基盤として使用しているBigQuery (Google Cloud) はシステム上、実データだけでなくデータの定義を持たせることができるシステム構成となってます。これに注目し、新たなユーザ向け説明資料やガイドの作成ではなく、データ基盤自体へのメタデータ登録をしてみることにしました。
しかし、前述したようにメタデータが既存資料や定義、設計資料等に分散して存在するため、様々なフォーマットから手作業でデータ基盤に登録しようとすると膨大な作業時間が予想されます。私は、これをメタデータ整備の第一歩のための大きな課題ととらえ、まずはこの作業時間を短縮する自動化システム/ツールを作成するという取り組みを自身で実践してみることにしました。
試行過程とその結果
メタデータの登録のためだけに新たにコストの多くかかるシステムやツールを作成することは本意ではなく、また複雑なものを作っても運用もしにくいと考え、できるだけシンプルな方式を探しました。
シェルで実行できる自動化スクリプトを書く、社内で利用できるクラウドサービスやローコードツールをつかうなど諸々調査、検証しました。その結果、Googleスプレッドシート(&GAS) x BigQueryという構成を利用した社内の業務ツールクラウド化の案件の話を聞き、これを流用できないかと考えました。
ちなみに、自身としてはこれまでGoogle Cloud関連のサービスに触れた経験はほぼなく、スプレッドシートもエクセルのGoogle版でしょ?くらいの浅い理解しかありませんでした。
そんな私が試行錯誤の末作成した、「メタデータ一括登録ツール」(の簡易的な構成図)がこちらです。
このツールでは、2種類の形式(DB/エクセルファイル)からのインポートを可能にし、インポートしたメタデータを一括登録ツール(スプレッドシート)上でチェックもしくは編集したのち、データ基盤(BigQuery)へ一括登録する流れとなります。
処理の流れはすべてGAS(Google Apps Script)で実装し、作業者はスプレッドシート上に表示される画面に沿って登録対象のビューなどの名称を入力し、登録ボタンをクリックするだけで簡単にメタデータ登録が可能になります。
メタデータの取得元に関しては、これも様々な調査が必要でした。しかしその結果、別の用途で使用するため一部のメタデータを保持していた既存のシステムを発見し、それ以外の多くはエクセルファイル形式であったためこの2つの形式に対応させることでなるべく多くのメタデータをデータ基盤に登録できるような仕組みを実現しました。
学びと今後の展望
主に技術面では、Google系のサービスに関する知見やフロントエンド領域(GASやJavaScript)のエンジニアリングスキルが新たに身につきました。前職までは主にサーバーサイド領域の経験が多かったため、この業務を通してエンジニアとしての幅も広がったように感じています。
マインド面では、”既存リソース”をうまく使うというアプローチをとるということが解決への近道の一つであるということを学びました。これはイチからソリューションを生み出すのは自身の経験的にも難しいと悩んでいた中、ある時、先人たちの手によって社内に膨大な資料の用意やシステムの構築及びその利用のための準備がすでにしてあることを教えてもらったのがきっかけでした。今回、自身の提案したソリューションはそれら既存リソースを利活用した結果、うまくいったという側面も大きいように思っています。
また、今回実施したメタデータの整備のための取り組みはユーザがデータを利活用していく上で重要な要素の一つではありますが、初歩の初歩にすぎません。そのため、今後は登録したメタデータをユーザがさらに参照しやすくなるような仕組みや環境作りに注力していきたいと思っています。
最後に
学問の領域で「巨人の肩の上に立つ」といった言葉を聞いたことがありますが、仕事においてもこれは同じように考えています。自分が学生時代にやっていたラグビーでも「one for all, all for one」という言葉をよく使いましたが、今回は身の回りにいる人はもちろんのこと、これまで既存業務にかかわってきた人たち含む多くの人のバトンタッチによって、経験の少ない自分でも難易度の高い課題を解決することができました。
これからも自分にできることを増やしつつチームや組織に貢献し、誰かを肩に載せられる巨人の一部になれたらと思います。
このブログを読んでピンと来た方は、ぜひ一度採用サイトもご覧いただけるとうれしいです。まずはカジュアル面談から、という方も大歓迎です。
また、他にも色々な記事を投稿していきます!
過去の記事もご興味あれば、ぜひ他の記事もあわせてご参照ください。
・Recruit Tech Blog
・リクルート ICT統括室 Advent Calendar 2024
・リクルート ICT統括室 Advent Calendar 2023