SlideShare a Scribd company logo
1 of 29
株式会社ミクシィ
     石川有
所属
 たんぽぽグループ 解析チーム
 “「刺身の上にタンポポをのせる仕事」 のような単純
   作業の仕事から社内開発者を解放しよう、という
   ミッションの元、たんぽぽグループは技術をベース
   とした様々な仕事や課題解決に携わります。”
担当業務
 解析プラットフォームの構築
 統計解析・データマイニング
 解析などの相談・教育
Perl のみでは大規模データ処理が大変
  データの結合などの処理時間,メモリ使用量が膨大
trial & error が多い解析にレビューが向かない
  1つの解析をするのに何営業日も掛かっていた
解析データの分散
  解析したいデータの把握
  データ操作のライブラリの使い方の学習コスト
解析データの再利用性の欠如
  共通して使えたり,使い回しのできるデータが多かっ
  た
アプリエンジニアが解析環境のメンテナンス
  各サービスの解析が属人性を持ってしまう
アプリエンジニアの解析環境メンテナンスからの解放
 サービス開発者は,サービス開発に集中してもらいたい
解析に関するレビューからの解放
 コードレビューやDBレビューの手続きコストを無くしたい
アプリ側の実装と解析側の実装の統合
 アプリエンジニアがなにか解析したいサービスを実装したら,自
 動的に解析環境にも反映
アプリ側の環境と解析側の環境の分離
 DBの負荷など気にせず自由に解析
 データを用意するというコストの解放
データや解析の属人性の排除
解析の再現性の向上
処理時間の短縮
データがそこにある,すぐ使える




 解析プラットフォー
     ム
Hadoop
    Hadoop
      mixi ページの管理者向けの解析
    Hive
      定期実行集計,スポット調査
       DAUやデモグラ集計など
      自社開発の Perl フレームワーク Honey
R
    データマイニング
      多変量解析,クラスタリング etc
    統計的検定
      A/B テスト の検定 etc
アクセスログ etc              Hadoop Cluster



             保存用ストレージ
 MySQL DB               Hadoop Cluster




  •定期実行集計 → Hive
  •カウント以上の解析 → R
Strong Point       Weak Point
       大規模データが扱える          バッチ処理向き
       正規表現,JSONで扱える       「集計」以上のことが難しい
       SQL を知っている人の学習コスト
Hive

        処理は基本的にオンメモリで行うの    大規模データの扱いが難しい
       で,ロードさえ出来れば高速        データ結合もできるが,Hive
        統計解析,データマイニングのライ   に比べると遅い
       ブラリが充実               半構造化データの扱いに弱い
 R
A data warehouse system for Hadoop
Hadoop 上で動作するオープンソースのデータウェ
アハウス
HiveQL という SQL like な言語で,Hadoop 上のデー
タを操作
  JOIN, OUTER JOIN
    データ結合処理が簡単,かつ高速に処理できる
  UNION ALL なども利用できる
便利な機能
  PARTITIONによる処理単位の分離
  テーブル操作などにJSON parser が利用できる
Hive 上の1つのテーブル内でデータの独立性をも
たせる
 Hive は基本的には全件処理
 処理すべきデータを PARTITION で区切れる

日単位でなど PARTITION に利用できる
構造が同じデータであれば,1つのテーブルで複
数のデータを扱える
 「ラベル」的な利用ができる
Hive上のあるテーブルに1年分のデータが
 格納
   PARTITION なし



                    1年分のデータを処理


日ごとの PARTITION あり



                    対象の日付けのみを処理
複数 Event のデータの同居できる


                       Event A のみを処理



日,Event で PARTITION




                      Event B のある日のみを処理
JSONの連想配列
                 {“user”:”A”, “post_time”:”20120202000000”, “via”:”mobile”}
     Log         {“user”:”B”, “post_time”:”20120202000001”, “via”:”PC”}
                 {“user”:”C”, “post_time”:”20120202000002”, “via”:”Application”}




                 JSON文字列に対して SELECT
                  SELECT user, post_time, via
Hive Table        FROM table t
                   LATERAL VIEW json_tuple(t.json, ‘user’, ‘post_time’, ‘via’)
