こんにちは。ピクシブの社内エンジニア職横断組織「エンジニアギルド」マネージャのbashです。主にエンジニア採用プロセスを取りまとめています。
ピクシブでは複数の事業部があり、様々な専門性を持ったメンバーが集って事業領域にフォーカスする体制を取っています。各事業部にいる技術のキーパーソンがどのような考えでエンジニアリングを進めているのかを紹介したいと思います。 今回はCTO室プラットフォーム開発部に所属しデータに関するエンジニアリングをリードしているtohhyに、データ分野の技術的な取り組みについて話を伺いました。
まずは自己紹介をお願いします。
CTO室プラットフォーム開発部データ基盤チームのtohhyと申します。
2017年にピクシブに新卒で入社し、pixivプレミアムの開発チームでサーバサイドのエンジニアとして活動しつつ、並行して数値分析系の仕事を担当していました。
その過程で、分析で利用するデータ基盤の改善活動を自主的に進めていたのですが、2018年末にデータ駆動推進室という部署の立ち上げメンバーとして参加することになり、以後全社のデータ基盤の開発・運用を担当することになりました。
現在ではさらにデータ駆動推進室から派生したデータ基盤チームのメンバーとして、より技術的な部分にフォーカスして社内のデータ活用水準の向上に取り組んでいます。
データのエンジニアリングについてどのようなことを扱ってるか簡単な説明をお願いします。
ピクシブにおけるデータ基盤チームの役割は、社内の様々なプロダクトから生まれるデータを集約し、使いやすい形に整えて各チームに提供することです。
ピクシブは多くのプロダクトを持つ会社で、2020年9月現在、合計17個のサービスを運営しています。これらはそれぞれ開発言語も違えばシステムの構成も異なり、プロダクトに紐づくデータもさまざまな形式で異なる領域に格納されています。 しかしこれらのサービスは全く独立しているわけではなく、機能的な連携が存在したり、複数のサービスを併用しているユーザーが存在したりと、互いにつながりを持っています。 ユーザー理解、プロダクト理解のためには、横軸でこれらのデータを総合して見ていくことが必要になります。
これら各プロダクトのデータは、ピクシブのデータ活用環境が確立し始めるここ最近までは、ばらばらのまま各プロダクトチームの内側に閉じてしまっていました。
データ基盤チームの活動の中で、すべてのプロダクトのデータを社内の共通データウェアハウスであるBigQueryに集約し、SQLという単一の方法で誰でもデータ抽出できる環境を整えることで、データがチームを超えて広く活用される環境を作ることができました。 また、その後LookerというBIツールを導入することで、SQLすら利用することなく、さらに幅広い社員が能動的にデータを掘り下げていくことができるようになりました。
inside.pixiv.blog inside.pixiv.blog info.looker.com
このように、社内のより多くの人に、より手に取りやすい形でデータを届けるため、仕組みを整えていくことがわれわれのミッションです。 BigQueryやLookerのような仕組みの導入・整備、各プロダクトのデータとデータ基盤の間のデータ同期機構の管理、データ加工パイプラインの管理などが主な仕事となっています。
どういうチーム体制で取り組んでいますか?
プラットフォーム開発部データ基盤チームとしては、現時点では私1名で全社のデータを担当しています。 人数だけ聞くと大変に聞こえるかも知れませんが、何もかもを一人で行っているわけではなく、先に述べた社内の様々なプロダクトチームと連携しての活動が主となっています。
ピクシブのデータ活用の大方針は、データの民主化です。 データを扱う専門家チームが存在し、社内の様々な部署がそこに仕事を依頼する...といった形ではなく、各プロダクトチームが自らデータ活用能力を身に着け、自走してデータを扱えるようになることで、フットワークを高め、プロダクトチームが持つドメイン知識を生かした効率の良い開発を行えるようにしていくことを目指しています。
各プロダクトを中心としたピクシブのデータ活用の取り組みについては、Data Platform Meetup(vol.2)で発表させていただいた以下の資料で詳しく扱っているので、興味のある方はご参照ください。
いまはどういうタスクにフォーカスして取り組んでいますか?
主にデータパイプラインの整備とモニタリング体制の確立に注力しています。
データの集約と抽出についてはこれまでの活動によってある程度環境が整いました。その結果誰でもデータを容易に取り出せるようになったのですが、格納されているデータの品質と、各チームによるデータの使われ方についてはまだ課題があり、これをより高めていく必要があると考えています。
まずデータパイプラインの整備はチームの主要なミッションです。 BigQueryを利用することで大きなデータをそのまま分析対象にすることが容易になりましたが、巨大な生データのスキャンにはコストがかかるため、様々な利用シーンに合わせたデータ加工を行い、要約したデータを整備することが重要になります。 2020年に入ってからはApache Airflowの導入を進め、社内の主要なデータ同期処理や加工処理の集約を進めている途中です。 これまでは暗黙に依存関係を持った定時バッチでのデータ加工処理が散在しており、データの整合性担保に課題がありましたが、Airflowに移植することによって依存関係をコードで担保し、データ品質を高めることを目指しています。
そして、データ基盤上に様々なモニタリング機構を構築する作業も並行して進めています。 社内で広く利用されるデータ基盤を提供している都合上、その使われ方も様々で、場合によっては正しくない処理も行われることがあります。 例えば不必要に大きなデータを読み込むクエリがBigQueryに発行される、共用のデータに正しくない書き込みが行われる、プロダクトが障害や仕様変更などによって突然必要なログの送信をやめてしまう、など様々な要因が考えられます。 こうした事態にいち早く気づいて対応するためには、データの異常な変化を可視化・検出して即時に通知する仕組みが必要です。BigQueryの監査ログと連動したSlack通知の構築などによって、この問題へのアプローチを進めています。
ピクシブでのデータのエンジニアリングでのやりがいはどんなところですか?
ピクシブのデータ環境で魅力的なのは、種類としても多様で、量としても膨大なデータを扱えることです。
CGMのpixiv、ECのBOOTH、サブスクリプションのFANBOXなど、全く性質の異なるサービスのデータを扱うことができますし、いずれのサービスもコンシューマー向けかつ規模が大きいため、日々膨大な規模のデータが新たに生まれてきます。これを満たす企業の数はあまり多くないと思うので、データに携わる人間としては魅力的な環境です。
社内のほとんどすべてのプロダクトと関わりながら仕事をしていくことになるので、様々な社員と関われる点、様々なプロダクトのドメイン知識が得られる点も面白いところです。 技術的な面白さのみならず、多数のサービスからなるピクシブの文化圏をもっともよく見渡せるチームであるという点も特色といえるかもしれません。
未来のチームメンバーに、何かメッセージはありますか?
チーム主導のデータ環境ということで、1名でもなんとか回ってはいるのですが、やはり手が回りきらない部分も多く、ぜひ一緒に取り組んでいける仲間がほしいです!
前述した通り多様で大量のデータを扱うことができるのは魅力ですし、BigQueryベースの比較的秩序立ったデータ基盤までは整っているので、煩雑な前処理なしにデータと向き合うことができるようになっています。 あとはこの上に何を載せていくか、それによっていかに良いデータ活用を実現していくか、というフェーズにさしかかっていて、今がいちばん面白い時期だと思います。
そのため、データ分析や機械学習などの活用側の視点と、使いやすい仕組みやパイプラインの構築のような運用側の視点、両面で取り組んでいける方を求めています。 ご興味ご関心のある方は、以下Wantedlyのカジュアル面談フォームなどからぜひぜひお声がけいただければと思います。 www.wantedly.com
tohhyさん、ありがとうございました。
ピクシブでは、データを活用したサービス開発を社内の誰しもが高い水準で実現することができる環境を創り上げることを目指して、データ同期・集約・パイプライン整備をメインミッションとしたエンジニア職の採用ポジションをオープンし、新たな仲間を募集しています。
選考に進むことをご希望の場合は、下記募集ページより選考応募をお願いします。 https://recruit.jobcan.jp/pixiv/show/b001/255181recruit.jobcan.jp
興味をお持ちの方は、是非こちらから面談にエントリーをお願いします。 www.wantedly.com