s01 t3 data_engineer
TRANSCRIPT
なぜ今データサイエンスか
• 深い顧客の理解なしではビジネスは難しくなってきている – Web、モバイル、SNS、センサーなど、顧客に関す
るあらゆるデータ
• 人材の不足 – 個人の勘と経験ではなく、学術として整備 – 米国の大学ではコースが充実
で、なぜ今?
• なぜ大きな会社も小さな会社も? – 巨大銀行からスタートアップまで
• なぜいろいろな業界で? – 金融、Web、製造、セキュリティ、・・・
• なぜいろいろなアプリケーションで? – 広告ターゲティング、不正検知、故障予測、・・・
• なぜ同じタイミングで?
ありがちな回答 より大量のデータが、より急速に生成される データサイズが最大容量の1台のコンピュータにも収まりきらなくなる データの生成や格納に必要なコストが下がり続けている
これは正しい回答ではありません
分析のスケーリングの法則
• 80:20 ルール – はじめはわずかな努力で大きな成果が得られる – ところが急激にリターンが減っていく
• 一方、分析に必要なコストは – これまで: 規模を増やすとコストは指数関数的に
増加 – Big Data: コストの増加は直線的
• 分析のROIの構造が根本的に変わった!
データサイエンティストって どういう職業?
• ゴール – データに価値を見いだし – データに関するストーリーを伝えること
• そのために – 必要なデータを引き出し – 統計や機械学習の知識を駆使してモデルを作り – 結果を生成 – 顧客や経営層とのコミュニケーションを行う
データエンジニアってどういう職業?
• ゴール – データを適切な場所に適切な形式で格納し – 利用者がアクセスできるように整備する
• そのために – データ処理のニーズを明確化し – ニーズを満たすストレージ基盤を設計構築し – データフローやアクセスアプリケーションを整備
• Big Data の 3V を扱えるシステムを構築する
データサイエンティストに 求められるスキル
• 統計学、機械学習 – R, SPSS, SAS, Knime, Weka, RapidMiner, SciPy, …
• データの整形・フィルタリング・正規化・加工 – Python, Java, Hadoop, Hive, SQL, Spark, Excel, …
• 可視化、プレゼンテーション • 貼っておきます
– データサイエンティストというかデータ分析職に就くための最低限のスキル要件とは hYp://tjo.hatenablog.com/entry/2015/03/13/190000
– データサイエンティスト養成読本 hYp://www.amazon.co.jp/dp/4774158968
データエンジニアに求められるスキル
• Python, Java, Hadoop, Hive, SQL, Spark, … • OS, ネットワーク, ストレージ, クラウド, …
Image via Data Science 101
大規模なデータを扱う時に重要なこと
• スケールアウト(水平スケーラビリティ)
• CPUとストレージの距離
サーバ ・・・
スケールアウト可能なアルゴリズム・データ格納方式
共有ストレージ (NAS/SAN)
サーバ
レイテンシ の問題
スループット の問題
サーバ
サーバ
サーバ
内蔵 HDD /SSD
内蔵 HDD /SSD
内蔵 HDD /SSD
CPU CPU CPU
大規模なデータを扱う時に重要なこと
• Data Gravity(データの重力)
Web App
Data
分析 App
Data
会計 App
Data
マーケApp
Data
販売 App
Data 販売 App
Data
会計
App マーケ App
Hadoopって?
Hadoop Distributed File System (HDFS)
MapReduce
Hive
SQLクエリ エンジン
HBase
NoSQL データベース
Pig
データ加工 フレームワーク
Mahout
機械学習
Zoo Keeper
分散レポジトリ
・・・
MapReduce/HDFS を使いやすくするための無数のプロジェクト
Sparkって?
• (主に)MapReduce の置き換え – バッチだけでなくインタラクティブな処理も – メモリを最大限利用し、より効率よく
Spark
Spark SQL
SQLクエリ エンジン
Spark Streaming
ストリーム処理
MLlib
機械学習
GraphX
グラフ処理
Spark R
R on Spark
HDFS またはその他のファイルシステム
分析と機械学習
• 従来からの分析 – 集計、レポート、見える化、ルールベース処理
• 機械学習による応用 – 予測、カテゴリ分類、レコメンド、異常検知
• データ分析のステップ
1. ビジネスとデータの理解 2. データの準備 3. モデルの作成 4. モデルの評価 5. モデルの展開
Python と Hadoop/Spark
• MapReduce を Python で – mrjob, Pydoop
• Pig – Jython, cpython でユーザー定義関数を書く
• Hadoop を管理する – snakebite
• Spark を Python で – PySpark
Hadoop with Python hYp://www.slideshare.net/DonaldMiner/hadoop-‐with-‐python
ビジネスに分析を生かしている企業
hYp://itpro.nikkeibp.co.jp/atcl/column/14/122600137/122600002/ 「我々の仕事は、対話(アナログ)とデータ分析(デジタル)の比率がそれぞれ50%ずつ。これが理想」 花王・石黒勲氏
hYp://special.nikkeibp.co.jp/ts/aricle/ae0d/180043/ 「スキルが高いデータサイエンティストより問題解決ができる人材」「高度な分析技術はまず要らない」 リコー・佐藤敏明氏
分析をビジネスに活用するために 重要なこと
• 分析の8割は基本的なスキルでカバーできる • 分析には業務知識が必須 • 「データを中心に考える」文化の醸成 • ステップを踏んで少しずつ成果を出す • コミュニケーション