CREATE TABLE (     AS user, post_time, via;
  json STRING
);
JSONの連想配列
MySQL などの VIEW に相当する定義にも利用でき
        {“user”:”A”, “post_time”:”20120202000000”, “via”:”mobile”}
   Log  {“user”:”B”, “post_time”:”20120202000001”, “via”:”PC”}
る       {“user”:”C”, “post_time”:”20120202000002”, “via”:”Application”}




                  JSON文字列に対して SELECT
                   SELECT user, post_time, via
  Hive Table       FROM table t
                    LATERAL VIEW json_tuple(t.json, ‘user’, ‘post_time’, ‘via’)
 CREATE TABLE (     AS user, post_time, via;
   json STRING
 );
Hive 用 Perl フレームワーク
セスログ etc              Hadoop Cluster




           保存用ストレージ
ySQL DB               Hadoop Cluster
Honey の目的
             エンジニアの解析環境開発のコスト低減
セスログ etc                                Hadoop Cluster
          Honey の機能
             分散した解析データの Hive へのロードのインタ
           フェース
                        保存用ストレージ
             Hive による定期集計の記述の統一と簡略化
ySQL DB                               Hadoop Cluster
             User Event 用 Hive スキーマの自動生成
アプリエンジニアが解析したいデータを新規追加,
変更を加えたとき
 Hive のスキーマの変更
  スキーマ変更の確認や実行依頼などの手続き
 Hive へのデータの入れなおし
  解析業務の停滞

アプリエンジニアの解析環境メンテナンスからの解放ができない




アプリエンジニアが取りたいデータの追加・変更があったら,
        解析環境も連動して欲しい
JSON形式
           PARTITION を利用
CREATE TABLE log (                         ボイス投稿のログ
   JSON STRING
)
PARTITIONED BY (                           日記のコメントのログ
   dt STRING,
   event STRING        Event ごと
);
                                           フォトのイイネ!のログ




    User Event のすべてのログを1つのHiveテーブルで管
   理
    PARTITION で User Event の種類ごとに「区切る」
    各ログにどのような値が含まれるかは,YAMLで別定義
JSON parser 関数を利用
CREATE VIEW voice_create
AS
SELECT
   t.dt
   user, post_time, ….
FROM (
   SELECT s.dt, s.json FROM log s
   WHERE event = ‘diary.create'
)t
LATERAL VIEW json_tuple(s.json, ‘user’, ..)   日記コメントを扱うための VIEW
 AS user, post_time, …




       各 UserEvent の VIEW をYAMLファイルから自動生成
         Hiveテーブルへのデータの取り込みと VIEW の自動生成はcron で実
         行
インタフェースと実体を分離により,
  インタフェースを自由に変更             User Event Log




              Hive Table
 Hive VIEW

                      データ形式はJSONで統一
                     連想配列の内容は自由に変更
インタフェースと実体を分離により,
  インタフェースを自由に変更             User Event Log




 アプリエンジニアのHiveのスキーマ定義などからの解放

              Hive Table
 Hive VIEW

                      データ形式はJSONで統一
                     連想配列の内容は自由に変更
mixi における解析環境
 過去の解析環境の問題点
 Hadoop/Hive/Rを利用

Hive の機能紹介
 PARTITION
 JSON parser や正規表現
Hive 用フレームワーク Honey
 エンジニアの「たんぽぽなお仕事」からの解放
  PARTITION や JSON parser を利用することで,
  サービス側の変更と Hive を連動

More Related Content

What's hot

Tour of distributed systems 1 - ZooKeeper
Tour of distributed systems 1 - ZooKeeperTour of distributed systems 1 - ZooKeeper
Tour of distributed systems 1 - ZooKeeperChris Birchall
 
20100930 sig startups
20100930 sig startups20100930 sig startups
20100930 sig startupsIchiro Fukuda
 
Sql server 2019 ざっくり紹介
Sql server 2019  ざっくり紹介Sql server 2019  ざっくり紹介
Sql server 2019 ざっくり紹介Oda Shinsuke
 
YCSB JSONB 対応版 を作ってMongoDB と 比較してみた
YCSB JSONB 対応版 を作ってMongoDB と 比較してみたYCSB JSONB 対応版 を作ってMongoDB と 比較してみた
YCSB JSONB 対応版 を作ってMongoDB と 比較してみたToshi Harada
 
データベース入門
データベース入門データベース入門
データベース入門拓 小林
 
