Suche senden
Hochladen
GraphX によるグラフ分析処理の実例と入門
•
1 gefällt mir
•
1,411 views
鉄平 土佐
Folgen
https://foundit-project.connpass.com/event/51809/ での発表資料
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 44
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
Takahiro Inoue
[db tech showcase Tokyo 2015] E27: Neo4jグラフデータベース by クリエーションライン株式会社 李昌桓
[db tech showcase Tokyo 2015] E27: Neo4jグラフデータベース by クリエーションライン株式会社 李昌桓
Insight Technology, Inc.
GitHub最新情報キャッチアップ 2023年6月
GitHub最新情報キャッチアップ 2023年6月
Kazumi IWANAGA
Mov is turing-complete
Mov is turing-complete
yeokm1
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
MITSUNARI Shigeo
グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化
グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化
gree_tech
[丸ノ内アナリティクスバンビーノ#23]データドリブン施策によるサービス品質向上の取り組み
[丸ノ内アナリティクスバンビーノ#23]データドリブン施策によるサービス品質向上の取り組み
Teruyuki Sakaue
グラフ構造のデータモデルをPower BIで可視化してみた
グラフ構造のデータモデルをPower BIで可視化してみた
CData Software Japan
Empfohlen
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
Takahiro Inoue
[db tech showcase Tokyo 2015] E27: Neo4jグラフデータベース by クリエーションライン株式会社 李昌桓
[db tech showcase Tokyo 2015] E27: Neo4jグラフデータベース by クリエーションライン株式会社 李昌桓
Insight Technology, Inc.
GitHub最新情報キャッチアップ 2023年6月
GitHub最新情報キャッチアップ 2023年6月
Kazumi IWANAGA
Mov is turing-complete
Mov is turing-complete
yeokm1
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
MITSUNARI Shigeo
グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化
グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化
gree_tech
[丸ノ内アナリティクスバンビーノ#23]データドリブン施策によるサービス品質向上の取り組み
[丸ノ内アナリティクスバンビーノ#23]データドリブン施策によるサービス品質向上の取り組み
Teruyuki Sakaue
グラフ構造のデータモデルをPower BIで可視化してみた
グラフ構造のデータモデルをPower BIで可視化してみた
CData Software Japan
Juliaで学ぶ Hamiltonian Monte Carlo (NUTS 入り)
Juliaで学ぶ Hamiltonian Monte Carlo (NUTS 入り)
Kenta Sato
ロックフリーGCLOCKページ置換アルゴリズム
ロックフリーGCLOCKページ置換アルゴリズム
Makoto Yui
Rでソーシャルネットワーク分析
Rでソーシャルネットワーク分析
Hiroko Onari
ビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分け
Recruit Technologies
ハンドノート T字形ERモデル セミナー資料 (Author; S.Toriyabe SYSTEMS DESIGN Co.,Ltd. Japan)
ハンドノート T字形ERモデル セミナー資料 (Author; S.Toriyabe SYSTEMS DESIGN Co.,Ltd. Japan)
聡 鳥谷部
Elasticsearch as a Distributed System
Elasticsearch as a Distributed System
Satoyuki Tsukano
(2018.3) 分子のグラフ表現と機械学習
(2018.3) 分子のグラフ表現と機械学習
Ichigaku Takigawa
関数型プログラミングのデザインパターンひとめぐり
関数型プログラミングのデザインパターンひとめぐり
Kazuyuki TAKASE
DDD&Scalaで作られたプロダクトはその後どうなったか?(Current state of products made with DDD & Scala)
DDD&Scalaで作られたプロダクトはその後どうなったか?(Current state of products made with DDD & Scala)
MicroAd, Inc.(Engineer)
ゼロから始めるQ#
ゼロから始めるQ#
Takayoshi Tanaka
Reladomoを使ったトランザクション履歴管理をプロダクトに適用した際のメリット/デメリット/課題など
Reladomoを使ったトランザクション履歴管理をプロダクトに適用した際のメリット/デメリット/課題など
なべ
BigQuery で 150万円 使ったときの話
BigQuery で 150万円 使ったときの話
itkr
Visual studio2013からGithubへPushする方法
Visual studio2013からGithubへPushする方法
Takuya Kawabe
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
増田 亨
システム開発について
システム開発について
Sawada Makoto
Di入門
Di入門
Ryo Asai
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
グラフデータベース:Neo4j、そしてRDBからの移行手順の紹介
グラフデータベース:Neo4j、そしてRDBからの移行手順の紹介
ippei_suzuki
DiagrammeRと仲良くなった話ーグラフィカルモデルのためのDiagrammeR速習ー
DiagrammeRと仲良くなった話ーグラフィカルモデルのためのDiagrammeR速習ー
Takashi Yamane
会社でClojure使ってみて分かったこと
会社でClojure使ってみて分かったこと
Recruit Technologies
Reactテストに役立つ実装の工夫
Reactテストに役立つ実装の工夫
鉄平 土佐
Spark Streaming と Spark GraphX を使用したTwitter解析による レコメンドサービス例
Spark Streaming と Spark GraphX を使用したTwitter解析による レコメンドサービス例
Junichi Noda
Weitere ähnliche Inhalte
Was ist angesagt?
Juliaで学ぶ Hamiltonian Monte Carlo (NUTS 入り)
Juliaで学ぶ Hamiltonian Monte Carlo (NUTS 入り)
Kenta Sato
ロックフリーGCLOCKページ置換アルゴリズム
ロックフリーGCLOCKページ置換アルゴリズム
Makoto Yui
Rでソーシャルネットワーク分析
Rでソーシャルネットワーク分析
Hiroko Onari
ビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分け
Recruit Technologies
ハンドノート T字形ERモデル セミナー資料 (Author; S.Toriyabe SYSTEMS DESIGN Co.,Ltd. Japan)
ハンドノート T字形ERモデル セミナー資料 (Author; S.Toriyabe SYSTEMS DESIGN Co.,Ltd. Japan)
聡 鳥谷部
Elasticsearch as a Distributed System
Elasticsearch as a Distributed System
Satoyuki Tsukano
(2018.3) 分子のグラフ表現と機械学習
(2018.3) 分子のグラフ表現と機械学習
Ichigaku Takigawa
関数型プログラミングのデザインパターンひとめぐり
関数型プログラミングのデザインパターンひとめぐり
Kazuyuki TAKASE
DDD&Scalaで作られたプロダクトはその後どうなったか?(Current state of products made with DDD & Scala)
DDD&Scalaで作られたプロダクトはその後どうなったか?(Current state of products made with DDD & Scala)
MicroAd, Inc.(Engineer)
ゼロから始めるQ#
ゼロから始めるQ#
Takayoshi Tanaka
Reladomoを使ったトランザクション履歴管理をプロダクトに適用した際のメリット/デメリット/課題など
Reladomoを使ったトランザクション履歴管理をプロダクトに適用した際のメリット/デメリット/課題など
なべ
BigQuery で 150万円 使ったときの話
BigQuery で 150万円 使ったときの話
itkr
Visual studio2013からGithubへPushする方法
Visual studio2013からGithubへPushする方法
Takuya Kawabe
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
増田 亨
システム開発について
システム開発について
Sawada Makoto
Di入門
Di入門
Ryo Asai
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
グラフデータベース:Neo4j、そしてRDBからの移行手順の紹介
グラフデータベース:Neo4j、そしてRDBからの移行手順の紹介
ippei_suzuki
DiagrammeRと仲良くなった話ーグラフィカルモデルのためのDiagrammeR速習ー
DiagrammeRと仲良くなった話ーグラフィカルモデルのためのDiagrammeR速習ー
Takashi Yamane
会社でClojure使ってみて分かったこと
会社でClojure使ってみて分かったこと
Recruit Technologies
Was ist angesagt?
(20)
Juliaで学ぶ Hamiltonian Monte Carlo (NUTS 入り)
Juliaで学ぶ Hamiltonian Monte Carlo (NUTS 入り)
ロックフリーGCLOCKページ置換アルゴリズム
ロックフリーGCLOCKページ置換アルゴリズム
Rでソーシャルネットワーク分析
Rでソーシャルネットワーク分析
ビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分け
ハンドノート T字形ERモデル セミナー資料 (Author; S.Toriyabe SYSTEMS DESIGN Co.,Ltd. Japan)
ハンドノート T字形ERモデル セミナー資料 (Author; S.Toriyabe SYSTEMS DESIGN Co.,Ltd. Japan)
Elasticsearch as a Distributed System
Elasticsearch as a Distributed System
(2018.3) 分子のグラフ表現と機械学習
(2018.3) 分子のグラフ表現と機械学習
関数型プログラミングのデザインパターンひとめぐり
関数型プログラミングのデザインパターンひとめぐり
DDD&Scalaで作られたプロダクトはその後どうなったか?(Current state of products made with DDD & Scala)
DDD&Scalaで作られたプロダクトはその後どうなったか?(Current state of products made with DDD & Scala)
ゼロから始めるQ#
ゼロから始めるQ#
Reladomoを使ったトランザクション履歴管理をプロダクトに適用した際のメリット/デメリット/課題など
Reladomoを使ったトランザクション履歴管理をプロダクトに適用した際のメリット/デメリット/課題など
BigQuery で 150万円 使ったときの話
BigQuery で 150万円 使ったときの話
Visual studio2013からGithubへPushする方法
Visual studio2013からGithubへPushする方法
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
システム開発について
システム開発について
Di入門
Di入門
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
グラフデータベース:Neo4j、そしてRDBからの移行手順の紹介
グラフデータベース:Neo4j、そしてRDBからの移行手順の紹介
DiagrammeRと仲良くなった話ーグラフィカルモデルのためのDiagrammeR速習ー
DiagrammeRと仲良くなった話ーグラフィカルモデルのためのDiagrammeR速習ー
会社でClojure使ってみて分かったこと
会社でClojure使ってみて分かったこと
Andere mochten auch
Reactテストに役立つ実装の工夫
Reactテストに役立つ実装の工夫
鉄平 土佐
Spark Streaming と Spark GraphX を使用したTwitter解析による レコメンドサービス例
Spark Streaming と Spark GraphX を使用したTwitter解析による レコメンドサービス例
Junichi Noda
Spark GraphX で始めるグラフ解析
Spark GraphX で始めるグラフ解析
Yosuke Mizutani
La semaine pour les alternatives aux pesticides
La semaine pour les alternatives aux pesticides
DES Daughter
IEC Tech January 2017
IEC Tech January 2017
Mari Kimura
Open E-Books in Bibliotheken
Open E-Books in Bibliotheken
Rudolf Mumenthaler
4st year worksheet world organization in the sport
4st year worksheet world organization in the sport
Ciclos Formativos
Code reviews vs Pull requests
Code reviews vs Pull requests
Tim Pettersen
Sap mm online training course
Sap mm online training course
Trainings Customized
Google data studio eshow 2017 clinicseo
Google data studio eshow 2017 clinicseo
Antonio Gonzalez - Seoito
Sap bw on hana ramireddy ppt
Sap bw on hana ramireddy ppt
Trainings Customized
Ejemplo Plan de Marketing Digital
Ejemplo Plan de Marketing Digital
Noelia Martín García
Andere mochten auch
(12)
Reactテストに役立つ実装の工夫
Reactテストに役立つ実装の工夫
Spark Streaming と Spark GraphX を使用したTwitter解析による レコメンドサービス例
Spark Streaming と Spark GraphX を使用したTwitter解析による レコメンドサービス例
Spark GraphX で始めるグラフ解析
Spark GraphX で始めるグラフ解析
La semaine pour les alternatives aux pesticides
La semaine pour les alternatives aux pesticides
IEC Tech January 2017
IEC Tech January 2017
Open E-Books in Bibliotheken
Open E-Books in Bibliotheken
4st year worksheet world organization in the sport
4st year worksheet world organization in the sport
Code reviews vs Pull requests
Code reviews vs Pull requests
Sap mm online training course
Sap mm online training course
Google data studio eshow 2017 clinicseo
Google data studio eshow 2017 clinicseo
Sap bw on hana ramireddy ppt
Sap bw on hana ramireddy ppt
Ejemplo Plan de Marketing Digital
Ejemplo Plan de Marketing Digital
Ähnlich wie GraphX によるグラフ分析処理の実例と入門
Pact言語によるセキュアなスマートコントラクト開発
Pact言語によるセキュアなスマートコントラクト開発
Nagato Kasaki
20180109 titech lecture_ishizaki_public
20180109 titech lecture_ishizaki_public
Kazuaki Ishizaki
pg_bigmを用いた全文検索のしくみ(前編)
pg_bigmを用いた全文検索のしくみ(前編)
NTT DATA OSS Professional Services
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PosGIS/pgRoutingとRの連携による道路ネットワーク分析(埼玉大学・国府田様)
PosGIS/pgRoutingとRの連携による道路ネットワーク分析(埼玉大学・国府田様)
OSgeo Japan
2015年度GPGPU実践プログラミング 第7回 総和計算
2015年度GPGPU実践プログラミング 第7回 総和計算
智啓 出川
「C言語規格&MISRA-C:みんなで楽しいCプログラミング」NGK2013B名古屋合同懇親会2013忘年会昼の部
「C言語規格&MISRA-C:みんなで楽しいCプログラミング」NGK2013B名古屋合同懇親会2013忘年会昼の部
Kiyoshi Ogawa
ソフトウェア志向の組込みシステム協調設計環境
ソフトウェア志向の組込みシステム協調設計環境
Hideki Takase
DTrace for biginners part(2)
DTrace for biginners part(2)
Shoji Haraguchi
Digdagを用いた大規模広告配信ログデータの加工と運用
Digdagを用いた大規模広告配信ログデータの加工と運用
MicroAd, Inc.(Engineer)
Amazon EKSによるスケーラブルなCTR予測システム
Amazon EKSによるスケーラブルなCTR予測システム
駿哉 吉田
pg_bigmを用いた全文検索のしくみ(後編)
pg_bigmを用いた全文検索のしくみ(後編)
NTT DATA OSS Professional Services
IoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache Flink
Takanori Suzuki
画像処理の高性能計算
画像処理の高性能計算
Norishige Fukushima
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
Kohei KaiGai
gRPCurlDotNet.pptx
gRPCurlDotNet.pptx
Takao Tetsuro
OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022
OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022
Takayuki Shimizukawa
KamonとDatadogによるリアクティブアプリケーションの監視の事例
KamonとDatadogによるリアクティブアプリケーションの監視の事例
Ikuo Matsumura
運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]
運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]
DeNA
Rを用いたGIS
Rを用いたGIS
Mizutani Takayuki
Ähnlich wie GraphX によるグラフ分析処理の実例と入門
(20)
Pact言語によるセキュアなスマートコントラクト開発
Pact言語によるセキュアなスマートコントラクト開発
20180109 titech lecture_ishizaki_public
20180109 titech lecture_ishizaki_public
pg_bigmを用いた全文検索のしくみ(前編)
pg_bigmを用いた全文検索のしくみ(前編)
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
PosGIS/pgRoutingとRの連携による道路ネットワーク分析(埼玉大学・国府田様)
PosGIS/pgRoutingとRの連携による道路ネットワーク分析(埼玉大学・国府田様)
2015年度GPGPU実践プログラミング 第7回 総和計算
2015年度GPGPU実践プログラミング 第7回 総和計算
「C言語規格&MISRA-C:みんなで楽しいCプログラミング」NGK2013B名古屋合同懇親会2013忘年会昼の部
「C言語規格&MISRA-C:みんなで楽しいCプログラミング」NGK2013B名古屋合同懇親会2013忘年会昼の部
ソフトウェア志向の組込みシステム協調設計環境
ソフトウェア志向の組込みシステム協調設計環境
DTrace for biginners part(2)
DTrace for biginners part(2)
Digdagを用いた大規模広告配信ログデータの加工と運用
Digdagを用いた大規模広告配信ログデータの加工と運用
Amazon EKSによるスケーラブルなCTR予測システム
Amazon EKSによるスケーラブルなCTR予測システム
pg_bigmを用いた全文検索のしくみ(後編)
pg_bigmを用いた全文検索のしくみ(後編)
IoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache Flink
画像処理の高性能計算
画像処理の高性能計算
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
gRPCurlDotNet.pptx
gRPCurlDotNet.pptx
OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022
OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022
KamonとDatadogによるリアクティブアプリケーションの監視の事例
KamonとDatadogによるリアクティブアプリケーションの監視の事例
運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]
運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]
Rを用いたGIS
Rを用いたGIS
Mehr von 鉄平 土佐
GraphX Advent Calendar Day17
GraphX Advent Calendar Day17
鉄平 土佐
GraphX Advent Calendar Day15
GraphX Advent Calendar Day15
鉄平 土佐
GraphX Advent Calendar Day 14
GraphX Advent Calendar Day 14
鉄平 土佐
GraphX Advent Calendar Day 13
GraphX Advent Calendar Day 13
鉄平 土佐
GraphX Advent Calendar Day12 : Pregel概要
GraphX Advent Calendar Day12 : Pregel概要
鉄平 土佐
Asakusa fwはじめの一歩 0.7.0
Asakusa fwはじめの一歩 0.7.0
鉄平 土佐
Spark GraphXについて @Spark Meetup 2014/9/8
Spark GraphXについて @Spark Meetup 2014/9/8
鉄平 土佐
「Asakusa0.7の新機能で、テストデータをどうドキュメントするのか的な実用的なアレ」 by @okachimachiorz1
「Asakusa0.7の新機能で、テストデータをどうドキュメントするのか的な実用的なアレ」 by @okachimachiorz1
鉄平 土佐
GraphXはScalaエンジニアにとってのブルーオーシャン @ Scala Matsuri 2014
GraphXはScalaエンジニアにとってのブルーオーシャン @ Scala Matsuri 2014
鉄平 土佐
GraphX is the blue ocean for scala engineers @ Scala Matsuri 2014
GraphX is the blue ocean for scala engineers @ Scala Matsuri 2014
鉄平 土佐
Asakusa fw演算子チートシートについて
Asakusa fw演算子チートシートについて
鉄平 土佐
Asakusa fw勉強会2014真夏
Asakusa fw勉強会2014真夏
鉄平 土佐
Asakusa Framework 勉強会 2014 夏
Asakusa Framework 勉強会 2014 夏
鉄平 土佐
Asakusa Framework はじめの一歩 ( ver 0.6.2 )
Asakusa Framework はじめの一歩 ( ver 0.6.2 )
鉄平 土佐
Asakusa fwはじめの一歩・改
Asakusa fwはじめの一歩・改
鉄平 土佐
Asakusa fw勉強会2014冬
Asakusa fw勉強会2014冬
鉄平 土佐
Scala稟議の通し方(公開版)
Scala稟議の通し方(公開版)
鉄平 土佐
Scala active record
Scala active record
鉄平 土佐
はてブちう
はてブちう
鉄平 土佐
Moviecall
Moviecall
鉄平 土佐
Mehr von 鉄平 土佐
(20)
GraphX Advent Calendar Day17
GraphX Advent Calendar Day17
GraphX Advent Calendar Day15
GraphX Advent Calendar Day15
GraphX Advent Calendar Day 14
GraphX Advent Calendar Day 14
GraphX Advent Calendar Day 13
GraphX Advent Calendar Day 13
GraphX Advent Calendar Day12 : Pregel概要
GraphX Advent Calendar Day12 : Pregel概要
Asakusa fwはじめの一歩 0.7.0
Asakusa fwはじめの一歩 0.7.0
Spark GraphXについて @Spark Meetup 2014/9/8
Spark GraphXについて @Spark Meetup 2014/9/8
「Asakusa0.7の新機能で、テストデータをどうドキュメントするのか的な実用的なアレ」 by @okachimachiorz1
「Asakusa0.7の新機能で、テストデータをどうドキュメントするのか的な実用的なアレ」 by @okachimachiorz1
GraphXはScalaエンジニアにとってのブルーオーシャン @ Scala Matsuri 2014
GraphXはScalaエンジニアにとってのブルーオーシャン @ Scala Matsuri 2014
GraphX is the blue ocean for scala engineers @ Scala Matsuri 2014
GraphX is the blue ocean for scala engineers @ Scala Matsuri 2014
Asakusa fw演算子チートシートについて
Asakusa fw演算子チートシートについて
Asakusa fw勉強会2014真夏
Asakusa fw勉強会2014真夏
Asakusa Framework 勉強会 2014 夏
Asakusa Framework 勉強会 2014 夏
Asakusa Framework はじめの一歩 ( ver 0.6.2 )
Asakusa Framework はじめの一歩 ( ver 0.6.2 )
Asakusa fwはじめの一歩・改
Asakusa fwはじめの一歩・改
Asakusa fw勉強会2014冬
Asakusa fw勉強会2014冬
Scala稟議の通し方(公開版)
Scala稟議の通し方(公開版)
Scala active record
Scala active record
はてブちう
はてブちう
Moviecall
Moviecall
GraphX によるグラフ分析処理の実例と入門
1.
GraphXによるグラフ分析処理の実例と入門 freee 株式会社 土佐鉄平 1 found
IT projectセミナー#6
2.
About me freee 株式会社
土佐鉄平 ● ソフトウェアエンジニア ● 三代目巨匠 ● チーフセキュリティアーキテクト 略歴 ● 某金融機関システム子会社で13年勤務 ○ 前半8年は基幹系フロントシステムを担当 ○ 後半5年は研究開発部門マネージャを担当 ■ ビッグデータ技術等を導入推進 ● freee株式会社 ○ 記帳系、請求書周りを担当 ○ CSIRTも兼務 ○ 巨匠制度でデータ分析を活用したビジネスプラット フォーム関連の開発を実施 @teppei-tosa http://teppei.hateblo.jp 2
3.
本日お話ししたいこと グラフ分析ではどういうことができるのか freeeではグラフ分析をどのように活用しているのか GraphX でグラフ分析はどのようにできるのか 3
4.
Overview ● 会計freee と
ビジネスプラットフォーム構想 ○ 会計freeeとは ○ ビジネスプラットフォーム構想とは ○ スマート請求書とは ○ 取引ネットワーク推測機能とは ● 取引ネットワーク推測のにおけるグラフ分析 ○ Connected Component によってどれだけつながっているか確認 ○ Degreesを確認してつながりすぎているのを見つける ● GraphXによるグラフ分析 ○ graphの作り方 ○ Connected Component の使い方 ○ Pregelとは ○ Connected Component で知る Pregel の使い方 4
5.
会計freee と ビジネスプラットフォーム構想 5
6.
freeeのプロダクト
7.
クラウド会計ソフトシェアNo.1 7 有効事業所数は 70万事業所を突破 【1年間で2倍以上の伸び】 freee 有効事業所数(2016年1月) 会計ソフトおよび給与計算ソフトの利用を目的 として登録した事業所のみをカウント *
デジタルインファクト調べ(2015年12月時点) クラウド会計ソフト市場 マーケットシェア * (法人・個人)
8.
ビジネスプラットフォーム構想とは 8 取引効率化 機会創出 経営効率化 スマートビジネスプラットフォーム ビジネスのやりとりが全てfreee 上で完結 決済 受発注 ネッティング ビジネスマッチング 在庫管理 ファクタリング 経営統計 データ 請求 入金管理
9.
スマート請求書とは 9 freee 上で請求書のやり取りを完結させることで、 受け取った請求書の処理時間を1/8に短縮する
10.
取引ネットワーク推測とは ● 情報公開を許可している企業同士が、よりfreeeを活用できる仕組み ● スマート請求書に続く「企業間取引プラットフォーム」施策の第2弾 10
11.
取引ネットワーク推測とは ● 事業所に設定されている「取引先」と、他の事業所の一致予測を実施 ● freeeの中でも、実取引としてもつながっている事業所を見つけ出す ●
事業所の「公開設定」機能を提供 ○ 予測確度に応じて、公開対象と公開範囲を設定可能 ○ 例:確度・高に対しては、住所を公開 ● 取引先が freee の利用事業所で、情報公開しているならば、スマート請求書の利用を 推奨したり、相手事業所の名称や住所をコピー可能 11
12.
取引ネットワーク推測におけるグラフ分析 12
13.
Graph とは ● 頂点(vertex)と辺(edge)の集まり ●
辺は方向(direction)を持つことができる ● 頂点と辺はそれぞれ属性(attribute)を持つことができる 13
14.
● Connected Component
(連結成分)とは、(難しい定義はよくわからないけど)、要は、 辺でつながっている頂点の集まり ● 大きすぎる 連結成分 が存在するようであれば、不正に辺を集めている頂点が存在す ることを疑う ● ただしシェアが拡大すれば、ひとつの連結成分がほとんどの頂点を含むようになる Connected Component による分析 14
15.
Degrees の分析 ● 頂点とつながる辺の数を「次数(degrees)」と呼ぶ ●
頂点に入ってくる辺の数を「入次数(in-degreees)」 ● 頂点から出る辺の数を「出次数(out-degrees)」 ● 次数の多い順に sort して 上位10件を確認するなどして、巨大な連結成分の原因と なっている頂点を探す ● そうすると、紐つけロジックの不備が大体推測できて、見直しをする 15 degrees: 5, in-degrees: 2, out-degrees: 3
16.
GraphXによるグラフ分析 16
17.
GraphXとは ● GraphX は、Apache
Sparkのコンポーネントの一つで、大容量グラフ構造データの並列 分散処理を実装するためのフレームワーク ● ETL、機会学習、クエリ、グラフ分析をひとつのアプリケーション内でシームレスに実装 できる ● GraphX自体が Spark で実装されているため、GraphX の内部実装の把握と、Sparkア プリを実装することの距離が近いことも魅力 17
18.
graph の作り方 ● 例えば別の大規模グラフデータ分析フレームワークの
Apache Giraph では、以下のよ うにグラフデータの形に変換したデータを読み込む必要がある [1, 100, [[2, 100]] ] [2, 200, [[3, 200]] ] [3, 300, [[1, 100]] ] ● GraphXでは、以下のように表構造のデータから グラフオブジェクトを作ることができる 18 id name value 1 taro 100 2 jiro 200 3 saburo 300 id from to value 1 1 2 100 2 2 3 200 3 3 1 300 master.csv connection.csv 1 3 2 (taro, 100) (jiro, 200) (saburo, 300) (300) (100) (200)
19.
graph の作り方 // 元データを読み込み val
master = sc.textFile(“master.csv”) val conn = sc.textFile(“connection.csv”) // 頂点データを生成 val vertices:RDD[(VertexId, String)] = master.map( line => { val cols = line.split(“,”) (cols(0).toLong, cols(1)) }) // 辺データを生成 val edges:RDD[Edge[Long]] = conn.map( line => { val cols = line.split(“,”) Edge(cols(1).toLong, cols(2).toLong, cols(3).toLong) }) // 頂点データと辺データからグラフを生成 val graph:Graph[String, Long] = Graph(vertices, edges) 19
20.
Connected Component の分類の仕方 ●
各 vertex の id をそれぞれの value にセットして、各 connected component の vertex の value をその中で最小の値の id になるように分類される ● 実装はこれだけ val cc:Graph[Long, Int] = graph.connectedComponents 20 4 6 5 1 3 2 4 4 4 1 1 1
21.
degrees の取得 ● 次数の取得 val
degrees:VertexRDD[Int] = graph.degrees ● 出次数の取得 val outDegrees:VertexRDD[Int] = graph.outDegrees ● 入次数の取得 val inDegrees:VertexRDD[Int] = graph.inDegrees ● 結果は id と 次数の tuple で得られる 21
22.
Pregel とは ● Pregel
は Google が開発したグラフアルゴリズムを実装する ためのスケーラブルなプ ラットフォーム実装 ● Google の論文を元に GraphX 内で関数が実装されて利用可能 ● API Pregel( graph, // 処理対象 グラフデータ initialMsg:A, // 最初 のイテレーションで送信するメッセージ maxIter:Int, // 最大何回イテレーションするか activeDir:EdgeDirection // どちら方向にメッセージ送信するか )( // イテレーション毎に頂点で稼動させる処理(A :受信したメッセージ) vprog:(VertexId, VD, A) => VD, // イテレーション毎に辺上に何を流すか決定する処理 sendMsg:(EdgeTriplet[VD, ED]) => Iterator[(VertexId, A)], // 複数 Edge からメッセージを受信した時 処理 mergeMsg:(A, A) => A // 処理結果として新しいGraphデータを返す ):Graph[VD, ED] 22
23.
Pregel とは ● 簡単なグラフを例に考えてみる 23 1
3 2
24.
Pregel とは ● 引数
initialMsg が全ての辺で流れる ● この処理は最初の iteration でだけ稼働する 24 1 3 2 initialMsg initialMsg initialMsg
25.
Pregel とは ● 複数の辺が入ってきている頂点で、各辺から渡ってきた値をどう
merge するか実装し た mergeMsg 関数が稼働する 25 1 3 2 mergeMsg
26.
Pregel とは ● 辺が入ってきている全ての頂点で、入ってきた値をどう処理するかを実装したvprog
が 稼働 ● ここまでで Iteration 1 26 1 3 2 vprog vprog
27.
Pregel とは ● 前の
iteration で値を受信した頂点から出ている辺で、どんな値を送るか実装した sendMsg が稼働 27 1 3 2 sendMsg
28.
Pregel とは ● 辺が入ってきている全ての頂点で、入ってきた値をどう処理するかを実装したvprog
が 稼働 ● 複数値が入ってくる頂点があればこの前に mergeMsg が稼働 ● 以上の Iteration が以下のどちらかの条件を満たすまで続く ○ 引数 maxIter で指定された回数続く ○ どの頂点からもメッセージが送信されなくなる 28 1 3 2 vprog
29.
Connected Conponent は
Pregel をどう使っているか 29 ● 簡単なグラフを例に考えてみる 1 3 2 { taro } { jiro } { saburo }
30.
Connected Conponent は
Pregel をどう使っているか 30 ● 各Vertexの値をVertexのidに置き換える 1 3 2 { 1 } { 2 } { 3 }
31.
Connected Conponent は
Pregel をどう使っているか 31 ● initalMsg として Long.MaxValue を全Edgeで双方向に送信する 1 3 2 Long.MaxValue Long.MaxValue Long.MaxValue { 1 } { 2 } { 3 }
32.
Connected Conponent は
Pregel をどう使っているか 32 ● 複数Edgeが集まっているVertexは流れてくる値の小さい方をとる(つまり Long.MaxValue) 1 3 2 { 1 } { 2 } { 3 } min(MAX, MAX) min(MAX, MAX) min(MAX, Max)
33.
Connected Conponent は
Pregel をどう使っているか 33 ● 受信したmsgとVertexが持っている値の小さい方をとる(つまりVertexの値の更新なし) 1 3 2 { 1 } { 2 } { 3 } min(MAX, 2) min(MAX, 1) min(MAX, 3)
34.
Connected Conponent は
Pregel をどう使っているか 34 ● msgを受信したvertex(つまり全てのvertex)から、小さい方の値を反対側に流すという ロジックに従ってmsg送信 1 3 2 1 2 1 { 1 } { 2 } { 3 }
35.
Connected Conponent は
Pregel をどう使っているか 35 ● 複数Edgeが集まっているVertexは流れてくる値の小さい方をとる 1 3 2 { 1 } { 2 } { 3 } min(1, 2)
36.
Connected Conponent は
Pregel をどう使っているか 36 ● 受信したmsgとVertexが持っている値の小さい方をとる(つまりVertexの値の更新なし) 1 3 2 { 1 } { 2 } { 3 } min(1, 2) min(1, 3)
37.
Connected Conponent は
Pregel をどう使っているか 37 ● 受信したvertexの値が更新される ● 受信したvertexから値送信しようとするが、どの辺もsrcもdstも同じ値なので送信がさ れず、これで Iteration 終了 1 3 2 { 1 } { 1 } { 1 }
38.
Connected Conponent は
Pregel をどう使っているか ● 実装(1) val cc = Pregel( // 各頂点の値をVertexのIDに変換したグラフをインプットにする graph.mapVertices { case (vid, _) => vid }, // Iterationの最初に大きな値をEdgeに流す Long.MaxValue, // Iterationの最大回数を変数で指定できるようになっている maxIterations, // msgはEdge上を双方向に流す EdgeDirection.Either )( // Edgeを流れてきた値とVertexで持っている値の小さい方をとる vprog = (id, attr, msg) => math.min(attr, msg), // Edge上をどうmsg流すかは別途関数を定義 sendMsg = sendMessage, // 同じVertexに複数のEdgeからmsg来たら、小さい方をとる mergeMsg = (a, b) => math.min(a, b) ) 38
39.
Connected Conponent は
Pregel をどう使っているか ● 実装(2) // Edge上をどうmsg流すか別途定義した関数 def sendMessage(edge: EdgeTriplet[VertexId, ED]) : Iterator[(VertexId, VertexId)] = { // src側の値が小さければsrcの値をdstに流す if (edge.srcAttr < edge.dstAttr) { Iterator((edge.dstId, edge.srcAttr)) // dst側の値が小さければdstの値をsrcに流す } else if (edge.srcAttr > edge.dstAttr) { Iterator((edge.srcId, edge.dstAttr)) // srcとdstの値が同じなら何も流さない } else { Iterator.empty } } 39
40.
まとめ 40
41.
まとめ データを「表構造」で扱っていてはできない分析が グラフ分析ならできる GraphX なら大規模なグラフデータ分析が ETL処理や機会学習処理とシームレスに実装できる GraphXやろう! 41
42.
おまけ:GraphX から GraphFrame
へ ● Spark のベースI/Fが RDDからDataFrame に以降するのに伴い、GraphX と DataFrame が統合したものが、GraphFrame。 ● DataFrame をベースに 大規模グラフ分析 を可能にするフレームワーク ● Neo4jで使われている CypherQuery が利用できるのが特徴 ● まだ ver 0.3 で、現状は GraphX から手を出しても大丈夫 ● いずれは GraphFrame に移行 42
43.
参考サイト ● GraphX Programing
Guide ● GraphX Advent Calendar 2014 ● Spark graph framesとopencypherによる分散グラフ処理の最新動向 ● GraphFrame 43
44.
スモールビジネスに携わるすべての人が 創造的な活動にフォーカスできるよう 44 Question?
Jetzt herunterladen