SlideShare a Scribd company logo
社会ネットワーク分析勉強会 その7
               三上 悟 = @saicologic




12年9月20日木曜日
現実のグラフデータ


              現実のデータはメモリーの中に格納できない

              例えば
              接続されている1000ノードのグラフ
              属性の部分を無視しても100MBのメモリを使う




12年9月20日木曜日
現実のグラフデータ

              Twitterで取得できるサンプルストリーム
              1日に1200万ツイート

              平均的なツイート= 1KB
              1ノード1ツイートとして
              1,200万 × 1KB = 1.2GBくらい




12年9月20日木曜日
現実のグラフデータ




12年9月20日木曜日
記憶域    容量     計算機      頂点数



      小規模データ メモリー      数GB     1台     数千∼数万



               メモリー/
      中規模データ           数TB   1台∼数台 数百万∼数千万
               ディスク



      大規模データ ディスク      数PB   数台∼数万台    億∼兆




12年9月20日木曜日
スモールデータ
              EdgeList(*.edge)

              .net(*.net)

              GML(*.gml)

              GraphML(*.graphml)

              その他のXMLフォーマット(*.xml)

              hファイル(*.h)


12年9月20日木曜日
拡張子        形式


              EdgeList    .edges    TEXT


                .net       .net     TEXT


               GML         .gml     XML


              GraphML    .graphml   XML


                 h          .h      バイナリ


12年9月20日木曜日
中規模データ


              ディスクに格納するサイズのデータのこと

              主にRDBMSやNoSQLなどのデータベース製品を使う




12年9月20日木曜日
スキーマ




12年9月20日木曜日
カーソル

              テーブルを探索するためのデータベースオブジェクト

              直接データを取得するのではなく、ポインタ情報のみ
              を渡す。これをリザルトセットと呼ぶ

              必要なときにポインタ情報から実際のデータを取得す
              る。



12年9月20日木曜日
トランザクション

              ノードの追加や削除などの一連の処理の一体として実
              行を保証する仕組みのこと

              操作途中にエラーが起きればロールバックして、処理
              をなかったことにすることができる。

              一連の操作が完了し、コミット命令を発行したときに
              初めてディスクにデータが書き込まれる。


12年9月20日木曜日
名前

              一意にグラフが識別できる名前をつけよう

              名前を一度Base64でエンコードして格納(おすすめはし
              ない)
              base64.encodestring(name).replace('n', '')

              pythonのuuid()を使うと良い思います。



12年9月20日木曜日
属性


              ノードはオブジェクト

              エッジはオブジェクトの辞書

              オブジェクトの属性はJSONにシリアライズして格納




12年9月20日木曜日
クラス
          SqlGraph

              add_node(node, attr_dict, cursor)
              add_edge(fromnode, tonode, attr_dict, cursor)
              removed_node(node, cursor)
              remove_edge(fromnode, tonode, cursor)
              get_node_data(node, cursor)
              get_edge_data(fromnode, tonode, cursor)
              from_nx(G)
              to_nx


12年9月20日木曜日
関数とデコレータ
              Decoratorパターン

              関数定義の直前に@関数名を指定することで、その関
              数を別の関数でラップすることができる。主な用途と
              して、データベースの接続処理(cursored) 1.カーソルの
              取得(@cursored)
              2. クエリーの実行(add_edge関数など)
              3.カーソルの終了(@cursored)


12年9月20日木曜日
関数とデコレータ
       @cursored
       def add_node(self, node, attr_dict=None, cursor=None):


        1.カーソルの取得(@cursored)
        2. クエリーの実行(add_edge関数など)
        3. コミット or ロールバック(@cursord)
        4.カーソルの終了(@cursored)




12年9月20日木曜日
アダプタ
              NetworkXを操作するためのアダプタ関数を
              用意しましょう。

              from_nx(G)

              to_nx(G)




12年9月20日木曜日
2モードデータの操作

              自己相関結合(self-join)を用いて2モードネットワーク
              を表現することができる。自己相関結合とは、同じ
              テーブル(edges)を別名で2つ定義し同じテーブル同士
              を結合すること。

              edges.to_nodeとedges.from_nodeにインデックスを貼ると
              より高速になります。


12年9月20日木曜日
ソーシャルデータのビックデータ

              バズワード
              ビックデータ
              クラウドコンピューティング
              =>
              人間の行動パターンの巨大な収集メカニズムに対応す
              るための存在
              例えば、Twitter内のメッセージのトレンドが知りたい