MapReduceプログラミング入門
MapReduceプログラミング入門MapReduceプログラミング入門
MapReduceプログラミング入門Satoshi Noto
 
Tuning maniax 2014 Hadoop編
Tuning maniax 2014 Hadoop編Tuning maniax 2014 Hadoop編
Tuning maniax 2014 Hadoop編ThinkIT_impress
 
20091030cakephphandson 02
20091030cakephphandson 0220091030cakephphandson 02
20091030cakephphandson 02Yusuke Ando
 
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]Hideo Takagi
 
Dat009 クラウドでビック
Dat009 クラウドでビックDat009 クラウドでビック
Dat009 クラウドでビックTech Summit 2016
 
[9.5新機能]追加されたgroupbyの使い方
[9.5新機能]追加されたgroupbyの使い方[9.5新機能]追加されたgroupbyの使い方
[9.5新機能]追加されたgroupbyの使い方Kosuke Kida
 
データベース入門2
データベース入門2データベース入門2
データベース入門2tadaaki hayashi
 
おもにEXcelだけで出来る自動化技術
おもにEXcelだけで出来る自動化技術おもにEXcelだけで出来る自動化技術
おもにEXcelだけで出来る自動化技術Takanobu Mizuta
 
[DI08] その情報うまく取り出せていますか? ~ 意外と簡単、Azure Search で短時間で検索精度と利便性を向上させるための方法
[DI08] その情報うまく取り出せていますか? ~ 意外と簡単、Azure Search で短時間で検索精度と利便性を向上させるための方法[DI08] その情報うまく取り出せていますか? ~ 意外と簡単、Azure Search で短時間で検索精度と利便性を向上させるための方法
[DI08] その情報うまく取り出せていますか? ~ 意外と簡単、Azure Search で短時間で検索精度と利便性を向上させるための方法de:code 2017
 
Dat009 クラウドでビック
Dat009 クラウドでビックDat009 クラウドでビック
Dat009 クラウドでビックTech Summit 2016
 
re:Growth athena
re:Growth athenare:Growth athena
re:Growth athena淳 千葉
 
データサイエンティスト必見!M-1グランプリ
データサイエンティスト必見!M-1グランプリデータサイエンティスト必見!M-1グランプリ
データサイエンティスト必見!M-1グランプリSatoshi Kitajima
 
オンラインゲームソリューション@トレジャーデータ
オンラインゲームソリューション@トレジャーデータオンラインゲームソリューション@トレジャーデータ
オンラインゲームソリューション@トレジャーデータTakahiro Inoue
 

What's hot (18)

Tour of distributed systems 1 - ZooKeeper
Tour of distributed systems 1 - ZooKeeperTour of distributed systems 1 - ZooKeeper
Tour of distributed systems 1 - ZooKeeper
 
20100930 sig startups
20100930 sig startups20100930 sig startups
20100930 sig startups
 
Sql server 2019 ざっくり紹介
Sql server 2019  ざっくり紹介Sql server 2019  ざっくり紹介
Sql server 2019 ざっくり紹介
 
YCSB JSONB 対応版 を作ってMongoDB と 比較してみた
YCSB JSONB 対応版 を作ってMongoDB と 比較してみたYCSB JSONB 対応版 を作ってMongoDB と 比較してみた
YCSB JSONB 対応版 を作ってMongoDB と 比較してみた
 
データベース入門
データベース入門データベース入門
データベース入門
 
MapReduceプログラミング入門
MapReduceプログラミング入門MapReduceプログラミング入門
MapReduceプログラミング入門
 
Tuning maniax 2014 Hadoop編
Tuning maniax 2014 Hadoop編Tuning maniax 2014 Hadoop編
Tuning maniax 2014 Hadoop編
 
20091030cakephphandson 02
20091030cakephphandson 0220091030cakephphandson 02
20091030cakephphandson 02
 
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
 
Dat009 クラウドでビック
Dat009 クラウドでビックDat009 クラウドでビック
Dat009 クラウドでビック
 
[9.5新機能]追加されたgroupbyの使い方
[9.5新機能]追加されたgroupbyの使い方[9.5新機能]追加されたgroupbyの使い方
[9.5新機能]追加されたgroupbyの使い方
 
データベース入門2
データベース入門2データベース入門2
データベース入門2
 
