In-Database Analyticsの必要性と可能性

238 views

Published on

2017/3/10に開催された In-database Analyticsの集い #1 での講演資料です。
https://connpass.com/event/50950/

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
238
On SlideShare
0
From Embeds
0
Number of Embeds
18
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

In-Database Analyticsの必要性と可能性

  1. 1. In-Database Analyticsの 必要性と可能性 永安 悟史 @snaga In-Database Analyticsの集い #1
  2. 2. 永安 悟史 • 略歴 – 2004年 某大学院 修了 – 2004年 NTTデータ 入社(~2009) – 2009年 アップタイムテクノロジーズ 創業 代表(現職) – 2012年 某ビジネススクール 修了(MBA) – 2013年 某ヘルスケアベンチャー CTO (~2015) • 専門領域 – データベース、データマネジメント – IT基盤全般、データセンタ、IT運用 – 次世代型のR&D、テクノロジー・マネジメント(MOT)、および ICTによる意思決定プロセスの向上、戦略の遂行能力の向上に特に 強い関心を持つ。 @snaga
  3. 3. • やってきたこと – 遊休リソースを用いた相同性検索処理の並列化とその評価 – 並列分散PostgreSQL研究開発 – データセンターサービス開発、運用 – レセプト、健康診断データ分析、製薬企業との共同研究 – 某研究所の研究開発のお手伝い – 数千万人の会員データのDWH構築 – 10 Reasons to Start Your Analytics Project with PostgreSQL – In-Database Analytics – 小規模・中規模データベースにおけるアナリティクス • 領域 – 遺伝子配列解析、細胞シミュレーション – 分散処理、HPC – オープンソース、インターネット – データセンター、クラウド – データウェアハウス、ビジネスインテリジェンス 永安 悟史 @snaga
  4. 4. 本セッションの目的 • In-Database Analyticsとは何かを知って興味を持 っていただく • PostgreSQLで今できることを知っていただく • In-Database Analytics仲間を増やす
  5. 5. 本日の内容 • In-Database Analytics とは何か • なぜ In-Database Analytics が必要なのか • In-Database Analytics on PostgreSQL の可能性 • 最短経路探索 pgRouting の紹介 • 機械学習ライブラリ Apache MADlib の紹介(とデ モ) • まとめ
  6. 6. In-Database Analyticsとは何か
  7. 7. In-Database Analyticsとは何か • In-database processing, sometimes referred to as in-database analytics, refers to the integration of data analytics into data warehousing functionality. Today, many large databases, such as those used for credit card fraud detection and investment bank risk management, use this technology because it provides significant performance improvements over traditional methods. • In-Database処理、時には In-Database Analytics と呼ばれるものは 、データアナリティクスをデータウェアハウス機能の中に統合したもの です。今日では、クレジットカードの不正利用の検知や投資銀行におけ るリスク管理などの多くの大規模データベースが、伝統的な方法と比較 して飛躍的にパフォーマンスが向上する、このテクノロジーを使ってい ます。 In-database processing – Wikipedia https://en.wikipedia.org/wiki/In-database_processing
  8. 8. In-Database Analyticsとは何か In-Database Analytics の進化。サンプル数が 100 億行になっても圧倒的性能を記録 http://www.intel.co.jp/content/www/jp/ja/big-data/xeon-e5-v3-in-database-analytics-ntt-data-study.html
  9. 9. In-Database Analyticsとは何か • In-database processing makes data analysis more accessible and relevant for high-throughput, real-time applications including fraud detection, credit scoring, risk management, transaction processing, pricing and margin analysis, usage-based micro- segmenting, behavioral ad targeting and recommendation engines, such as those used by customer service organizations to determine next-best actions. • In-Database処理は、データ分析を、よりアクセス可能かつ高スループ ットでリアルタイムなアプリケーションにします:不正検知、クレジッ トスコアリング、リスク管理、トランザクション処理、価格や利益分析 、利用実績に基づくマイクロセグメンテーション、行動に基づく広告タ ーゲティング、レコメンデーションエンジンなど、「次の最適なアクシ ョン」を見つけるために顧客サービスを行う組織によって利用されてい ます。 In-database processing – Wikipedia https://en.wikipedia.org/wiki/In-database_processing
  10. 10. In-Database Analyticsとは何か • Types – Translating models into SQL code – Loading C or C++ libraries into the database process space – Out-of-process • 種類 – モデルをSQLに翻訳する – C/C++のライブラリをデータベースのプロセス空間に持ち込む – データベースのプロセス空間の外で処理する In-database processing – Wikipedia https://en.wikipedia.org/wiki/In-database_processing
  11. 11. In-Databaseのパフォーマンス • In-DatabaseとOut-of-Databaseで約70倍の差 – 500次元の空間ベクトル、10,000レコードのコサイン類 似度を計算 コサイン類似度に基づくソート処理の実装方法とその性能比較 http://pgsqldeepdive.blogspot.jp/2017/01/consine-similarity-performance.html
  12. 12. In-Database Analyticsとは何か • データベースからデータを取り出さない • データに近いところに分析処理そのものを持ってい く • そのことによってスループットとレスポンスタイム を劇的に改善させる
  13. 13. なぜ In-Database Analytics の可 能性が高いのか
  14. 14. In-Database Analytics の 可能性が高い4つの理由 • データのサイズと種類 • 分析手法の普及 • 複雑なSQLとアナリティクスの統合 • SQLを使えるエンジニアの存在
  15. 15. 理由1:データのサイズと種類 • 使ってるデータベース、何GBですか? • 商品マスタ、会員マスタ、購買履歴、どこにありま すか? • 新しいデータはどこから入ってきて、どこから出て いきますか?
  16. 16. 理由2:分析手法の普及 • 分析手法は広く知られるようになった • 価値は「データ > 手法・スキル」になりつつある • あとは実際に実践するだけ。誰でも使えるようにな る必要がある • 「NATO (No Action, Talk Only)」にならないよう に
  17. 17. 理由3:複雑なSQLと アナリティクスの統合 • SQLはデータの取得、加工、集計の機能を拡充させ てきた • 結局、みんなSQLを使いたい • 「SQLの上」にアナリティクスを載せるのが現実的 なソリューション
  18. 18. 理由4:SQLを使える エンジニアの存在 • SQLを書けるエンジニアは大勢いる • Pythonで機械学習書ける人(scikit-learn使いこな せる人)とどちらが多いか • SQLを書けるエンジニアが、 (使い方を理解した 上で) UDFを呼び出せばよい • SQLの機能もそのまま使える
  19. 19. In-Database Analytics on PostgreSQL の可能性
  20. 20. In-Database Analytics on PostgreSQL の可能性 • RDBMSとしての豊富な機能 • ソフトウェアとしての拡張性 • データベースらしい使い方
  21. 21. データベースらしい使い方 • WHERE句によるデータの絞り込み • ORDER BY句によるソート • 使用するデータ項目(カラム)の取捨選択
  22. 22. 最短経路探索 pgRoutingの紹介
  23. 23. pgRoutingとは
  24. 24. 巡回セールスマン問題と 聖地巡礼の最適化 巡回セールスマン問題における最短経路をpgRoutingで探索する http://pgsqldeepdive.blogspot.jp/2016/09/pgrouting.html
  25. 25. 聖地巡礼マエショリ
  26. 26. 聖地巡礼マエショリ
  27. 27. Let’s 聖地巡礼 SELECT * FROM pgr_tsp('SELECT sid id, lat x, lon y FROM seichi ORDER BY sid', 1);
  28. 28. Let’s 聖地巡礼
  29. 29. Let’s 聖地巡礼
  30. 30. 聖地巡礼最短経路の可視化
  31. 31. 機械学習ライブラリ Apache MADlibのご紹介
  32. 32. Apache MADlibとは • オープンソースの機械学習ライブラリ – PostgreSQL、Greenplum Database、Apache HAWQと 組み合わせて使用可能。 – In-Databaseで動作。 – 多くの機械学習アルゴリズムを実装済み。 http://madlib.incubator.apache.org/
  33. 33. ユースケース Apache MADlib (Incubating) User Survey Results Oct 2016 http://madlib.incubator.apache.org/community-artifacts/Apache-MADlib-user-survey-results-Oct-2016.pdf
  34. 34. 機能 MADlib: Distributed In-Database Machine Learning for Fun and Profit https://archive.fosdem.org/2016/schedule/event/hpc_bigdata_madlib/
  35. 35. デモ • 高度な機械学習のデモでありません • どこでも応用可能なシンプルな使い方 • 「似ている順に商品をソートしたい」 • シンプルなマスタを使って実現する
  36. 36. デモ • IMDBのデータ from Kaggleを使用 • 監督、俳優、カテゴリ、キーワード、国、言語の項 目を使用 • データの前処理から手順を説明 • 映画をひとつ指定して、それに似ている順番にソー トする
  37. 37. デモ • 映画データのマスタを空間ベクトルに変換して、類 似度でソート CSV マスタ unnest vector 検索
  38. 38. デモ • デモで使った資材は以下を参照。 – https://github.com/snaga/apache-madlib-imdb- demo
  39. 39. ベクトル化とは • カテゴリー変数をダミー変数に変換すること – MADlibではencode_categorical_variables関数 機械学習によるデータ分析まわりのお話 https://www.slideshare.net/canard0328/ss-44288984
  40. 40. まとめ
  41. 41. まとめ • In-Database Analytics とは何か • なぜ In-Database Analytics なのか • PostgreSQLで使えるソフトウェア実装としての Apache MADlibのご紹介 • ぜひデータをいじってみましょう

×