12年9月20日木曜日
NoSQL
                      OSS    DB種別    ライセンス元       言語

         BigTable      x      列       Google

          HBase        o      列         ASF       JAVA

        MongoDB        o    ドキュメント     10gen      C++

        CouchDB        o    ドキュメント      ASF       Erlang

                                        Neo
              Neo4j    o     グラフ                  JAVA
                                     Technology


12年9月20日木曜日
関係データベース

              Oracle, DB2, Sybase, MySQL, PostgreSQL etc..

              データをテーブルの構造で管理され、複数のデータ郡
              を関係の構造で連結した構造のデータベース
              関係代数演算、関係論理演算をして結果を取り出す。
              行単位で操作する。
              OLTP(On-Line Transaction Processing)



12年9月20日木曜日
列指向データベース

              BigTable, HBase

              列のデータをひとまとめにして効率的に扱えるように
              設計されたデータベース。大量の集計処理に向いてい
              る
              OLAP(OnLine Analytical Processing)向き




12年9月20日木曜日
ドキュメントデータベース


              MongoDB, CouchDB etc..

              オブジェクトデータをひとまとめに格納したデータ
              ベース。主にJSONを主なフォーマットとして格納
              階層的な構造のデータに向いている。




12年9月20日木曜日
グラフデータベース

              Neo4j, OrientDB, Titan etc..

              グラフ(点と頂点)構造を格納するの適した設計の
              データベース。
              2ホップ(友達の友達)以上のデータ探索が得意。
              集合演算が苦手




12年9月20日木曜日
実際のデータ構造

              Tweetのデータ構造はJSONで取得できる。

              RDBMSはスキーマを強制する。

              NoSQLはデータ構造に非常に寛大である。
              JSON, CSV, XMLなど構造化されたテキストが操作しや
              すいように設計されている。



12年9月20日木曜日
実際のデータ構造
     RDBMS

     1. データ構造を学び、それに合うスキーマを設計する。
     2. ストリームを読み込む。すべてのレコードについて、次のことを行う。
        1. レコードをパースする。
        2. レコードのフィールドをINSERTクエリーに変換する。
        3. クエリーを実行し、一意制約違反を処理する。
        4. オプションでほかの表をアップデートする。

     NoSQLデータベース
     1. ストリームを読む。
     2. ファイルにレコードを書き込む。

12年9月20日木曜日
RDBMSよりNoSQLの良いところ


              スキーマレスなのであとで最初の設計に縛られない
              データ構造。複雑なデータ構造に対応。柔軟性があ
              る。

              水平分割しやすいので、スケールしやすい

              (トランザクションの考えが異なるので、良い面ばか
              りでもない。詳しくはBASE, CAP定理を参照)


12年9月20日木曜日
実際のビックデータ

              分散コンピューティング

              複数の計算ノードから構成
              個々のノードは操作対象の一部の計算を受け取り計算
              結果を返す。
              計算結果を結合して、次の計算を行う。



12年9月20日木曜日
Amazon S3
              S3(Simple Storage Service)

              オブジェクトストア
              オブジェクトは巨大なディスク、イメージファイル
              や、一部の計算ファイル、ソースコードなどなんにで
              も見れる。

              HTTPを介してアクセス
              HDFSとしても利用できる。

12年9月20日木曜日
Apache Hadoop


              分散ストレージ、分散処理の基礎を提供するJAVAソフ
              トウェフレームワーク

              HDFS(分散ファイルシステム)の上に、Map/Reduce計
              算フレームワークを用いて大規模計算を行う




12年9月20日木曜日
Map Reduce

              Googleが開発

              MapステップとReduceステップで構成された計算フ
              レームワーク
              関数型プログラミングのMap/Reduceに似ている。
              主に、Hadoopがサポートしている。最近ではMongoDB,
              Riak, CoucbDBも


12年9月20日木曜日
Apache Hive

              Apache Hiveはデータの集計、クエリ、および分析を提
              供するため、Hadoopの上に構築されたデータ·ウェア
              ハウス·インフラストラクチャ。
              SQL Likeの言語でデータを取り出すことができる。
              同じソフトウェアにPigがある。
              2モードグラフも簡単に書ける。なによりもRDBMSに
              収まり切らない、遥かに巨大に対しても計算できる。


12年9月20日木曜日
SQLは依然として我らが友


              分散NoSQLデータベースは重量級

              計算結果をRDBMSにおいて、それをSQLで取得するの
              がお手軽。




12年9月20日木曜日

More Related Content

What's hot

DataStax Enterpriseによる大規模グラフ解析
DataStax Enterpriseによる大規模グラフ解析DataStax Enterpriseによる大規模グラフ解析
DataStax Enterpriseによる大規模グラフ解析
Yuki Morishita
 