おもにEXcelだけで出来る自動化技術
おもにEXcelだけで出来る自動化技術おもにEXcelだけで出来る自動化技術
おもにEXcelだけで出来る自動化技術
 
[DI08] その情報うまく取り出せていますか? ~ 意外と簡単、Azure Search で短時間で検索精度と利便性を向上させるための方法
[DI08] その情報うまく取り出せていますか? ~ 意外と簡単、Azure Search で短時間で検索精度と利便性を向上させるための方法[DI08] その情報うまく取り出せていますか? ~ 意外と簡単、Azure Search で短時間で検索精度と利便性を向上させるための方法
[DI08] その情報うまく取り出せていますか? ~ 意外と簡単、Azure Search で短時間で検索精度と利便性を向上させるための方法
 
Dat009 クラウドでビック
Dat009 クラウドでビックDat009 クラウドでビック
Dat009 クラウドでビック
 
re:Growth athena
re:Growth athenare:Growth athena
re:Growth athena
 
データサイエンティスト必見!M-1グランプリ
データサイエンティスト必見!M-1グランプリデータサイエンティスト必見!M-1グランプリ
データサイエンティスト必見!M-1グランプリ
 
オンラインゲームソリューション@トレジャーデータ
オンラインゲームソリューション@トレジャーデータオンラインゲームソリューション@トレジャーデータ
オンラインゲームソリューション@トレジャーデータ
 

Viewers also liked

Diaporama soulution format pps
Diaporama soulution format ppsDiaporama soulution format pps
Diaporama soulution format ppsrinasorciere
 
Workshop leiderschap mijnbedrijf
Workshop leiderschap mijnbedrijfWorkshop leiderschap mijnbedrijf
Workshop leiderschap mijnbedrijfcommunicum
 
2014 09-12 lambda-architecture-at-indix
2014 09-12 lambda-architecture-at-indix2014 09-12 lambda-architecture-at-indix
2014 09-12 lambda-architecture-at-indixYu Ishikawa
 
Chile: Remuneración docente municipal 2016
Chile: Remuneración docente municipal  2016Chile: Remuneración docente municipal  2016
Chile: Remuneración docente municipal 2016ELINDUSTRIAL
 
2016-06-15 Sparkの機械学習の開発と活用の動向
2016-06-15 Sparkの機械学習の開発と活用の動向2016-06-15 Sparkの機械学習の開発と活用の動向
2016-06-15 Sparkの機械学習の開発と活用の動向Yu Ishikawa
 
2016-02-08 Spark MLlib Now and Beyond@Spark Conference Japan 2016
2016-02-08 Spark MLlib Now and Beyond@Spark Conference Japan 20162016-02-08 Spark MLlib Now and Beyond@Spark Conference Japan 2016
2016-02-08 Spark MLlib Now and Beyond@Spark Conference Japan 2016Yu Ishikawa
 

Viewers also liked (9)

Presentation1
Presentation1Presentation1
Presentation1
 
Diaporama soulution format pps
Diaporama soulution format ppsDiaporama soulution format pps
Diaporama soulution format pps
 
Geography of china
Geography of chinaGeography of china
Geography of china
 
Workshop leiderschap mijnbedrijf
Workshop leiderschap mijnbedrijfWorkshop leiderschap mijnbedrijf
Workshop leiderschap mijnbedrijf
 
Catalogo
CatalogoCatalogo
Catalogo
 
2014 09-12 lambda-architecture-at-indix
2014 09-12 lambda-architecture-at-indix2014 09-12 lambda-architecture-at-indix
2014 09-12 lambda-architecture-at-indix
 
Chile: Remuneración docente municipal 2016
Chile: Remuneración docente municipal  2016Chile: Remuneración docente municipal  2016
Chile: Remuneración docente municipal 2016
 
2016-06-15 Sparkの機械学習の開発と活用の動向
2016-06-15 Sparkの機械学習の開発と活用の動向2016-06-15 Sparkの機械学習の開発と活用の動向
2016-06-15 Sparkの機械学習の開発と活用の動向
 
2016-02-08 Spark MLlib Now and Beyond@Spark Conference Japan 2016
2016-02-08 Spark MLlib Now and Beyond@Spark Conference Japan 20162016-02-08 Spark MLlib Now and Beyond@Spark Conference Japan 2016
2016-02-08 Spark MLlib Now and Beyond@Spark Conference Japan 2016
 

