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
databricksを使ってnotebookベースでお手軽に機械学習API・バッチ処理を量産する
Search
Toru Nishiyama
May 29, 2019
Technology
2
1.1k
databricksを使ってnotebookベースでお手軽に機械学習API・バッチ処理を量産する
2019年5月29日のMachine Learning Casual Talks #10 で発表する内容
Toru Nishiyama
May 29, 2019
Tweet
Share
More Decks by Toru Nishiyama
See All by Toru Nishiyama
scramble#4_最近のFOLIOのToC事業におけるプロダクトマネジメント※公開版
paulxl
0
2k
データ活用の進め方をステークホルダーに理解してもらうためにやったこと
paulxl
1
1.3k
エンジニアとデータサイエンティストがもっと仲良くなるためのデータサイエンティストの話
paulxl
0
210
Other Decks in Technology
See All in Technology
目標と時間軸 〜ベイビーステップでケイパビリティを高めよう〜
kakehashi
PRO
8
940
AIエージェント開発のノウハウと課題
pharma_x_tech
8
4.6k
Potential EM 制度を始めた理由、そして2年後にやめた理由 - EMConf JP 2025
hoyo
2
3k
実は強い 非ViTな画像認識モデル
tattaka
3
1.4k
JAWS DAYS 2025 アーキテクチャ道場 事前説明会 / JAWS DAYS 2025 briefing document
naospon
0
2.8k
Apache Iceberg Case Study in LY Corporation
lycorptech_jp
PRO
0
360
Amazon Athenaから利用時のGlueのIcebergテーブルのメンテナンスについて
nayuts
0
110
Exadata Database Service on Cloud@Customer セキュリティ、ネットワーク、および管理について
oracle4engineer
PRO
2
1.6k
Two Blades, One Journey: Engineering While Managing
ohbarye
4
2.4k
Qiita Organizationを導入したら、アウトプッターが爆増して会社がちょっと有名になった件
minorun365
PRO
1
300
マルチアカウント環境における組織ポリシーについて まとめてみる
nrinetcom
PRO
2
100
Autonomous Database Serverless 技術詳細 / adb-s_technical_detail_jp
oracle4engineer
PRO
17
46k
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2.1k
The Pragmatic Product Professional
lauravandoore
32
6.4k
Visualization
eitanlees
146
15k
KATA
mclloyd
29
14k
YesSQL, Process and Tooling at Scale
rocio
172
14k
A Philosophy of Restraint
colly
203
16k
What's in a price? How to price your products and services
michaelherold
244
12k
The Language of Interfaces
destraynor
156
24k
Documentation Writing (for coders)
carmenintech
68
4.6k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
27
1.9k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.3k
Transcript
databricksを使ってnotebookベース でお手軽に機械学習API・ バッチ処理を量産する 2019.05.29 Supership Toru Nishiyama
2 サマリ • 自己紹介 • 普段の仕事と機械学習のかかわり • databricksとは • databricksのJob機能を活用しよう
• databricks環境におけるCI/CD • 具体的なユースケース
3 自己紹介 • 西山 徹(にしやま とおる) • データアナリスト/セールスエンジニア@Supership • 非IT系
-> データアナリスト -> データアナリスト/セールスエンジニア(now) • どうでもよいつぶやき: 最近、二郎系ラーメンマップを作ったらGIGAZINEに 取り上げられたりしました ※Herokuの無料枠が死んで現在は落ちてます…
4 普段の仕事と機械学習のかかわり • 所属チームのミッション • 広告配信ログ、ユーザの属性情報など自社データを用いた クライアント向けデータ分析・自社利用向け広告配信セグメントの作成 etc., • 大変なところ
• とにかくデータがでかい • 広告配信ログは1日数十億レコード、 属性データも1テーブル1億レコードを余裕で超えてくる • チームはアナリストが大半で、エンジニアリングリソースが十分でない • 案件ベースで、 広告配信セグメントを新規で作成してスケジュール実行したり、 クライアントとのデータ連携のためのデータパイプラインを作ったり、 といったことが散発的に発生
5 普段の仕事と機械学習のかかわり • 大変なところにどう立ち向かっているか • とにかくデータがでかい -> Apache Sparkを使おう •
チームはアナリストが大半で、エンジニアリングリソースが十分でない -> databricksを使うことで、極力エンジニアリング にかけるリソースをへらす ≒databricksの機能を利用して巻き取ってもらう ↑ここらへんが今回の話の中心になります
6 databricksとは • ざっくりdatabricksの紹介 • databricks社(Sparkの開発元)が提供している 統合分析プラットフォーム • jupyter-likeなnotebookベースでPython, R,
Scalaから、 分散処理基盤上でSparkが実行できる • 利用するクラスタ単位で環境を切り替えたり、 依存ライブラリを管理することができる • ベースとなる環境は databricks runtimeと呼ばれる標準環境 -> ざっくりanacondaみたいなものだと思ってください • 今日出てこない話も含めて過去に書いた記事もあるので よかったら読んでみてください • Databricksで分析業務がはかどっている話 - Qiita
7 databricksのJobs機能を活用しよう • notebookを文字通りjob化することができる機能 • notebookのスケジュール実行したり、REST API化して 任意のタイミングで処理を実行させることができる • jobの作成・管理などの操作がwebブラウザ上から実行できる
• 良いかどうかはさておき, エンジニアリングの基礎知識がなくても一瞬でAPI構築ができる • jobごとに専用のクラスタが実行時に都度立ち上がるので、 コスト的にもメリットがある • jobの内容に合わせたスペックを選択できる (CPU/GPU, メモリ, worker数, etc.,)
8 databricks環境におけるCI/CD • databricksのnotebookはgithubとの連携が可能 • しかも.pyで保存できる • databricksが用意しているCLIを使うことで、ローカル環境や databricksのワークスペース内の任意のディレクトリに notebookを同期可能
• それとCI/CDツールを組み合わせることで、 「notebookがmasterにマージされたら本番用の ワークスペースに自動でデプロイする」といったことが実現可能 (開発用ワークスペース ) (本番用ワークスペース ) deploy commit/ merge /master/ /dev/
9 webアプリケーション 具体的なユースケース • バッチ処理を記述したnotebookをスケジュール実行して、 ETL処理として利用 • アドホックなETL処理が多数発生するので都合が良い • webアプリケーションから呼ばれるAPIとして利用
databricks job jobに投げる パラメータを選択 jobの結果を閲覧 jobの結果を 出力 ユーザが指定した 条件でjobをkick/ jobのステータスを監視 完了した jobの結果を読み込み 画面上で可視化
10 さらに細かいtips • ちょっとした履歴管理はnotebookに標準でついてるので楽 • .pyでnotebookが保存されるのでGithub上でのレビューが めっちゃ楽 • 改行がちゃんと表示されてdiffがめっちゃ見やすい! •
databricks CLIでローカル環境にnotebookを持ってきて、 .pyファイルとして開発もできる • jupyter-likeなインタラクティブに確認しながら開発したい、 リファクタなどエディタやlintツールの機能を活用したいなど、 好みに合わせて作業環境を選べる • 微妙なところとしては、jobにキューイングが まだ実装されていないところ
11 まとめ • databricksを使うことで、 • Jupyter notebookベースで分析をしていて辛いところを databricksがよしなに巻き取ってくれるので、 アナリストが多いチームでもお手軽に機械学習や ちょっとしたデータパイプラインを量産できる
• (今回は触れませんでしたが)ちょっとしたBIツールとして 使ったりもできるなど、databricksだけで分析業務が完結できるよう 様々な機能が高速に開発されている