分散KVSのデータモデリング
分散KVSのデータモデリング分散KVSのデータモデリング
分散KVSのデータモデリングTatsunori Matoba
 
並列データベースシステムの概念と原理
並列データベースシステムの概念と原理並列データベースシステムの概念と原理
並列データベースシステムの概念と原理
Makoto Yui
 
OSC2012 OSC.DB Hadoop
OSC2012 OSC.DB HadoopOSC2012 OSC.DB Hadoop
OSC2012 OSC.DB Hadoop
Shinichi YAMASHITA
 
データベースシステム論12 - 問い合わせ処理と最適化
データベースシステム論12 - 問い合わせ処理と最適化データベースシステム論12 - 問い合わせ処理と最適化
データベースシステム論12 - 問い合わせ処理と最適化
Shohei Yokoyama
 
[db tech showcase Tokyo 2017] B35: 地図用データを高速処理!オープンソースGPUデータベースMapDの魅力に迫る!!by...
[db tech showcase Tokyo 2017] B35: 地図用データを高速処理!オープンソースGPUデータベースMapDの魅力に迫る!!by...[db tech showcase Tokyo 2017] B35: 地図用データを高速処理!オープンソースGPUデータベースMapDの魅力に迫る!!by...
[db tech showcase Tokyo 2017] B35: 地図用データを高速処理!オープンソースGPUデータベースMapDの魅力に迫る!!by...
Insight Technology, Inc.
 
Cassandraのトランザクションサポート化 & web2pyによるcms用プラグイン開発
Cassandraのトランザクションサポート化 & web2pyによるcms用プラグイン開発Cassandraのトランザクションサポート化 & web2pyによるcms用プラグイン開発
Cassandraのトランザクションサポート化 & web2pyによるcms用プラグイン開発
kishimotosc
 
Dat009 クラウドでビック
Dat009 クラウドでビックDat009 クラウドでビック
Dat009 クラウドでビック
Tech Summit 2016
 
Apache tinkerpopとグラフデータベースの世界
Apache tinkerpopとグラフデータベースの世界Apache tinkerpopとグラフデータベースの世界
Apache tinkerpopとグラフデータベースの世界
Yuki Morishita
 
Hadoop - OSC2010 Tokyo/Spring
Hadoop - OSC2010 Tokyo/SpringHadoop - OSC2010 Tokyo/Spring
Hadoop - OSC2010 Tokyo/Spring
Shinichi YAMASHITA
 

What's hot (11)

DataStax Enterpriseによる大規模グラフ解析
DataStax Enterpriseによる大規模グラフ解析DataStax Enterpriseによる大規模グラフ解析
DataStax Enterpriseによる大規模グラフ解析
 
分散KVSのデータモデリング
分散KVSのデータモデリング分散KVSのデータモデリング
分散KVSのデータモデリング
 
並列データベースシステムの概念と原理
並列データベースシステムの概念と原理並列データベースシステムの概念と原理
並列データベースシステムの概念と原理
 
Hadoop
HadoopHadoop
Hadoop
 
OSC2012 OSC.DB Hadoop
OSC2012 OSC.DB HadoopOSC2012 OSC.DB Hadoop
OSC2012 OSC.DB Hadoop
 
データベースシステム論12 - 問い合わせ処理と最適化
データベースシステム論12 - 問い合わせ処理と最適化データベースシステム論12 - 問い合わせ処理と最適化
データベースシステム論12 - 問い合わせ処理と最適化
 
[db tech showcase Tokyo 2017] B35: 地図用データを高速処理!オープンソースGPUデータベースMapDの魅力に迫る!!by...
[db tech showcase Tokyo 2017] B35: 地図用データを高速処理!オープンソースGPUデータベースMapDの魅力に迫る!!by...[db tech showcase Tokyo 2017] B35: 地図用データを高速処理!オープンソースGPUデータベースMapDの魅力に迫る!!by...
[db tech showcase Tokyo 2017] B35: 地図用データを高速処理!オープンソースGPUデータベースMapDの魅力に迫る!!by...
 
Cassandraのトランザクションサポート化 & web2pyによるcms用プラグイン開発
Cassandraのトランザクションサポート化 & web2pyによるcms用プラグイン開発Cassandraのトランザクションサポート化 & web2pyによるcms用プラグイン開発
Cassandraのトランザクションサポート化 & web2pyによるcms用プラグイン開発
 
Dat009 クラウドでビック
Dat009 クラウドでビックDat009 クラウドでビック
Dat009 クラウドでビック
 