Similar to 2012 02-02 mixi engineer's seminor #3

スマートニュースの世界展開を支えるログ解析基盤
スマートニュースの世界展開を支えるログ解析基盤スマートニュースの世界展開を支えるログ解析基盤
スマートニュースの世界展開を支えるログ解析基盤Takumi Sakamoto
 
Hadoopの紹介
Hadoopの紹介Hadoopの紹介
Hadoopの紹介bigt23
 
ビジネスインテリジェンス入門~OSSでBIを始めよう~
ビジネスインテリジェンス入門~OSSでBIを始めよう~ビジネスインテリジェンス入門~OSSでBIを始めよう~
ビジネスインテリジェンス入門~OSSでBIを始めよう~Kensuke SAEKI
 
[DI07] あらゆるデータに価値がある! アンチ断捨離ストのための Azure Data Lake
[DI07] あらゆるデータに価値がある! アンチ断捨離ストのための Azure Data Lake[DI07] あらゆるデータに価値がある! アンチ断捨離ストのための Azure Data Lake
[DI07] あらゆるデータに価値がある! アンチ断捨離ストのための Azure Data Lakede:code 2017
 
中規模Androidアプリ開発の過程に生じた問題と対策の紹介
中規模Androidアプリ開発の過程に生じた問題と対策の紹介中規模Androidアプリ開発の過程に生じた問題と対策の紹介
中規模Androidアプリ開発の過程に生じた問題と対策の紹介NilOne Ltd.
 
TokyoWebminig カジュアルなHadoop
TokyoWebminig カジュアルなHadoopTokyoWebminig カジュアルなHadoop
TokyoWebminig カジュアルなHadoopTeruo Kawasaki
 
20180630 data transformationusinglogicflow
20180630 data transformationusinglogicflow20180630 data transformationusinglogicflow
20180630 data transformationusinglogicflowTomoyuki Obi
 
[db tech showcase Tokyo 2017] A15: レプリケーションを使用したデータ分析基盤構築のキモ(事例)by 株式会社インサイトテ...
[db tech showcase Tokyo 2017] A15: レプリケーションを使用したデータ分析基盤構築のキモ(事例)by 株式会社インサイトテ...[db tech showcase Tokyo 2017] A15: レプリケーションを使用したデータ分析基盤構築のキモ(事例)by 株式会社インサイトテ...
[db tech showcase Tokyo 2017] A15: レプリケーションを使用したデータ分析基盤構築のキモ(事例)by 株式会社インサイトテ...Insight Technology, Inc.
 
HTML5でオフラインWebアプリケーションを作ろう
HTML5でオフラインWebアプリケーションを作ろうHTML5でオフラインWebアプリケーションを作ろう
HTML5でオフラインWebアプリケーションを作ろうyoshikawa_t
 
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [実践編]
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [実践編]【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [実践編]
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [実践編]Hideo Takagi
 
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略takezoe
 
[db tech showcase Tokyo 2014] C25: Facebookが採用した世界最大級の分析基盤とは? by 日本ヒューレット・パッ...
[db tech showcase Tokyo 2014] C25: Facebookが採用した世界最大級の分析基盤とは?  by 日本ヒューレット・パッ...[db tech showcase Tokyo 2014] C25: Facebookが採用した世界最大級の分析基盤とは?  by 日本ヒューレット・パッ...
[db tech showcase Tokyo 2014] C25: Facebookが採用した世界最大級の分析基盤とは? by 日本ヒューレット・パッ...Insight Technology, Inc.
 
Developers.IO 2019 Effective Datalake
Developers.IO 2019 Effective DatalakeDevelopers.IO 2019 Effective Datalake
Developers.IO 2019 Effective DatalakeSatoru Ishikawa
 

Similar to 2012 02-02 mixi engineer's seminor #3 (20)

スマートニュースの世界展開を支えるログ解析基盤
スマートニュースの世界展開を支えるログ解析基盤スマートニュースの世界展開を支えるログ解析基盤
スマートニュースの世界展開を支えるログ解析基盤
 
Azure Datalake 大全
Azure Datalake 大全Azure Datalake 大全
Azure Datalake 大全
 
Hadoopの紹介
Hadoopの紹介Hadoopの紹介
Hadoopの紹介
 
