Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

JubaQLご紹介

11,512 views

Published on

JubaQLの紹介

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

JubaQLご紹介

  1. 1. JubaQLご紹介 NTTソフトウェアイノベーションセンタ 湯原基貴 Copyright©2016 NTT corp. All Rights Reserved.
  2. 2. アジェンダ • はじめに • JubaQLって何? • JubaQLを使ってみる • おわりに Copyright©2016 NTT corp. All Rights Reserved.
  3. 3. はじめに • Jubatus 0.8.0でリリースされた機能 • Jubatus本体と比べて知名度がいまいち.... • この機会に簡単にご紹介させていただきます この後、JubaQLが話題が でたことはない・・・ Copyright©2016 NTT corp. All Rights Reserved.
  4. 4. JubaQLって何? • 機械学習に特化したDSL • SLQ-Likeな操作感覚でJubatusによる機械学習を実行可能 • その他にもこんな特徴が • ストリームデータソースに対応 • ストリームデータソース(ex. Apache Kafka)から継続的にデータを受け取り処理し続 けることができる • カスケード処理 • サーバ側だけでストリームデータを加工することができる • トリガーベースのアクション • ユーザ定義関数(UDF)とストリームデータに対して特定の条件が満たされた時にUDFを 実行するトリガーを設定することができる • 時系列データ分析 • ストリーム上でタイムウィンドウを定義し、タイムウィンドウ内で学習・分析が可能 Copyright©2016 NTT corp. All Rights Reserved.
  5. 5. JubaQLって何? • 機械学習に特化したDSL • SLQ-Likeな操作感覚でJubatusによる機械学習を実行可能 • その他にもこんな特徴が • ストリームデータソースに対応 • ストリームデータソース(ex. Apache Kafka)から継続的にデータを受け取り処理し続 けることができる • 静的データソース(ローカルファイル、HDFS)からデータを読み込み、生ストリーム データを分析するようなシームレスな連携が可能 • カスケード処理 • サーバ側だけでストリームデータを加工することができる • トリガーベースのアクション • ユーザ定義関数(UDF)とストリームデータに対して特定の条件が満たされた時にUDFを 実行するトリガーを設定することができる • 時系列データ分析 • ストリーム上でタイムウィンドウを定義し、タイムウィンドウ内で学習・分析が可能 Copyright©2016 NTT corp. All Rights Reserved.
  6. 6. JubaQLって何? • アーキテクチャ • Spark(YARN)基盤上でJubatusを実行 • 複数セッションを同時生成 • セッションごとにJubatus分散構成をYARN上に構築 Hadoop (YARN) Spark JubatusOnYarn JubatusOnYarn Client Gateway Processor HTTP JubaQL クエリと処理結果を JSON 形式で送受信 (Gateway/Processor間も同様) HTTP ・クライアントごとにセッションを生成 ・セッション毎に Processor を生成 (spark-submit 経由で Spark 上に起動) ・クライアントのセッションごとに 適切な Processor に処理を転送 : : Kafka / HDFS / Local File セッション1 Proxy Serve r RPC RPC Client Processor HTTP HTTP セッション2 Proxy Serve r RPC ・受信した JubaQL クエリを処理 ・JubatusOnYarn を YARN に投入 ・現行版 Jubatus に対し RPC を発行 ZooKeeper Server Server RPC Copyright©2016 NTT corp. All Rights Reserved.
  7. 7. JubaQLを使ってみる • 使ってみよう 1. データソースの作成 2. 学習モデルの作成 3. 学習モデルとデータソースの結びつけ 4. 処理開始 5. 分析の実行 Copyright©2016 NTT corp. All Rights Reserved.
  8. 8. JubaQLを使ってみる • データソースの作成(CREATE DATASOURCE) create datasource anomalysource from ( STORAGE: 'file:///home/vagrant/anomaly.json', STREAM: 'kafka://localhost:2181/anomaly/test-consumer-group‘ ) ローカルファイルとストリームデータソース (Aapache kafka)を指定 Copyright©2016 NTT corp. All Rights Reserved.
  9. 9. JubaQLを使ってみる • 学習モデルの作成(CREATE MODEL) • 異常検知(Jubaanomaly)機能を例に create ANOMALY model anomalymodel as * CONFIG '{"parameter" : {"nearest_neighbor_num" : 5, "reverse_nearest_neighbor_num" : 5, "method" : "inverted_index_euclid", "parameter" : {} }, "method" : "lof" }' Jubaanomalyを指定 Jubaaomalyの設定 Copyright©2016 NTT corp. All Rights Reserved.
  10. 10. JubaQLを使ってみる • 学習モデルとデータソースの結びつけ(UPDATE MODEL) • 学習で利用するJubatusのメソッドを指定 • データソースの全データについて指定されたメソッドで学習モデルが更新される • 次の操作で処理がスタートする update model anomalymodel using add from anomalysource データソースを指定 Jubaanomalyのaddメソッド を指定 学習モデル Copyright©2016 NTT corp. All Rights Reserved.
  11. 11. JubaQLを使ってみる • 処理開始(START PROCESSING) • データソースに対する処理を開始する • 学習モデルが更新される start processing anomalysource データソースを指定 Copyright©2016 NTT corp. All Rights Reserved.
  12. 12. JubaQLを使ってみる • 分析の実行(ANALYZE) • 学習モデルに対して分析を実行する analyze '{"id":3}' BY MODEL anomalymodel USING calc_score Jubaanomalyのメソッドcalc_score (指定したデータのLOFを参照する) を表示 指定したメソッドのパラメータ 学習モデル Copyright©2016 NTT corp. All Rights Reserved.
  13. 13. 【参考】Jubatusを使ってみる(発展編) • 分析結果からストリームを作成することができる • 以下のコマンドを追加することでJubaQLだけで分析結果を逐次HTTP送 信することが可能 1. データソースの作成 2. 学習モデルの作成 3. 学習モデルとストリームモデルの結びつけ 4. 新ストリームの定義(CREATE STREAM FROM ANALYZE) • データソースの各データを分析し、分析結果を加えた新たなストリームを定義 5. トリガ関数の定義(CREATE TRIGGER FUNCTION) • ストリームに対する処理を定義する • HTTPリクエストやemailの送信が可能 6. トリガの作成 • ストリームに対してトリガ関数を実行する 7. 処理開始 • HTTPリクエストやemailを送信するためのjqlオブジェクトが実装されている Copyright©2016 NTT corp. All Rights Reserved.
  14. 14. 【発展】Jubatusを使ってみる(発展編) • JubaQLを使った異常検知 20160616 GET /index.html 200 ……… アクセスログ ブラウザからの アクセス ログの収集 ログを queueにpush ログを取得 LOFの計算 LOFの監視 Copyright©2016 NTT corp. All Rights Reserved.
  15. 15. おわりに • JubaQLにより • ストリームデータソースに対する機械学習が容易 • SQL-likeなクエリ言語により、非プログラマでも機械学習が利用可能 • JubaQLの問題点 • インストールが大変 • spark,yarn,hdfs,zookeeper.... • Spark 1.2.1のみ対応(最新版は1.6.1。2.0も見えてきた) • みなさまのコミットお待ちしています! Copyright©2016 NTT corp. All Rights Reserved.

×