Apache tinkerpopとグラフデータベースの世界
Apache tinkerpopとグラフデータベースの世界Apache tinkerpopとグラフデータベースの世界
Apache tinkerpopとグラフデータベースの世界
 
Hadoop - OSC2010 Tokyo/Spring
Hadoop - OSC2010 Tokyo/SpringHadoop - OSC2010 Tokyo/Spring
Hadoop - OSC2010 Tokyo/Spring
 

Viewers also liked

Sna book chapter_5
Sna book chapter_5Sna book chapter_5
Sna book chapter_5
Kenji Koshikawa
 
『オープンソースで学ぶ社会ネットワーク分析』1章 イントロダクション
『オープンソースで学ぶ社会ネットワーク分析』1章 イントロダクション『オープンソースで学ぶ社会ネットワーク分析』1章 イントロダクション
『オープンソースで学ぶ社会ネットワーク分析』1章 イントロダクションHisao Soyama
 
2章グラフ理論スピード入門
2章グラフ理論スピード入門2章グラフ理論スピード入門
2章グラフ理論スピード入門
Teruo Kawasaki
 
社会ネットワーク勉強会第3回発表
社会ネットワーク勉強会第3回発表社会ネットワーク勉強会第3回発表
社会ネットワーク勉強会第3回発表
shigex Kondou
 
Social network analysis for startups ch6
Social network analysis for startups ch6Social network analysis for startups ch6
Social network analysis for startups ch6
Hiroko Onari
 
Pythonによるソーシャルデータ分析―わたしはこうやって修士号を取得しました―
Pythonによるソーシャルデータ分析―わたしはこうやって修士号を取得しました―Pythonによるソーシャルデータ分析―わたしはこうやって修士号を取得しました―
Pythonによるソーシャルデータ分析―わたしはこうやって修士号を取得しました―Hisao Soyama
 
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
Katsuhiro Morishita
 
バイラルメディアの可視化
バイラルメディアの可視化バイラルメディアの可視化
バイラルメディアの可視化
Satoru Mikami
 
Mongodb
MongodbMongodb
Mongodb
Satoru Mikami
 
複雑ネットワーク勉強会 二部グラフの基礎と応用 20120208
複雑ネットワーク勉強会  二部グラフの基礎と応用 20120208複雑ネットワーク勉強会  二部グラフの基礎と応用 20120208
複雑ネットワーク勉強会 二部グラフの基礎と応用 20120208Hiroko Onari
 
ゲームマップのためのグラフAPIの設計
ゲームマップのためのグラフAPIの設計ゲームマップのためのグラフAPIの設計
ゲームマップのためのグラフAPIの設計
隆行 神戸
 
2部グラフとソーシャルネットワーク
2部グラフとソーシャルネットワーク2部グラフとソーシャルネットワーク
2部グラフとソーシャルネットワーク
Hiroko Onari
 
非エンジニアに人工知能に 興味を持ってもらう話
非エンジニアに人工知能に興味を持ってもらう話非エンジニアに人工知能に興味を持ってもらう話
非エンジニアに人工知能に 興味を持ってもらう話
Satoru Mikami
 
Itエンジニアのための自然言語処理入門
Itエンジニアのための自然言語処理入門Itエンジニアのための自然言語処理入門
Itエンジニアのための自然言語処理入門
Satoru Mikami
 
大学生のTwitter利用に関する定量分析―利用目的とサービス設計の関係―
大学生のTwitter利用に関する定量分析―利用目的とサービス設計の関係―大学生のTwitter利用に関する定量分析―利用目的とサービス設計の関係―
大学生のTwitter利用に関する定量分析―利用目的とサービス設計の関係―Hisao Soyama
 
The Art of Social Media Analysis with Twitter & Python
The Art of Social Media Analysis with Twitter & PythonThe Art of Social Media Analysis with Twitter & Python
The Art of Social Media Analysis with Twitter & Python
Krishna Sankar
 
自然言語処理分野の最前線(ステアラボ人工知能シンポジウム2017)
自然言語処理分野の最前線(ステアラボ人工知能シンポジウム2017)自然言語処理分野の最前線(ステアラボ人工知能シンポジウム2017)
自然言語処理分野の最前線(ステアラボ人工知能シンポジウム2017)
STAIR Lab, Chiba Institute of Technology
 
R seminar on igraph
R seminar on igraphR seminar on igraph
R seminar on igraph
Kazuhiro Takemoto
 

Viewers also liked (20)

Sna book chapter_5
Sna book chapter_5Sna book chapter_5
Sna book chapter_5
 