ビジネスインテリジェンス入門~OSSでBIを始めよう~
ビジネスインテリジェンス入門~OSSでBIを始めよう~ビジネスインテリジェンス入門~OSSでBIを始めよう~
ビジネスインテリジェンス入門~OSSでBIを始めよう~
 
[DI07] あらゆるデータに価値がある! アンチ断捨離ストのための Azure Data Lake
[DI07] あらゆるデータに価値がある! アンチ断捨離ストのための Azure Data Lake[DI07] あらゆるデータに価値がある! アンチ断捨離ストのための Azure Data Lake
[DI07] あらゆるデータに価値がある! アンチ断捨離ストのための Azure Data Lake
 
PHP on Cloud
PHP on CloudPHP on Cloud
PHP on Cloud
 
中規模Androidアプリ開発の過程に生じた問題と対策の紹介
中規模Androidアプリ開発の過程に生じた問題と対策の紹介中規模Androidアプリ開発の過程に生じた問題と対策の紹介
中規模Androidアプリ開発の過程に生じた問題と対策の紹介
 
AI・HPC・ビッグデータで利用される分散ファイルシステムを知る
AI・HPC・ビッグデータで利用される分散ファイルシステムを知るAI・HPC・ビッグデータで利用される分散ファイルシステムを知る
AI・HPC・ビッグデータで利用される分散ファイルシステムを知る
 
TokyoWebminig カジュアルなHadoop
TokyoWebminig カジュアルなHadoopTokyoWebminig カジュアルなHadoop
TokyoWebminig カジュアルなHadoop
 
20180630 data transformationusinglogicflow
20180630 data transformationusinglogicflow20180630 data transformationusinglogicflow
20180630 data transformationusinglogicflow
 
[db tech showcase Tokyo 2017] A15: レプリケーションを使用したデータ分析基盤構築のキモ(事例)by 株式会社インサイトテ...
[db tech showcase Tokyo 2017] A15: レプリケーションを使用したデータ分析基盤構築のキモ(事例)by 株式会社インサイトテ...[db tech showcase Tokyo 2017] A15: レプリケーションを使用したデータ分析基盤構築のキモ(事例)by 株式会社インサイトテ...
[db tech showcase Tokyo 2017] A15: レプリケーションを使用したデータ分析基盤構築のキモ(事例)by 株式会社インサイトテ...
 
HTML5でオフラインWebアプリケーションを作ろう
HTML5でオフラインWebアプリケーションを作ろうHTML5でオフラインWebアプリケーションを作ろう
HTML5でオフラインWebアプリケーションを作ろう
 
Apache Hive 紹介
Apache Hive 紹介Apache Hive 紹介
Apache Hive 紹介
 
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [実践編]
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [実践編]【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [実践編]
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [実践編]
 
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略
 
Ext.direct
Ext.directExt.direct
Ext.direct
 
Azure DataLake 大全
Azure DataLake 大全Azure DataLake 大全
Azure DataLake 大全
 
[db tech showcase Tokyo 2014] C25: Facebookが採用した世界最大級の分析基盤とは? by 日本ヒューレット・パッ...
[db tech showcase Tokyo 2014] C25: Facebookが採用した世界最大級の分析基盤とは?  by 日本ヒューレット・パッ...[db tech showcase Tokyo 2014] C25: Facebookが採用した世界最大級の分析基盤とは?  by 日本ヒューレット・パッ...
[db tech showcase Tokyo 2014] C25: Facebookが採用した世界最大級の分析基盤とは? by 日本ヒューレット・パッ...
 
Developers.IO 2019 Effective Datalake
Developers.IO 2019 Effective DatalakeDevelopers.IO 2019 Effective Datalake
Developers.IO 2019 Effective Datalake
 
Nginx
NginxNginx
Nginx
 

More from Yu Ishikawa

Introduction to Polyaxon
Introduction to PolyaxonIntroduction to Polyaxon
Introduction to PolyaxonYu Ishikawa
 
2017 09-27 democratize data products with SQL
2017 09-27 democratize data products with SQL2017 09-27 democratize data products with SQL
2017 09-27 democratize data products with SQLYu Ishikawa
 
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群Yu Ishikawa
 
