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
2.5k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Dataform を使った GAS によるデータ運用からの脱却
Noriaki Hiraki
August 18, 2024
More Decks by Noriaki Hiraki
See All by Noriaki Hiraki
ファインディの事業拡大を支える 拡張可能なデータ基盤へのリアーキテクチャ
hiracky16
0
1.6k
ADK + toolbox を使ってデータマネジメントやってみた話
hiracky16
1
99
ファインディにおける Dataform ブランチ戦略
hiracky16
1
510
マルチプロダクトのデータ基盤設計 〜データメッシュを運用して見えた課題と伸びしろ〜
hiracky16
0
1.8k
マルチプロダクトのデータ基盤設計〜データメッシュへのリアーキテクチャで見えた課題と伸びしろ〜
hiracky16
0
660
Other Decks in Technology
See All in Technology
AI Coding Agent時代のcdk-nagガードレール 〜組織ルールを強制CIで守り抜く設計の挑戦〜
mhrtech
3
440
ruby.wasmとPicoRuby.wasmに対応した仮想DOMライブラリを作ってる話 #kaigieffect_kaigi
sue445
PRO
0
150
実践!既存 Project への AI-Driven Development 適用〜 一ヶ月で Project 唯一のフロントエンドエンジニアを作り出せ〜
lycorptech_jp
PRO
0
250
ボーイスカウトルールでメモリやスキルを改善しよう
azukiazusa1
4
1.5k
CDKで書くECSのベストプラクティス、 改めて考え直す2026 #cdkconf2026
makies
3
850
発表と総括 / Presentations and Summary
ks91
PRO
0
140
凡エンジニアがこの先生きのこるためには。〜TypeScript完全に理解したい〜
alchemy1115
2
310
「守りたい体験」を渡すだけで E2E を生成させられるようになった話
hinac0
1
740
[2026-07-15] AI Ready なはずだったアーキテクチャと、見えてきた課題・次に目指す状態
wxyzzz
9
4k
企業でAWS Organizationsを動かすための組織設計の考え方
nrinetcom
PRO
1
110
AI時代のPlaywright活用(システムテストを自動化する ー 実行エンジンにPla ywrightを選んだ理由)
ynisqa1988
1
660
「最後に責任を取るのはチーム」— 人間のPRレビューを最小化してアップデートしたメンタルモデル
jnishime_dresscode
0
940
Featured
See All Featured
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.7k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
64
56k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
150
The Curious Case for Waylosing
cassininazir
1
430
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
WCS-LA-2024
lcolladotor
0
720
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
510
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
770
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
730
The Language of Interfaces
destraynor
162
27k
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候補 • 経営企画 • 法務 • 上場準備担当 • 事業企画 • 経理 募集中のポジション
複数プロダクトのデータ基盤を設計・開発している最中です! 興味ある方はご応募、カジュアル面談お待ちしています → データエンジニア も募集中です!!
ご清聴 ありがとうございました 🙏