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
マルチプロダクトのデータ基盤設計 〜データメッシュを運用して見えた課題と伸びしろ〜
hiracky16
0
19
マルチプロダクトのデータ基盤設計〜データメッシュへのリアーキテクチャで見えた課題と伸びしろ〜
hiracky16
0
360
Other Decks in Technology
See All in Technology
IPA&AWSダブル全冠が明かす、人生を変えた勉強法のすべて
iwamot
PRO
2
210
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
3
970
20250707-AI活用の個人差を埋めるチームづくり
shnjtk
6
4k
freeeのアクセシビリティの現在地 / freee's Current Position on Accessibility
ymrl
2
250
TableauLangchainとは何か?
cielo1985
1
130
Enhancing SaaS Product Reliability and Release Velocity through Optimized Testing Approach
ropqa
1
250
ABEMAの本番環境負荷試験への挑戦
mk2taiga
5
490
開発生産性を測る前にやるべきこと - 組織改善の実践 / Before Measuring Dev Productivity
kaonavi
14
7.3k
面倒な作業はAIにおまかせ。Flutter開発をスマートに効率化
ruideengineer
0
430
[SRE NEXT] ARR150億円_エンジニア140名_27チーム_17プロダクトから始めるSLO.pdf
satos
3
1.2k
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
2
7.8k
クラウド開発の舞台裏とSRE文化の醸成 / SRE NEXT 2025 Lunch Session
kazeburo
1
360
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
35
6.7k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
Mobile First: as difficult as doing things right
swwweet
223
9.7k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
510
Faster Mobile Websites
deanohume
307
31k
Designing for humans not robots
tammielis
253
25k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
20
1.3k
KATA
mclloyd
30
14k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
2.9k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Done Done
chrislema
184
16k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.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候補 • 経営企画 • 法務 • 上場準備担当 • 事業企画 • 経理 募集中のポジション
複数プロダクトのデータ基盤を設計・開発している最中です! 興味ある方はご応募、カジュアル面談お待ちしています → データエンジニア も募集中です!!
ご清聴 ありがとうございました 🙏