Slide 1

Slide 1 text

Dataform を使った GAS によるデータ運用からの脱却 「大規模データの負債解消への道のり Findy Lunch LT」 ファインディ株式会社 CTO 室データソリューションチーム / データエンジニア 開 功昂(hiracky16)

Slide 2

Slide 2 text

自己紹介

Slide 3

Slide 3 text

3
 自己紹介 Findy / データエンジニア 開 功昂 / Noriaki Hiraki / @hiracky16 ● 2023 年 11 月にファインディの CTO 室データソ リューションチームにジョイン 🙌 ● データエンジニアとしてマルチプロダクトのデータ基 盤を設計・開発を推進 ● サッカー⚽とポッドキャスト 🎙が好きです(プレミア リーグを週末によく見ています)

Slide 4

Slide 4 text

半年前くらいの データ運用の状況

Slide 5

Slide 5 text

2023 年 11 月(入社当時)データ運用のアーキテクチャ 
 
 
 5


Slide 6

Slide 6 text

弊社におけるデータ運用の状況 
 データ基盤管理の考え方 〜dbtの極意〜 Lunch LT dbtで始めるクエリの再利用と正確性の向上 6


Slide 7

Slide 7 text

そもそも GAS による データ運用の辛さとは? 🤔

Slide 8

Slide 8 text

GAS によるデータ運用の辛さ 
 ● データソースの変更に気付けない ○ GAS に記述するとカラムやテーブルの変更に気づきにくい ○ 実際に使われていないテーブルをそのまま使っている SQL が多数存在 ● SQL がシート管理者に依存してしまう ○ レビューがないため正確性が担保されづらい 8


Slide 9

Slide 9 text

GAS によるデータ運用の辛さ 
 ● GAS, SQL, スプレッドシート関数の責務が曖昧で処理が追いづらくなる ● 同じ処理がいろいろなシートに点在しており DRY でない ○ 複数枚のシートで同じような計算や処理が記述されている ○ もしロジックが変わった際にその分変更しなければならなくなるのでメンテコス トが上がってしまう 9


Slide 10

Slide 10 text

じゃあ dbt を使って GAS 移行やデータモデリングやっ ていき💪

Slide 11

Slide 11 text

とはならなかった …😭

Slide 12

Slide 12 text

dbt を使った運用がうまくハマらなかった理由 
 ● 前提としてシート運用者を巻き込んで移行作業を実施する予定 ○ 作業者がデータアナリストの方と僕の 2 人に対してシートは 70 枚 ○ 今後新しいスプレッドシート x GAS を生まないため ● スケールしづらかった ○ dbt 以前に git 操作の壁があり断念 ○ dbt Cloud の導入も検討したが有料がネック 12


Slide 13

Slide 13 text

そこで白羽の矢が立ったのが Dataform

Slide 14

Slide 14 text

Dataform とは 
 ● BigQuery で SQL を使用したデータ変換ツール ○ インフラ管理が必要ないマネージド ○ パイプラインとスケジューラーを搭載 ○ GitHub や GitLab でコード管理 ● Web ブラウザ上で操作が可能 14


Slide 15

Slide 15 text

Dataform がハマった理由 
 ● インフラ管理が不要 ○ データエンジニアが 1 人の現状でも運用が低コスト ○ おまけに無料 ● ノンプログラマのシート運用者を巻き込みやすい ○ BigQuery コンソールに似た UI で抵抗がない ○ (多少)git 操作から解放されるのが大きい ● dbt でできる最低限の機能は備えている ○ git 管理, データリネージ , メタデータ管理など ○ 一方で dbt-osmosis など便利なツールが使えなくなる 15


Slide 16

Slide 16 text

良さそう… ヨシ!Dataform を布教だ! GAS を移行だ!

Slide 17

Slide 17 text

移行方法の検討 
 ● 現状の利用状況を知る ○ INFORMATION_SCHEMA で利用者を特定 ○ GAS によるリクエスト数も計測して 0 を目指す ● スプレッドシートの洗い出し ○ 前述の通り 70 枚を各チームに運用中のシートを聞き洗い出し ● シート運用者に Datafom を布教と作業内容を伝え協力者を募る ○ マニュアルもここで一緒に作る ● 担当表を作りシートを割り振って移行 ○ コネクテッドシートでの接続はシート運用者に影響のないタイミングで依頼 17


Slide 18

Slide 18 text

移行後のアーキテクチャ 
 18


Slide 19

Slide 19 text

〜移行開始から半年後〜

Slide 20

Slide 20 text

GAS によるクエリのジョブ数 
 20
 ← GAS によるジョブ数を大 幅に削減!🎉🎉🎉


Slide 21

Slide 21 text

移行後の効果 
 ● レビュー体制の構築 ○ 移行開始から半年で 500 近くのプルリクエストが作成、コントリビューターも開 始当初の 2 人から 9 人に! ● 新たに GAS を使ったデータ連携が生まれなくなった ○ シート運用者を巻き込んだことで Dataform 始まりになった ● 共通テーブルの増加 ○ 数でいうと 70 テーブルほど新規で作成 ● シートに最適化された共通テーブルの増加 ○ データモデリング勉強会を開いてチームで認識を合わせている 21


Slide 22

Slide 22 text

まとめ 今後やりたいこと

Slide 23

Slide 23 text

まとめ / 今後やりたいこと 
 23
 ● まとめ ○ 移行系のプロジェクトは序盤で運用者を巻き込んで取り組むと新たな負債を 生まれなくなる ○ 仕組みを作った上で一緒になって運用していくことが大事 ● 今後やりたいこと ○ 共通テーブルの精査とより使いやすいテーブルの整備 ○ 他事業部への展開 ○ データ周りの仲間を増やす

Slide 24

Slide 24 text

ということで最後に!

Slide 25

Slide 25 text

少しでもファインディで働くことにご興味あれば、気軽にご連絡ください! どこが適正かわからないという方も含めて、オープンポジション (書類選考や面談時にポジションすり合わせ )やカジュアル面談の申込みを行っています! 25
 ※募集状況によって変動します 開発チーム・デザイナー ● CTO候補 ● EM ● フロントエンド ● 機械学習エンジニア ● バックエンド ●データエンジニア ● SRE ● UIデザイナー Findy Career ● 事業部長候補 ● マーケティング ● 事務アシスタント ● PdM ● カスタマーサクセス ○ リーダー候補 / メンバー ● ユーザーサクセス ○ リーダー候補 / メンバー Findy Team+ ● 新規事業開発 ● セールス ● カスタマーサクセス ● PdM 海外推進 ● 立ち上げメンバー ○ ユーザー対応 ○ 企画対応 社長室 ● 社長室長候補 ● 採用組織人事リーダー ● 広報担当 コーポレート 他 ● CFO候補 ● 経営企画 ● 法務 ● 上場準備担当 ● 事業企画 ● 経理 募集中のポジション

Slide 26

Slide 26 text

複数プロダクトのデータ基盤を設計・開発している最中です! 興味ある方はご応募、カジュアル面談お待ちしています → データエンジニア も募集中です!!

Slide 27

Slide 27 text

ご清聴 ありがとうございました 🙏