「チーム開発実践入門」勉強会
「チーム開発実践入門」勉強会「チーム開発実践入門」勉強会
「チーム開発実践入門」勉強会Yu Ishikawa
 
BdasとSpark概要
BdasとSpark概要BdasとSpark概要
BdasとSpark概要Yu Ishikawa
 
Hadoop conference 2013winter_for_slideshare
Hadoop conference 2013winter_for_slideshareHadoop conference 2013winter_for_slideshare
Hadoop conference 2013winter_for_slideshareYu Ishikawa
 

More from Yu Ishikawa (6)

Introduction to Polyaxon
Introduction to PolyaxonIntroduction to Polyaxon
Introduction to Polyaxon
 
2017 09-27 democratize data products with SQL
2017 09-27 democratize data products with SQL2017 09-27 democratize data products with SQL
2017 09-27 democratize data products with SQL
 
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
 
「チーム開発実践入門」勉強会
「チーム開発実践入門」勉強会「チーム開発実践入門」勉強会
「チーム開発実践入門」勉強会
 
BdasとSpark概要
BdasとSpark概要BdasとSpark概要
BdasとSpark概要
 
Hadoop conference 2013winter_for_slideshare
Hadoop conference 2013winter_for_slideshareHadoop conference 2013winter_for_slideshare
Hadoop conference 2013winter_for_slideshare
 

Recently uploaded

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 

Recently uploaded (11)

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 

