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
1.4k
Dataform を使った GAS によるデータ運用からの脱却
Noriaki Hiraki
August 18, 2024
Tweet
Share
Other Decks in Technology
See All in Technology
Exadata Database Service on Cloud@Customer セキュリティ、ネットワーク、および管理について
oracle4engineer
PRO
0
1.1k
社内で最大の技術的負債のリファクタリングに取り組んだお話し
kidooonn
1
500
ライブラリでしかお目にかかれない珍しい実装
mikanichinose
2
340
リンクアンドモチベーション ソフトウェアエンジニア向け紹介資料 / Introduction to Link and Motivation for Software Engineers
lmi
4
300k
株式会社島津製作所_研究開発(集団協業と知的生産)の現場を支える、OSS知識基盤システムの導入
akahane92
1
200
Deno+JSRでパッケージを作って公開する
askua
0
120
DMARC 対応の話 - MIXI CTO オフィスアワー #04
bbqallstars
1
140
AIチャットボット開発への生成AI活用
ryomrt
0
150
dev 補講: プロダクトセキュリティ / Product security overview
wa6sn
0
1.8k
FOSS4G 2024 Japan コアデイ 一般発表25 PythonでPLATEAUのデータを手軽に扱ってみる
ra0kley
1
140
SREによる隣接領域への越境とその先の信頼性
shonansurvivors
2
450
開発生産性を上げながらビジネスも30倍成長させてきたチームの姿
kamina_zzz
1
960
Featured
See All Featured
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Teambox: Starting and Learning
jrom
133
8.8k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
Optimising Largest Contentful Paint
csswizardry
33
2.9k
Building an army of robots
kneath
302
42k
StorybookのUI Testing Handbookを読んだ
zakiyama
26
5.2k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
27
2k
Being A Developer After 40
akosma
86
590k
4 Signs Your Business is Dying
shpigford
180
21k
Designing for Performance
lara
604
68k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
16
2.1k
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候補 • 経営企画 • 法務 • 上場準備担当 • 事業企画 • 経理 募集中のポジション
複数プロダクトのデータ基盤を設計・開発している最中です! 興味ある方はご応募、カジュアル面談お待ちしています → データエンジニア も募集中です!!
ご清聴 ありがとうございました 🙏