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
570
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
見えづらい活動の成果の伝え方は日頃からめちゃくちゃ悩んでるけど、実際こんな取り組みをしな がら温度感を合わせにいってるよ / Conveying Hard-to-See Results
kakehashi
4
2k
Evolving DevOps Teams and Flexible Organizational Culture
kakehashi
1
1.2k
難しいから面白い!医薬品×在庫管理ドメインの複雑性と向き合い、プロダクトの成長を支えるための取り組み / Initiatives to Support Product Growth
kakehashi
3
250
日本の医療システムの再構築を目指すスタートアップ「カケハシ」のフロントエンド領域でのチャレンジ / Challenges in the frontend domain at “Kakehashi”
kakehashi
3
2.1k
そのデータ連携、ホントにそれでいいの? 〜データモデル分析の重要性を説く〜 / How to analyse data integration
kakehashi
2
340
プロポーザル出しまくり芸人が教える、プロポーザルを採択してもらう技術 / Techniques for Getting Proposal Accepted
kakehashi
7
9.9k
目標設定は好きですか? アジャイルとともに目標と向き合い続ける方法 / Do you like target Management?
kakehashi
13
6.1k
Our Scrum without Estimates, and into the Trunk-based Development
kakehashi
2
460
なぜ僕たちは 開発生産性指標を見ていないのか / Our Strategy for Development Productivity Metrics
kakehashi
18
8.4k
Other Decks in Business
See All in Business
株式会社9課🧠会社紹介資料(2024)/About section9
abenger
5
26k
marui-unite会社紹介資料
0101unite
1
10k
株式会社エアロネクスト_会社紹介資料
aeronext
0
150
新卒エンジニア向け dely会社説明資料 / New Grad Engineers
delyinc
0
110
(15枚)予材管理の用語説明 予材とは? 予材資産とは?
nyattx
PRO
0
970
ワンキャリア 会社説明資料 / Company Deck
onecareer
6
180k
【BlueBean】提案資料
my0313
0
510
How 'Awesome' will define SEO in the new era of AI-Powered Search
varn
0
140
トラックレコード式採用ブランディング
trackrecords
PRO
2
190
電子契約サービスの導入
tokyo_metropolitan_gov_digital_hr
0
160
Recruiting Deck_株式会社HACHI
hachi_hiring
1
210
NTTコミュニケーションズ イノベーションセンター テクノロジー部門 紹介デッキ / NTT Communications Innovation Center Technology Deck
nttcom
2
3.8k
Featured
See All Featured
Building a Modern Day E-commerce SEO Strategy
aleyda
38
6.9k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
46
4.9k
Designing for humans not robots
tammielis
249
25k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
130k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Automating Front-end Workflow
addyosmani
1365
200k
VelocityConf: Rendering Performance Case Studies
addyosmani
325
23k
The Cult of Friendly URLs
andyhume
77
6k
What the flash - Photography Introduction
edds
67
11k
Practical Orchestrator
shlominoach
186
10k
How To Stay Up To Date on Web Technology
chriscoyier
787
250k
Building Applications with DynamoDB
mza
90
6k
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はデータ関連の機能が オールインワンに搭載されていて 直感的に使えるので、 どんどん使ってみてください!