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
GitHubを使わずDatabricksだけで お手軽にライブラリ共有やCIが できる環境を作...
Search
KAKEHASHI
April 09, 2024
Business
1
590
GitHubを使わずDatabricksだけで お手軽にライブラリ共有やCIが できる環境を作ってみた/Creating an Environment for Easy Library Sharing and CI Using Only Databricks Without GitHub
KAKEHASHI
April 09, 2024
Tweet
Share
More Decks by KAKEHASHI
See All by KAKEHASHI
KAKEHASHI Company Deck / Company Deck
kakehashi
3
16
アジャイルチームがらしさを発揮するための目標づくり / Making the goal and enabling the team
kakehashi
4
390
適材適所の技術選定 〜GraphQL・REST API・tRPC〜 / Optimal Technology Selection
kakehashi
1
760
誰も全体を知らない ~ ロールの垣根を超えて引き上げる開発生産性 / Boosting Development Productivity Across Roles
kakehashi
2
260
スプリントゴールにチームの状態も設定する背景とその効果 / Team state in sprint goals why and impact
kakehashi
2
160
プロダクト成長に対応するプラットフォーム戦略:Authleteによる共通認証基盤の移行事例 / Building an authentication platform using Authlete and AWS
kakehashi
1
230
見えづらい活動の成果の伝え方は日頃からめちゃくちゃ悩んでるけど、実際こんな取り組みをしな がら温度感を合わせにいってるよ / Conveying Hard-to-See Results
kakehashi
4
2.3k
Evolving DevOps Teams and Flexible Organizational Culture
kakehashi
1
1.4k
難しいから面白い!医薬品×在庫管理ドメインの複雑性と向き合い、プロダクトの成長を支えるための取り組み / Initiatives to Support Product Growth
kakehashi
3
300
Other Decks in Business
See All in Business
【リクロマ株式会社】20241123_会社紹介資料
takahiro4545
0
200
XENDOU会社概要
xendou
0
260
kintoneを活用した緊急通行車両確認手続の迅速化
tokyo_metropolitan_gov_digital_hr
0
480
会社案内資料
mkengineering
1
170
株式会社BFT 会社紹介資料|エンジニア&セールス職向け
bft_recruit
2
11k
M&A Cloud Advisory Partners 採用ピッチブック
macloud
1
13k
YonY 5倍成長を達成した プロダクト開発の秘密とは?
aisaac
PRO
0
200
5 Things Every L&D Pro Should Steal From Marketing
trainlikeamarketer
0
430
Arches 会社説明資料/ HR Deck
arches0501
0
7.6k
360度カメラを活用した施設配置確認ツール
tokyo_metropolitan_gov_digital_hr
0
160
DX活用による島しょ港湾の防災対応力強化
tokyo_metropolitan_gov_digital_hr
0
150
VANISH STANDARD Company Deck
vstandard
PRO
3
22k
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
506
140k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Typedesign – Prime Four
hannesfritz
40
2.4k
Into the Great Unknown - MozCon
thekraken
33
1.5k
Facilitating Awesome Meetings
lara
50
6.1k
Raft: Consensus for Rubyists
vanstee
136
6.6k
Intergalactic Javascript Robots from Outer Space
tanoku
269
27k
How to train your dragon (web standard)
notwaldorf
88
5.7k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
740
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
The Language of Interfaces
destraynor
154
24k
Transcript
日本の医療体験を、しなやかに。 © KAKEHASHI Inc. 株式会社カケハシ 2024/4/5 データサイエンティスト 保坂 GitHubを使わずDatabricksだけで お手軽にライブラリ共有やCIが
できる環境を作ってみた
© KAKEHASHI Inc. 保坂 桂佑 株式会社カケハシ AI在庫管理 データサイエンティスト 兼 エンジニア
経歴 データ分析のコンサルティング →リクルートでデータサイエンティスト→機械学習エンジニアマネージャー →カケハシに1人目のデータサイエンティストとしてジョイン 著書 Kaggleで勝つデータ分析の技術(共著) 自己紹介 2
© KAKEHASHI Inc. カケハシでのお仕事 開発業務からデータサイエンス業務にシフトしてきています 2021年 Musubi AI在庫管理の開発 (エンジニア的なお仕事) 2022年
Musubi AI在庫管理の開発 + 精度改善 (データサイエンティスト的なお仕事 + エンジニア的なお仕事) 2023年〜 新規事業のためのデータ活用、施策効果検証 (データサイエンティスト的なお仕事) 3
© KAKEHASHI Inc. カケハシの分析業務でのDatabricks利用 必要なものがシームレスにつながっていてDatabricksだけで完結できるので、カケハシの分析業務では Databricksをフル活用している 4 可視化・共有 分析 集計・マート作成
定期実行
© KAKEHASHI Inc. 分析業務でよく発生する課題3兄弟 コード共有したい 5 だれでも自由に処理を拡張したい デグレが起こらないようにしたい その分析でも使え るからあげる!
関数追加したい バグってるから 直しちゃう 関数にパラメー タ追加しよう 機能追加した! 間違った結果が 出てるよ チームで分析業務を進めているとこの3つがとても良く起こる。手軽に実現したい・・・ (※現在 データサイエンス系人材 11名ほどの組織規模)
© KAKEHASHI Inc. Databricksにおけるコード管理のベストプラクティス そういうとき、DatabricksではGit/GitHubを使ったコード管理を推奨している • バージョン管理のためにGit/GitHubを使う • GitHub ActionsなどのCI/CDツールでテストをトリガーする
• DatabricksとGit/GitHubを連携させる 6 ノートブックのためのソフトウェアエンジニアリングのベストプラクティス より GitHub Databricks Pull Request GitHub Actions コード 修正 push PR作成 CI実行
© KAKEHASHI Inc. プラクティス通りにやると大変だった アウトプットではなく仮説検証のコードなのできっちりしすぎなくてよいのに、労力に見合わない • 「この集計でXがわかったので別の集計をしてみよう」→「Yがわかったからさらに別の集計をしてみ よう」→「Zだと・・じゃあこのアルゴリズムで行こう」 • 「この検証の流れがほかにも転用できるかもしれないから共有はしておこう」
7
© KAKEHASHI Inc. 大変だった理由① ビジネスサイドに近い業務経験でGitHubに触れたことのないデータサイエンティストにとってGitHubはハー ドルが高い • branch、commit、push、pullなど様々な独自の概念があってなかなか慣れず、エンジニアに質問しま くってしまう •
操作をミスしたときのリカバリは周りにエンジニアがいないと厳しい 8
© KAKEHASHI Inc. 大変だった理由② CIのためにGitHub Actionsのymlファイルを書くのもかなり辛い • 書いてあること一つ一つが謎でどう書いたら良いかわからない • マウスでポチポチするだけでCI作りたい
9
© KAKEHASHI Inc. 大変だった理由③ カケハシではGitHubリソースもIaC管理しているのでさらに敷居が高く、GitHubリポジトリ管理したくない • GitHubリポジトリ作成から権限管理まですべてTerraformコードの修正が必要 • エンジニアからすると嬉しいことだがデータサイエンティストにとっては知らないことばかり 10
© KAKEHASHI Inc. 本当にGitHubで管理しないとだめかな・・ 11
© KAKEHASHI Inc. GitHubの恩恵 GitHubでコード管理すると以下のような恩恵がえられるが・・・ • コードのバージョン管理ができる • Pull Requestによりレビューできる
• コードのロールバックができる • CI/CDにより自動テストができる 12
© KAKEHASHI Inc. Databricksでも代替できるかも! 調べてみるとGitHubが提供する機能の多くをDatabricksだけでもカバーできそうだった (制限はある) 13 PRはないけど コードにコメントつけてFBすることはできる! ブランチはないけどバージョン管理できる!
push/PRをトリガーにはできないけど スケジュールジョブで定期自動テストはできる! 一部コミットのrevertはできないけど 過去バージョンへのロールバックはできる!
© KAKEHASHI Inc. Databricksでも代替できるかも! 調べてみるとGitHubが提供する機能の多くをDatabricksだけでもカバーできそうだった (制限はある) 14 PRはないけど コードにコメントつけてFBすることはできる! ブランチはないけどバージョン管理できる!
push/PRをトリガーにはできないけど スケジュールジョブで定期自動テストはできる! 一部コミットのrevertはできないけど 過去バージョンへのロールバックはできる! データサイエンティスト的には これで十分!
© KAKEHASHI Inc. ということで、GitHubなしでやってみた! 15
© KAKEHASHI Inc. 作った環境 Databricksの機能のみをつかって • コード共有したい • だれでも自由に処理を拡張したい •
デグレが起こらないようにしたい を実現する環境になっている 16 詳細は 弊社ブログ記事 をご覧ください
© KAKEHASHI Inc. 導入してよかったこと この仕組みで、分析業務でよく発生する課題3兄弟は解消できそう。特に以下の点は良いと感じた (※一部のプロジェクトに導入し始めている状況での感想です) マウスでポチポチするだけでCI環境をつくれる • GitHub使ったり、 GitHub
Actionsのyml書く必要がないのでかなりハードルが下がる PRを出す必要なくコード修正が可能なのはやっぱり楽 • ちょっとした変更にPR作って出したりレビューするのもデータサイエンティストにとっては結構負担 リグレッションテスト程度ならすぐ作れるので負担は小さい • 分析作業の中で、処理途中のデータをチェックしてるのでそれをテストにするだけ • おかしな修正があれば過去バージョンに戻せるので怖くない 17
© KAKEHASHI Inc. この仕組みで難しいと感じたこと 手軽さを取る代わりに捨てたものもあるので、難しいと感じた点もあった。データサイエンティストにとっ てもGitHubが必要な場面はありそう。 たくさん変更するときは不安が残る • ブランチは使えないし、差分の全revertはできても一部の差分のrevertはできない ノートブック以外のリソース(クエリなど)はこの仕組みでは管理できない
• 自動テストをさせることはできる • 変更履歴が見られずロールバックができない 18
© KAKEHASHI Inc. 今後やっていこうとしていること プロジェクトや作成したコードのフェーズに合わせた管理ができるようにしていきたい 19 初期フェーズ 試行錯誤・共有フェーズ 安定フェーズ Databricks
only CIもなし Databricks only CIあり Databricks + GitHub 新規のデータや分析なので 共有・再利用難しい お互いのコードが再利用できるときがある が、分析が整理されきっていない 分析が整理・型化されてきて、 その再利用、拡張を行っていく
© KAKEHASHI Inc. まとめ 20 Databricksだけで簡易なライブラリ共有やCIの環境を作った背景、導入してみてのメリットデメリットをご 紹介 • GitHubに触れたことのないデータサイエンティストでも、分析のコード共有に適した手軽さで使える •
リグレッションテストをしたり、テスト失敗時に元のコードにrevertするといった簡単なデグレ防止 には十分使える • たくさんの変更をちゃんと管理したり、ノートブック以外のリソース(クエリなど)を管理したいなら GitHubが不可欠
© KAKEHASHI Inc. なにはともあれ 21 Databricksはデータ関連の機能が オールインワンに搭載されていて 直感的に使えるので、 どんどん使ってみてください!