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が できる環境を作ってみた/Creating an Environment for Easy Library Sharing and CI Using Only Databricks Without GitHub
Search
kakehashi
April 09, 2024
Business
1
330
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
OKRと「測りすぎ」 〜なりたい姿を、「測りすぎ」ないようにしながらどう追いかけるか〜/OKR and the tyranny of metrics
kakehashi
30
12k
複雑なビジネスルールに挑む:正確性と効率性を両立するfp-tsのチーム活用術 / Strike a balance between correctness and efficiency with fp-ts
kakehashi
5
3.5k
開発組織のOKRの作り方 / OKR in a development division
kakehashi
13
4.2k
実はたくさんほしい インシデント報告/more incident reports
kakehashi
0
260
KAKEHASHI会社説明資料/Company information materials
kakehashi
0
2.8k
linkマクロが使いたい/smart knowledge management with link macro
kakehashi
2
970
Value Driven DevOps Team
kakehashi
13
4.2k
循環する学び~現場とコミュニティの境目で考える~/Learning Cycle between a team and a community
kakehashi
14
6.8k
新規プロダクトの仮説検証ループをすばやく回し続けるためのプロダクトエンジニアリング/PdENight3
kakehashi
15
4.9k
Other Decks in Business
See All in Business
インキュデータ会社紹介資料
okitsu
1
21k
paycloud group概要-VS code meetup-
paycloud
PRO
0
160
20240416_SuperMaskedDevOps
takusamar
1
360
アシスト 会社紹介資料
ashisuto_career
3
64k
akippa株式会社 - 会社紹介資料
akippa
3
46k
MYPLATE for office
myplate
0
230
慶應修士卒が語るキャリアパス:メーカー・コンサル・エンジニアからの知見
hamawwo
0
380
grabss会社案内 / grabss careerdeck
grabss
0
930
プロダクトの価値を最大化する「言語化筋トレ」のすすめ / "Verbalizing muscle training” to maximize the value of products
ar_tama
21
10k
エンジニア向け会社説明資料
staffrecruiter
2
420
株式会社Gakken LEAP 会社紹介資料
gakkenleap
1
1.1k
2023年度ICT職専門研修(海外派遣研修)報告書_No.2_サービスデザインの体系的な知識取得によるDX支援の質向上
tokyo_metropolitan_gov_digital_hr
0
260
Featured
See All Featured
Design by the Numbers
sachag
274
18k
For a Future-Friendly Web
brad_frost
172
9k
Embracing the Ebb and Flow
colly
80
4.2k
Building an army of robots
kneath
300
41k
In The Pink: A Labor of Love
frogandcode
138
21k
The World Runs on Bad Software
bkeepers
PRO
61
6.7k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
188
16k
Bootstrapping a Software Product
garrettdimon
PRO
302
110k
Thoughts on Productivity
jonyablonski
60
3.9k
Become a Pro
speakerdeck
PRO
13
4.6k
A designer walks into a library…
pauljervisheath
201
23k
How STYLIGHT went responsive
nonsquared
92
4.8k
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はデータ関連の機能が オールインワンに搭載されていて 直感的に使えるので、 どんどん使ってみてください!