2012 02-02 mixi engineer's seminor #3

  • 2. 所属 たんぽぽグループ 解析チーム “「刺身の上にタンポポをのせる仕事」 のような単純 作業の仕事から社内開発者を解放しよう、という ミッションの元、たんぽぽグループは技術をベース とした様々な仕事や課題解決に携わります。” 担当業務 解析プラットフォームの構築 統計解析・データマイニング 解析などの相談・教育
  • 3.
  • 4.
  • 5.
  • 6. Perl のみでは大規模データ処理が大変 データの結合などの処理時間,メモリ使用量が膨大 trial & error が多い解析にレビューが向かない 1つの解析をするのに何営業日も掛かっていた 解析データの分散 解析したいデータの把握 データ操作のライブラリの使い方の学習コスト 解析データの再利用性の欠如 共通して使えたり,使い回しのできるデータが多かっ た アプリエンジニアが解析環境のメンテナンス 各サービスの解析が属人性を持ってしまう
  • 7.
  • 8. アプリエンジニアの解析環境メンテナンスからの解放 サービス開発者は,サービス開発に集中してもらいたい 解析に関するレビューからの解放 コードレビューやDBレビューの手続きコストを無くしたい アプリ側の実装と解析側の実装の統合 アプリエンジニアがなにか解析したいサービスを実装したら,自 動的に解析環境にも反映 アプリ側の環境と解析側の環境の分離 DBの負荷など気にせず自由に解析 データを用意するというコストの解放 データや解析の属人性の排除 解析の再現性の向上 処理時間の短縮
  • 10. Hadoop Hadoop mixi ページの管理者向けの解析 Hive 定期実行集計,スポット調査 DAUやデモグラ集計など 自社開発の Perl フレームワーク Honey R データマイニング 多変量解析,クラスタリング etc 統計的検定 A/B テスト の検定 etc
  • 11. アクセスログ etc Hadoop Cluster 保存用ストレージ MySQL DB Hadoop Cluster •定期実行集計 → Hive •カウント以上の解析 → R
  • 12. Strong Point Weak Point 大規模データが扱える バッチ処理向き 正規表現,JSONで扱える 「集計」以上のことが難しい SQL を知っている人の学習コスト Hive 処理は基本的にオンメモリで行うの 大規模データの扱いが難しい で,ロードさえ出来れば高速 データ結合もできるが,Hive 統計解析,データマイニングのライ に比べると遅い ブラリが充実 半構造化データの扱いに弱い R
  • 13. A data warehouse system for Hadoop
  • 14. Hadoop 上で動作するオープンソースのデータウェ アハウス HiveQL という SQL like な言語で,Hadoop 上のデー タを操作 JOIN, OUTER JOIN データ結合処理が簡単,かつ高速に処理できる UNION ALL なども利用できる 便利な機能 PARTITIONによる処理単位の分離 テーブル操作などにJSON parser が利用できる
  • 15. Hive 上の1つのテーブル内でデータの独立性をも たせる Hive は基本的には全件処理 処理すべきデータを PARTITION で区切れる 日単位でなど PARTITION に利用できる 構造が同じデータであれば,1つのテーブルで複 数のデータを扱える 「ラベル」的な利用ができる
  • 16. Hive上のあるテーブルに1年分のデータが 格納 PARTITION なし 1年分のデータを処理 日ごとの PARTITION あり 対象の日付けのみを処理
  • 17. 複数 Event のデータの同居できる Event A のみを処理 日,Event で PARTITION Event B のある日のみを処理
  • 18. JSONの連想配列 {“user”:”A”, “post_time”:”20120202000000”, “via”:”mobile”} Log {“user”:”B”, “post_time”:”20120202000001”, “via”:”PC”} {“user”:”C”, “post_time”:”20120202000002”, “via”:”Application”} JSON文字列に対して SELECT SELECT user, post_time, via Hive Table FROM table t LATERAL VIEW json_tuple(t.json, ‘user’, ‘post_time’, ‘via’) CREATE TABLE ( AS user, post_time, via; json STRING );
  • 19. JSONの連想配列 MySQL などの VIEW に相当する定義にも利用でき {“user”:”A”, “post_time”:”20120202000000”, “via”:”mobile”} Log {“user”:”B”, “post_time”:”20120202000001”, “via”:”PC”} る {“user”:”C”, “post_time”:”20120202000002”, “via”:”Application”} JSON文字列に対して SELECT SELECT user, post_time, via Hive Table FROM table t LATERAL VIEW json_tuple(t.json, ‘user’, ‘post_time’, ‘via’) CREATE TABLE ( AS user, post_time, via; json STRING );
  • 20.
  • 21. Hive 用 Perl フレームワーク
  • 22. セスログ etc Hadoop Cluster 保存用ストレージ ySQL DB Hadoop Cluster
  • 23. Honey の目的 エンジニアの解析環境開発のコスト低減 セスログ etc Hadoop Cluster Honey の機能 分散した解析データの Hive へのロードのインタ フェース 保存用ストレージ Hive による定期集計の記述の統一と簡略化 ySQL DB Hadoop Cluster User Event 用 Hive スキーマの自動生成
  • 24. アプリエンジニアが解析したいデータを新規追加, 変更を加えたとき Hive のスキーマの変更 スキーマ変更の確認や実行依頼などの手続き Hive へのデータの入れなおし 解析業務の停滞 アプリエンジニアの解析環境メンテナンスからの解放ができない アプリエンジニアが取りたいデータの追加・変更があったら, 解析環境も連動して欲しい
  • 25. JSON形式 PARTITION を利用 CREATE TABLE log ( ボイス投稿のログ JSON STRING ) PARTITIONED BY ( 日記のコメントのログ dt STRING, event STRING Event ごと ); フォトのイイネ!のログ User Event のすべてのログを1つのHiveテーブルで管 理 PARTITION で User Event の種類ごとに「区切る」 各ログにどのような値が含まれるかは,YAMLで別定義
  • 26. JSON parser 関数を利用 CREATE VIEW voice_create AS SELECT t.dt user, post_time, …. FROM ( SELECT s.dt, s.json FROM log s WHERE event = ‘diary.create' )t LATERAL VIEW json_tuple(s.json, ‘user’, ..) 日記コメントを扱うための VIEW AS user, post_time, … 各 UserEvent の VIEW をYAMLファイルから自動生成 Hiveテーブルへのデータの取り込みと VIEW の自動生成はcron で実 行
  • 27. インタフェースと実体を分離により, インタフェースを自由に変更 User Event Log Hive Table Hive VIEW データ形式はJSONで統一 連想配列の内容は自由に変更
  • 28. インタフェースと実体を分離により, インタフェースを自由に変更 User Event Log アプリエンジニアのHiveのスキーマ定義などからの解放 Hive Table Hive VIEW データ形式はJSONで統一 連想配列の内容は自由に変更
  • 29. mixi における解析環境 過去の解析環境の問題点 Hadoop/Hive/Rを利用 Hive の機能紹介 PARTITION JSON parser や正規表現 Hive 用フレームワーク Honey エンジニアの「たんぽぽなお仕事」からの解放 PARTITION や JSON parser を利用することで, サービス側の変更と Hive を連動