『オープンソースで学ぶ社会ネットワーク分析』1章 イントロダクション
『オープンソースで学ぶ社会ネットワーク分析』1章 イントロダクション『オープンソースで学ぶ社会ネットワーク分析』1章 イントロダクション
『オープンソースで学ぶ社会ネットワーク分析』1章 イントロダクション
 
2章グラフ理論スピード入門
2章グラフ理論スピード入門2章グラフ理論スピード入門
2章グラフ理論スピード入門
 
Sna4
Sna4Sna4
Sna4
 
社会ネットワーク勉強会第3回発表
社会ネットワーク勉強会第3回発表社会ネットワーク勉強会第3回発表
社会ネットワーク勉強会第3回発表
 
Social network analysis for startups ch6
Social network analysis for startups ch6Social network analysis for startups ch6
Social network analysis for startups ch6
 
Atndapi
AtndapiAtndapi
Atndapi
 
Pythonによるソーシャルデータ分析―わたしはこうやって修士号を取得しました―
Pythonによるソーシャルデータ分析―わたしはこうやって修士号を取得しました―Pythonによるソーシャルデータ分析―わたしはこうやって修士号を取得しました―
Pythonによるソーシャルデータ分析―わたしはこうやって修士号を取得しました―
 
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
 
バイラルメディアの可視化
バイラルメディアの可視化バイラルメディアの可視化
バイラルメディアの可視化
 
Mongodb
MongodbMongodb
Mongodb
 
複雑ネットワーク勉強会 二部グラフの基礎と応用 20120208
複雑ネットワーク勉強会  二部グラフの基礎と応用 20120208複雑ネットワーク勉強会  二部グラフの基礎と応用 20120208
複雑ネットワーク勉強会 二部グラフの基礎と応用 20120208
 
ゲームマップのためのグラフAPIの設計
ゲームマップのためのグラフAPIの設計ゲームマップのためのグラフAPIの設計
ゲームマップのためのグラフAPIの設計
 
2部グラフとソーシャルネットワーク
2部グラフとソーシャルネットワーク2部グラフとソーシャルネットワーク
2部グラフとソーシャルネットワーク
 
非エンジニアに人工知能に 興味を持ってもらう話
非エンジニアに人工知能に興味を持ってもらう話非エンジニアに人工知能に興味を持ってもらう話
非エンジニアに人工知能に 興味を持ってもらう話
 
Itエンジニアのための自然言語処理入門
Itエンジニアのための自然言語処理入門Itエンジニアのための自然言語処理入門
Itエンジニアのための自然言語処理入門
 
大学生のTwitter利用に関する定量分析―利用目的とサービス設計の関係―
大学生のTwitter利用に関する定量分析―利用目的とサービス設計の関係―大学生のTwitter利用に関する定量分析―利用目的とサービス設計の関係―
大学生のTwitter利用に関する定量分析―利用目的とサービス設計の関係―
 
The Art of Social Media Analysis with Twitter & Python
The Art of Social Media Analysis with Twitter & PythonThe Art of Social Media Analysis with Twitter & Python
The Art of Social Media Analysis with Twitter & Python
 
自然言語処理分野の最前線(ステアラボ人工知能シンポジウム2017)
自然言語処理分野の最前線(ステアラボ人工知能シンポジウム2017)自然言語処理分野の最前線(ステアラボ人工知能シンポジウム2017)
自然言語処理分野の最前線(ステアラボ人工知能シンポジウム2017)
 
R seminar on igraph
R seminar on igraphR seminar on igraph
R seminar on igraph
 

Similar to 社会ネットワーク分析第7回

NoSQLとビックデータ入門編Update版
NoSQLとビックデータ入門編Update版NoSQLとビックデータ入門編Update版
NoSQLとビックデータ入門編Update版Koichiro Nishijima
 
RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成弘毅 露崎
 
MongoDB
MongoDBMongoDB
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDBmoai kids
 
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version -
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version - ビッグデータ処理データベースの全体像と使い分け - 2017年 Version -
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version -
Tetsutaro Watanabe
 
Hadoop / Elastic MapReduceつまみ食い
Hadoop / Elastic MapReduceつまみ食いHadoop / Elastic MapReduceつまみ食い
Hadoop / Elastic MapReduceつまみ食い
Ryuji Tamagawa
 
OSC2012 Tokyo/Spring - Hadoop入門
OSC2012 Tokyo/Spring - Hadoop入門OSC2012 Tokyo/Spring - Hadoop入門
OSC2012 Tokyo/Spring - Hadoop入門
Shinichi YAMASHITA
 
Azure Datalake 大全
Azure Datalake 大全Azure Datalake 大全
Azure Datalake 大全
Daiyu Hatakeyama
 
