Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Dataform を使った GAS によるデータ運用からの脱却
Search
Noriaki Hiraki
August 18, 2024
Technology
4
2k
Dataform を使った GAS によるデータ運用からの脱却
Noriaki Hiraki
August 18, 2024
Tweet
Share
More Decks by Noriaki Hiraki
See All by Noriaki Hiraki
ファインディにおける Dataform ブランチ戦略
hiracky16
0
240
マルチプロダクトのデータ基盤設計 〜データメッシュを運用して見えた課題と伸びしろ〜
hiracky16
0
36
マルチプロダクトのデータ基盤設計〜データメッシュへのリアーキテクチャで見えた課題と伸びしろ〜
hiracky16
0
380
Other Decks in Technology
See All in Technology
[MIRU25] NaiLIA: Multimodal Retrieval of Nail Designs Based on Dense Intent Descriptions
keio_smilab
PRO
1
170
マルチモーダル基盤モデルに基づく動画と音の解析技術
lycorptech_jp
PRO
3
360
LLM開発を支えるエヌビディアの生成AIエコシステム
acceleratedmu3n
0
360
少人数でも回る! DevinとPlaybookで支える運用改善
ishikawa_pro
5
2k
【CEDEC2025】現場を理解して実現!ゲーム開発を効率化するWebサービスの開発と、利用促進のための継続的な改善
cygames
PRO
0
580
反脆弱性(アンチフラジャイル)とデータ基盤構築
cuebic9bic
2
130
【CEDEC2025】『ウマ娘 プリティーダービー』における映像制作のさらなる高品質化へ!~ 豊富な素材出力と制作フローの改善を実現するツールについて~
cygames
PRO
0
130
TypeScript 上達の道
ysknsid25
23
5.1k
CSPヘッダー導入で実現するWebサイトの多層防御:今すぐ試せる設定例と運用知見
llamakko
1
280
【CEDEC2025】『Shadowverse: Worlds Beyond』二度目のDCG開発でゲームをリデザインする~遊びやすさと競技性の両立~
cygames
PRO
1
180
alecthomas/kong はいいぞ
fujiwara3
6
1.3k
AIエージェントを支える設計
tkikuchi1002
12
2.8k
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
173
14k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
Making Projects Easy
brettharned
117
6.3k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
50
5.5k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.9k
4 Signs Your Business is Dying
shpigford
184
22k
Mobile First: as difficult as doing things right
swwweet
223
9.8k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
860
How STYLIGHT went responsive
nonsquared
100
5.7k
Transcript
Dataform を使った GAS によるデータ運用からの脱却 「大規模データの負債解消への道のり Findy Lunch LT」 ファインディ株式会社 CTO
室データソリューションチーム / データエンジニア 開 功昂(hiracky16)
自己紹介
3 自己紹介 Findy / データエンジニア 開 功昂 / Noriaki Hiraki
/ @hiracky16 • 2023 年 11 月にファインディの CTO 室データソ リューションチームにジョイン 🙌 • データエンジニアとしてマルチプロダクトのデータ基 盤を設計・開発を推進 • サッカー⚽とポッドキャスト 🎙が好きです(プレミア リーグを週末によく見ています)
半年前くらいの データ運用の状況
2023 年 11 月(入社当時)データ運用のアーキテクチャ 5
弊社におけるデータ運用の状況 データ基盤管理の考え方 〜dbtの極意〜 Lunch LT dbtで始めるクエリの再利用と正確性の向上 6
そもそも GAS による データ運用の辛さとは? 🤔
GAS によるデータ運用の辛さ • データソースの変更に気付けない ◦ GAS に記述するとカラムやテーブルの変更に気づきにくい ◦ 実際に使われていないテーブルをそのまま使っている
SQL が多数存在 • SQL がシート管理者に依存してしまう ◦ レビューがないため正確性が担保されづらい 8
GAS によるデータ運用の辛さ • GAS, SQL, スプレッドシート関数の責務が曖昧で処理が追いづらくなる • 同じ処理がいろいろなシートに点在しており DRY
でない ◦ 複数枚のシートで同じような計算や処理が記述されている ◦ もしロジックが変わった際にその分変更しなければならなくなるのでメンテコス トが上がってしまう 9
じゃあ dbt を使って GAS 移行やデータモデリングやっ ていき💪
とはならなかった …😭
dbt を使った運用がうまくハマらなかった理由 • 前提としてシート運用者を巻き込んで移行作業を実施する予定 ◦ 作業者がデータアナリストの方と僕の 2 人に対してシートは 70
枚 ◦ 今後新しいスプレッドシート x GAS を生まないため • スケールしづらかった ◦ dbt 以前に git 操作の壁があり断念 ◦ dbt Cloud の導入も検討したが有料がネック 12
そこで白羽の矢が立ったのが Dataform
Dataform とは • BigQuery で SQL を使用したデータ変換ツール ◦ インフラ管理が必要ないマネージド
◦ パイプラインとスケジューラーを搭載 ◦ GitHub や GitLab でコード管理 • Web ブラウザ上で操作が可能 14
Dataform がハマった理由 • インフラ管理が不要 ◦ データエンジニアが 1 人の現状でも運用が低コスト ◦
おまけに無料 • ノンプログラマのシート運用者を巻き込みやすい ◦ BigQuery コンソールに似た UI で抵抗がない ◦ (多少)git 操作から解放されるのが大きい • dbt でできる最低限の機能は備えている ◦ git 管理, データリネージ , メタデータ管理など ◦ 一方で dbt-osmosis など便利なツールが使えなくなる 15
良さそう… ヨシ!Dataform を布教だ! GAS を移行だ!
移行方法の検討 • 現状の利用状況を知る ◦ INFORMATION_SCHEMA で利用者を特定 ◦ GAS によるリクエスト数も計測して
0 を目指す • スプレッドシートの洗い出し ◦ 前述の通り 70 枚を各チームに運用中のシートを聞き洗い出し • シート運用者に Datafom を布教と作業内容を伝え協力者を募る ◦ マニュアルもここで一緒に作る • 担当表を作りシートを割り振って移行 ◦ コネクテッドシートでの接続はシート運用者に影響のないタイミングで依頼 17
移行後のアーキテクチャ 18
〜移行開始から半年後〜
GAS によるクエリのジョブ数 20 ← GAS によるジョブ数を大 幅に削減!🎉🎉🎉
移行後の効果 • レビュー体制の構築 ◦ 移行開始から半年で 500 近くのプルリクエストが作成、コントリビューターも開 始当初の 2
人から 9 人に! • 新たに GAS を使ったデータ連携が生まれなくなった ◦ シート運用者を巻き込んだことで Dataform 始まりになった • 共通テーブルの増加 ◦ 数でいうと 70 テーブルほど新規で作成 • シートに最適化された共通テーブルの増加 ◦ データモデリング勉強会を開いてチームで認識を合わせている 21
まとめ 今後やりたいこと
まとめ / 今後やりたいこと 23 • まとめ ◦ 移行系のプロジェクトは序盤で運用者を巻き込んで取り組むと新たな負債を 生まれなくなる
◦ 仕組みを作った上で一緒になって運用していくことが大事 • 今後やりたいこと ◦ 共通テーブルの精査とより使いやすいテーブルの整備 ◦ 他事業部への展開 ◦ データ周りの仲間を増やす
ということで最後に!
少しでもファインディで働くことにご興味あれば、気軽にご連絡ください! どこが適正かわからないという方も含めて、オープンポジション (書類選考や面談時にポジションすり合わせ )やカジュアル面談の申込みを行っています! 25 ※募集状況によって変動します 開発チーム・デザイナー • CTO候補 •
EM • フロントエンド • 機械学習エンジニア • バックエンド •データエンジニア • SRE • UIデザイナー Findy Career • 事業部長候補 • マーケティング • 事務アシスタント • PdM • カスタマーサクセス ◦ リーダー候補 / メンバー • ユーザーサクセス ◦ リーダー候補 / メンバー Findy Team+ • 新規事業開発 • セールス • カスタマーサクセス • PdM 海外推進 • 立ち上げメンバー ◦ ユーザー対応 ◦ 企画対応 社長室 • 社長室長候補 • 採用組織人事リーダー • 広報担当 コーポレート 他 • CFO候補 • 経営企画 • 法務 • 上場準備担当 • 事業企画 • 経理 募集中のポジション
複数プロダクトのデータ基盤を設計・開発している最中です! 興味ある方はご応募、カジュアル面談お待ちしています → データエンジニア も募集中です!!
ご清聴 ありがとうございました 🙏