セプテーニさんでのセミナー
セプテーニさんでのセミナーセプテーニさんでのセミナー
セプテーニさんでのセミナー
Tokusei Noborio
 
Sinatraでwebアプリケーション開発を学ぶ
Sinatraでwebアプリケーション開発を学ぶSinatraでwebアプリケーション開発を学ぶ
Sinatraでwebアプリケーション開発を学ぶHiroshi Oyamada
 
[DI07] あらゆるデータに価値がある! アンチ断捨離ストのための Azure Data Lake
[DI07] あらゆるデータに価値がある! アンチ断捨離ストのための Azure Data Lake[DI07] あらゆるデータに価値がある! アンチ断捨離ストのための Azure Data Lake
[DI07] あらゆるデータに価値がある! アンチ断捨離ストのための Azure Data Lake
de:code 2017
 
Database sql
Database sqlDatabase sql
Database sql
明 高橋
 
読み出し性能と書き込み性能を選択可能なクラウドストレージ (DEIM2011-C3-3)
読み出し性能と書き込み性能を選択可能なクラウドストレージ (DEIM2011-C3-3)読み出し性能と書き込み性能を選択可能なクラウドストレージ (DEIM2011-C3-3)
読み出し性能と書き込み性能を選択可能なクラウドストレージ (DEIM2011-C3-3)
Shun Nakamura
 
AmebaのMongoDB活用事例
AmebaのMongoDB活用事例AmebaのMongoDB活用事例
AmebaのMongoDB活用事例Akihiro Kuwano
 
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
Koichiro Sasaki
 
SAP HANA One on AWS
SAP HANA One on AWSSAP HANA One on AWS
SAP HANA One on AWSsatoshi
 
Cassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sqlCassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sql
Yutuki r
 
AWS Black Belt - AWS Glue
AWS Black Belt - AWS GlueAWS Black Belt - AWS Glue
AWS Black Belt - AWS Glue
Amazon Web Services Japan
 

Similar to 社会ネットワーク分析第7回 (20)

NoSQLとビックデータ入門編Update版
NoSQLとビックデータ入門編Update版NoSQLとビックデータ入門編Update版
NoSQLとビックデータ入門編Update版
 
RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成
 
MongoDB
MongoDBMongoDB
MongoDB
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version -
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version - ビッグデータ処理データベースの全体像と使い分け - 2017年 Version -
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version -
 
Hadoop / Elastic MapReduceつまみ食い
Hadoop / Elastic MapReduceつまみ食いHadoop / Elastic MapReduceつまみ食い
Hadoop / Elastic MapReduceつまみ食い
 
OSC2012 Tokyo/Spring - Hadoop入門
OSC2012 Tokyo/Spring - Hadoop入門OSC2012 Tokyo/Spring - Hadoop入門
OSC2012 Tokyo/Spring - Hadoop入門
 
はやわかりHadoop
はやわかりHadoopはやわかりHadoop
はやわかりHadoop
 
Azure Datalake 大全
Azure Datalake 大全Azure Datalake 大全
Azure Datalake 大全
 
セプテーニさんでのセミナー
セプテーニさんでのセミナーセプテーニさんでのセミナー
セプテーニさんでのセミナー
 
Sinatraでwebアプリケーション開発を学ぶ
Sinatraでwebアプリケーション開発を学ぶSinatraでwebアプリケーション開発を学ぶ
Sinatraでwebアプリケーション開発を学ぶ
 
[DI07] あらゆるデータに価値がある! アンチ断捨離ストのための Azure Data Lake
[DI07] あらゆるデータに価値がある! アンチ断捨離ストのための Azure Data Lake[DI07] あらゆるデータに価値がある! アンチ断捨離ストのための Azure Data Lake
[DI07] あらゆるデータに価値がある! アンチ断捨離ストのための Azure Data Lake
 
Database sql
Database sqlDatabase sql
Database sql
 
読み出し性能と書き込み性能を選択可能なクラウドストレージ (DEIM2011-C3-3)
読み出し性能と書き込み性能を選択可能なクラウドストレージ (DEIM2011-C3-3)読み出し性能と書き込み性能を選択可能なクラウドストレージ (DEIM2011-C3-3)
読み出し性能と書き込み性能を選択可能なクラウドストレージ (DEIM2011-C3-3)
 
AmebaのMongoDB活用事例
AmebaのMongoDB活用事例AmebaのMongoDB活用事例
AmebaのMongoDB活用事例
 
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
 
SAP HANA One on AWS
SAP HANA One on AWSSAP HANA One on AWS
SAP HANA One on AWS
 
Cassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sqlCassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sql
 
Mecha-Mozilla
Mecha-MozillaMecha-Mozilla
Mecha-Mozilla
 
AWS Black Belt - AWS Glue
AWS Black Belt - AWS GlueAWS Black Belt - AWS Glue
AWS Black Belt - AWS Glue
 

Recently uploaded

論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
atsushi061452
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
iPride Co., Ltd.
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
yassun7010
 
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
atsushi061452
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
Sony - Neural Network Libraries
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 

Recently uploaded (15)

論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 

社会ネットワーク分析第7回

  • 1. 社会ネットワーク分析勉強会 その7 三上 悟 = @saicologic 12年9月20日木曜日
  • 2. 現実のグラフデータ 現実のデータはメモリーの中に格納できない 例えば 接続されている1000ノードのグラフ 属性の部分を無視しても100MBのメモリを使う 12年9月20日木曜日
  • 3. 現実のグラフデータ Twitterで取得できるサンプルストリーム 1日に1200万ツイート 平均的なツイート= 1KB 1ノード1ツイートとして 1,200万 × 1KB = 1.2GBくらい 12年9月20日木曜日
  • 5. 記憶域 容量 計算機 頂点数 小規模データ メモリー 数GB 1台 数千∼数万 メモリー/ 中規模データ 数TB 1台∼数台 数百万∼数千万 ディスク 大規模データ ディスク 数PB 数台∼数万台 億∼兆 12年9月20日木曜日
  • 6. スモールデータ EdgeList(*.edge) .net(*.net) GML(*.gml) GraphML(*.graphml) その他のXMLフォーマット(*.xml) hファイル(*.h) 12年9月20日木曜日
  • 7. 拡張子 形式 EdgeList .edges TEXT .net .net TEXT GML .gml XML GraphML .graphml XML h .h バイナリ 12年9月20日木曜日
  • 8. 中規模データ ディスクに格納するサイズのデータのこと 主にRDBMSやNoSQLなどのデータベース製品を使う 12年9月20日木曜日
  • 10. カーソル テーブルを探索するためのデータベースオブジェクト 直接データを取得するのではなく、ポインタ情報のみ を渡す。これをリザルトセットと呼ぶ 必要なときにポインタ情報から実際のデータを取得す る。 12年9月20日木曜日
  • 11. トランザクション ノードの追加や削除などの一連の処理の一体として実 行を保証する仕組みのこと 操作途中にエラーが起きればロールバックして、処理 をなかったことにすることができる。 一連の操作が完了し、コミット命令を発行したときに 初めてディスクにデータが書き込まれる。 12年9月20日木曜日
  • 12. 名前 一意にグラフが識別できる名前をつけよう 名前を一度Base64でエンコードして格納(おすすめはし ない) base64.encodestring(name).replace('n', '') pythonのuuid()を使うと良い思います。 12年9月20日木曜日
  • 13. 属性 ノードはオブジェクト エッジはオブジェクトの辞書 オブジェクトの属性はJSONにシリアライズして格納 12年9月20日木曜日
  • 14. クラス SqlGraph add_node(node, attr_dict, cursor) add_edge(fromnode, tonode, attr_dict, cursor) removed_node(node, cursor) remove_edge(fromnode, tonode, cursor) get_node_data(node, cursor) get_edge_data(fromnode, tonode, cursor) from_nx(G) to_nx 12年9月20日木曜日
  • 15. 関数とデコレータ Decoratorパターン 関数定義の直前に@関数名を指定することで、その関 数を別の関数でラップすることができる。主な用途と して、データベースの接続処理(cursored) 1.カーソルの 取得(@cursored) 2. クエリーの実行(add_edge関数など) 3.カーソルの終了(@cursored) 12年9月20日木曜日
  • 16. 関数とデコレータ @cursored def add_node(self, node, attr_dict=None, cursor=None): 1.カーソルの取得(@cursored) 2. クエリーの実行(add_edge関数など) 3. コミット or ロールバック(@cursord) 4.カーソルの終了(@cursored) 12年9月20日木曜日
  • 17. アダプタ NetworkXを操作するためのアダプタ関数を 用意しましょう。 from_nx(G) to_nx(G) 12年9月20日木曜日
  • 18. 2モードデータの操作 自己相関結合(self-join)を用いて2モードネットワーク を表現することができる。自己相関結合とは、同じ テーブル(edges)を別名で2つ定義し同じテーブル同士 を結合すること。 edges.to_nodeとedges.from_nodeにインデックスを貼ると より高速になります。 12年9月20日木曜日
  • 19. ソーシャルデータのビックデータ バズワード ビックデータ クラウドコンピューティング => 人間の行動パターンの巨大な収集メカニズムに対応す るための存在 例えば、Twitter内のメッセージのトレンドが知りたい 12年9月20日木曜日
  • 20. NoSQL OSS DB種別 ライセンス元 言語 BigTable x 列 Google HBase o 列 ASF JAVA MongoDB o ドキュメント 10gen C++ CouchDB o ドキュメント ASF Erlang Neo Neo4j o グラフ JAVA Technology 12年9月20日木曜日
  • 21. 関係データベース Oracle, DB2, Sybase, MySQL, PostgreSQL etc.. データをテーブルの構造で管理され、複数のデータ郡 を関係の構造で連結した構造のデータベース 関係代数演算、関係論理演算をして結果を取り出す。 行単位で操作する。 OLTP(On-Line Transaction Processing) 12年9月20日木曜日
  • 22. 列指向データベース BigTable, HBase 列のデータをひとまとめにして効率的に扱えるように 設計されたデータベース。大量の集計処理に向いてい る OLAP(OnLine Analytical Processing)向き 12年9月20日木曜日
  • 23. ドキュメントデータベース MongoDB, CouchDB etc.. オブジェクトデータをひとまとめに格納したデータ ベース。主にJSONを主なフォーマットとして格納 階層的な構造のデータに向いている。 12年9月20日木曜日
  • 24. グラフデータベース Neo4j, OrientDB, Titan etc.. グラフ(点と頂点)構造を格納するの適した設計の データベース。 2ホップ(友達の友達)以上のデータ探索が得意。 集合演算が苦手 12年9月20日木曜日
  • 25. 実際のデータ構造 Tweetのデータ構造はJSONで取得できる。 RDBMSはスキーマを強制する。 NoSQLはデータ構造に非常に寛大である。 JSON, CSV, XMLなど構造化されたテキストが操作しや すいように設計されている。 12年9月20日木曜日
  • 26. 実際のデータ構造 RDBMS 1. データ構造を学び、それに合うスキーマを設計する。 2. ストリームを読み込む。すべてのレコードについて、次のことを行う。 1. レコードをパースする。 2. レコードのフィールドをINSERTクエリーに変換する。 3. クエリーを実行し、一意制約違反を処理する。 4. オプションでほかの表をアップデートする。 NoSQLデータベース 1. ストリームを読む。 2. ファイルにレコードを書き込む。 12年9月20日木曜日
  • 27. RDBMSよりNoSQLの良いところ スキーマレスなのであとで最初の設計に縛られない データ構造。複雑なデータ構造に対応。柔軟性があ る。 水平分割しやすいので、スケールしやすい (トランザクションの考えが異なるので、良い面ばか りでもない。詳しくはBASE, CAP定理を参照) 12年9月20日木曜日
  • 28. 実際のビックデータ 分散コンピューティング 複数の計算ノードから構成 個々のノードは操作対象の一部の計算を受け取り計算 結果を返す。 計算結果を結合して、次の計算を行う。 12年9月20日木曜日
  • 29. Amazon S3 S3(Simple Storage Service) オブジェクトストア オブジェクトは巨大なディスク、イメージファイル や、一部の計算ファイル、ソースコードなどなんにで も見れる。 HTTPを介してアクセス HDFSとしても利用できる。 12年9月20日木曜日
  • 30. Apache Hadoop 分散ストレージ、分散処理の基礎を提供するJAVAソフ トウェフレームワーク HDFS(分散ファイルシステム)の上に、Map/Reduce計 算フレームワークを用いて大規模計算を行う 12年9月20日木曜日
  • 31. Map Reduce Googleが開発 MapステップとReduceステップで構成された計算フ レームワーク 関数型プログラミングのMap/Reduceに似ている。 主に、Hadoopがサポートしている。最近ではMongoDB, Riak, CoucbDBも 12年9月20日木曜日
  • 32. Apache Hive Apache Hiveはデータの集計、クエリ、および分析を提 供するため、Hadoopの上に構築されたデータ·ウェア ハウス·インフラストラクチャ。 SQL Likeの言語でデータを取り出すことができる。 同じソフトウェアにPigがある。 2モードグラフも簡単に書ける。なによりもRDBMSに 収まり切らない、遥かに巨大に対しても計算できる。 12年9月20日木曜日
  • 33. SQLは依然として我らが友 分散NoSQLデータベースは重量級 計算結果をRDBMSにおいて、それをSQLで取得するの がお手軽。 12年9月20日木曜日