Soumettre la recherche
Mettre en ligne
Random partionerのデータモデリング
•
1 j'aime
•
1,234 vues
2
2t3
Suivre
第16回Cassandra勉強会
Lire moins
Lire la suite
Technologie
Business
Signaler
Partager
Signaler
Partager
1 sur 30
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
巨大な表を高速に扱うData.table について
巨大な表を高速に扱うData.table について
Haruka Ozaki
Rにおける大規模データ解析(第10回TokyoWebMining)
Rにおける大規模データ解析(第10回TokyoWebMining)
Shintaro Fukushima
Amazon Dash xxx Button
Amazon Dash xxx Button
prprhyt
Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)
Shintaro Fukushima
mmapパッケージを使ってお手軽オブジェクト管理
mmapパッケージを使ってお手軽オブジェクト管理
Shintaro Fukushima
Rのデータ構造とメモリ管理
Rのデータ構造とメモリ管理
Takeshi Arabiki
Programming school 08
Programming school 08
Masato Nakajima
R高速化
R高速化
Monta Yashi
Recommandé
巨大な表を高速に扱うData.table について
巨大な表を高速に扱うData.table について
Haruka Ozaki
Rにおける大規模データ解析(第10回TokyoWebMining)
Rにおける大規模データ解析(第10回TokyoWebMining)
Shintaro Fukushima
Amazon Dash xxx Button
Amazon Dash xxx Button
prprhyt
Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)
Shintaro Fukushima
mmapパッケージを使ってお手軽オブジェクト管理
mmapパッケージを使ってお手軽オブジェクト管理
Shintaro Fukushima
Rのデータ構造とメモリ管理
Rのデータ構造とメモリ管理
Takeshi Arabiki
Programming school 08
Programming school 08
Masato Nakajima
R高速化
R高速化
Monta Yashi
R3.0.0 is relased
R3.0.0 is relased
Shintaro Fukushima
R-hpc-1 TokyoR#11
R-hpc-1 TokyoR#11
Shintaro Fukushima
分かった気分になるスタックトレース
分かった気分になるスタックトレース
Trash Briefing ,Ltd
RのffでGLMしてみたけど...
RのffでGLMしてみたけど...
Kazuya Wada
Rの高速化
Rの高速化
弘毅 露崎
統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用
統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用
Shintaro Fukushima
RのffとbigmemoryとRevoScaleRとを比較してみた
RのffとbigmemoryとRevoScaleRとを比較してみた
Kazuya Wada
20190202-pgunconf-Access-Privilege-Inquiry-Functions
20190202-pgunconf-Access-Privilege-Inquiry-Functions
Toshi Harada
第7回社内勉強会「Code Sucks - 人の振り見て我が振り直せ」
第7回社内勉強会「Code Sucks - 人の振り見て我が振り直せ」
Hiromu Shioya
Web技術勉強会 第38回
Web技術勉強会 第38回
龍一 田中
Gensim
Gensim
saireya _
Stanの便利な事後処理関数
Stanの便利な事後処理関数
daiki hojo
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~
Takuya Akiba
ぼくのかんがえたさいきょうのついったーくらいあんと
ぼくのかんがえたさいきょうのついったーくらいあんと
Yutaka Tsumori
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」
Hiro H.
Rubyによるデータ解析
Rubyによるデータ解析
Shugo Maeda
Perl RDBMS Programming(DBI/DBIx::Sunnyのはなし)
Perl RDBMS Programming(DBI/DBIx::Sunnyのはなし)
karupanerura
Pg14_sql_standard_function_body
Pg14_sql_standard_function_body
kasaharatt
全探索
全探索
HCPC: 北海道大学競技プログラミングサークル
Pythonデータ分析 第3回勉強会資料 8章
Pythonデータ分析 第3回勉強会資料 8章
Makoto Kawano
Contenu connexe
Tendances
R3.0.0 is relased
R3.0.0 is relased
Shintaro Fukushima
R-hpc-1 TokyoR#11
R-hpc-1 TokyoR#11
Shintaro Fukushima
分かった気分になるスタックトレース
分かった気分になるスタックトレース
Trash Briefing ,Ltd
RのffでGLMしてみたけど...
RのffでGLMしてみたけど...
Kazuya Wada
Rの高速化
Rの高速化
弘毅 露崎
統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用
統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用
Shintaro Fukushima
RのffとbigmemoryとRevoScaleRとを比較してみた
RのffとbigmemoryとRevoScaleRとを比較してみた
Kazuya Wada
20190202-pgunconf-Access-Privilege-Inquiry-Functions
20190202-pgunconf-Access-Privilege-Inquiry-Functions
Toshi Harada
第7回社内勉強会「Code Sucks - 人の振り見て我が振り直せ」
第7回社内勉強会「Code Sucks - 人の振り見て我が振り直せ」
Hiromu Shioya
Web技術勉強会 第38回
Web技術勉強会 第38回
龍一 田中
Gensim
Gensim
saireya _
Stanの便利な事後処理関数
Stanの便利な事後処理関数
daiki hojo
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~
Takuya Akiba
ぼくのかんがえたさいきょうのついったーくらいあんと
ぼくのかんがえたさいきょうのついったーくらいあんと
Yutaka Tsumori
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」
Hiro H.
Rubyによるデータ解析
Rubyによるデータ解析
Shugo Maeda
Perl RDBMS Programming(DBI/DBIx::Sunnyのはなし)
Perl RDBMS Programming(DBI/DBIx::Sunnyのはなし)
karupanerura
Pg14_sql_standard_function_body
Pg14_sql_standard_function_body
kasaharatt
全探索
全探索
HCPC: 北海道大学競技プログラミングサークル
Pythonデータ分析 第3回勉強会資料 8章
Pythonデータ分析 第3回勉強会資料 8章
Makoto Kawano
Tendances
(20)
R3.0.0 is relased
R3.0.0 is relased
R-hpc-1 TokyoR#11
R-hpc-1 TokyoR#11
分かった気分になるスタックトレース
分かった気分になるスタックトレース
RのffでGLMしてみたけど...
RのffでGLMしてみたけど...
Rの高速化
Rの高速化
統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用
統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用
RのffとbigmemoryとRevoScaleRとを比較してみた
RのffとbigmemoryとRevoScaleRとを比較してみた
20190202-pgunconf-Access-Privilege-Inquiry-Functions
20190202-pgunconf-Access-Privilege-Inquiry-Functions
第7回社内勉強会「Code Sucks - 人の振り見て我が振り直せ」
第7回社内勉強会「Code Sucks - 人の振り見て我が振り直せ」
Web技術勉強会 第38回
Web技術勉強会 第38回
Gensim
Gensim
Stanの便利な事後処理関数
Stanの便利な事後処理関数
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~
ぼくのかんがえたさいきょうのついったーくらいあんと
ぼくのかんがえたさいきょうのついったーくらいあんと
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」
Rubyによるデータ解析
Rubyによるデータ解析
Perl RDBMS Programming(DBI/DBIx::Sunnyのはなし)
Perl RDBMS Programming(DBI/DBIx::Sunnyのはなし)
Pg14_sql_standard_function_body
Pg14_sql_standard_function_body
全探索
全探索
Pythonデータ分析 第3回勉強会資料 8章
Pythonデータ分析 第3回勉強会資料 8章
Random partionerのデータモデリング
1.
RandomPartitonerの データモデリング
株式会社ワークスアプリケーションズ 堤 勇人(@2t3)
2.
自己紹介 所属
ワークスアプリケーションズ Incubation Labo4 Webmail お仕事 ウェブメールの開発
3.
自己紹介 所属
ワークスアプリケーションズ Incubation Labo4 Webmail お仕事 ウェブメールの開発 ・・・という名義で最先端技術を試す実験場
4.
Webmail
AP: jetty DB: cassandra, hbase 全てクラウド (AWS)で動作
5.
今回の達成目標 1. CRUDが存在するデータを扱う
DELETEが存在する。 2. BETWEEN検索が可能 例えば、このユーザーの3月~5月の データ、という検索をしたい。 3. 余剰リソースを少なく 低予算。
6.
前提知識:普通のデータモデリング
いわゆるRDB的な 例えば、Accountデータ キー / カラム username(key) password tsutsumi_h tsutsumi_h ******** yutuki_r yutuki_r ********** test_data test_data ******
7.
RDBを使え?
8.
RDBを使え? 知らん! 批判は断る! いやいや、分かってる分かってるん だ。最初から動的なウェブアプリ ケーションにCassandraなんて無理 だし。アトミック操作も無いしね。 件数表示とかすごい勢いでズレるし。 それは分かっていながら、敢えて、 そう敢えてのチャレンジなのですよ。 本当はlike検索とかしたい。超した い。気軽にインデックスとか貼りた い。でも最先端技術使うって名目な んだもの。
9.
もう一度、今回の達成目標 1. CRUDが存在するデータを扱う
DELETEが存在する。 2. BETWEEN検索が可能 例えば、このユーザーの3月~5月の データ、という検索をしたい。 3. 余剰リソースを少なく 低予算。
10.
案1:人工キーを利用する キー / カラム
username password 1 tsutsumi_h ******** 2 yutuki_r ********** 3 test_data ****** 1. CRUDが存在するデータを扱う 2. BETWEEN検索が可能 3. 余剰リソースを少なく
11.
案1:人工キーを利用する キー / カラム
username password 1 tsutsumi_h ******** 2 yutuki_r ********** 3 test_data ****** 2,3は良いが、1で問題が起こる DELETEが発生すると、キーに抜け ができ、パフォーマンスが落ちる
12.
案1:人工キーを利用する キー / カラム
username password 1 tsutsumi_h ******** 2 yutuki_r ********** 3 test_data ****** 2,3は良いが、1で問題が起こる DELETEが発生すると、キーに抜け ができ、パフォーマンスが落ちる
13.
案2:OrderPreservingPartitioner
yutuki_r tsutsumi_h node node node test_data 1. CRUDが存在するデータを扱う 2. BETWEEN検索が可能 3. 余剰リソースを少なく
14.
案2:OrderPreservingPartitioner
yutuki_r tsutsumi_h node node node test_data 1,2は良いが、3が微妙 データの偏りが発生し、仕事をあま りしないノードが出来る
15.
案2:OrderPreservingPartitioner
yutuki_r tsutsumi_h node node node test_data 1,2は良いが、3が微妙 データの偏りが発生し、仕事をあま りしないノードが出来る
16.
OPPを使った場合のデータ分布 稼働率が全体で50%以下
仕事をしないノードは仕事をする ノードの25%以下しか働かない。 しかもこの余剰分は他が溢れた時に 活かされることはない。
17.
前提知識:RandomPartitioner
Columnについては検索ができる 例えば、p~zまでのカラム名を抽出 キー / カラム username(key) … password tsutsumi_h tsutsumi_h … ******** yutuki_r yutuki_r … ********** test_data test_data … ******
18.
案3:RPを使って横持ちindex化 key
suzuki tamura tsutsumi urata wakui yutuki zhag 1. CRUDが存在するデータを扱う 2. BETWEEN検索が可能 3. 余剰リソースを少なく
19.
案3:RPを使って横持ちindex化 key
suzuki tamura tsutsumi urata wakui yutuki zhag 1,2,3を満たす・・・が indexが壊れた場合に、全てのデータ を一括で読むしか修復の方法が なくなる。
20.
案3:RPを使って横持ちindex化 key
suzuki tamura tsutsumi urata wakui yutuki zhag 1,2,3を満たす・・・が indexが壊れた場合に、全てのデータ を一括で読むしか修復の方法がなく なる
21.
案4:じゃあ全データ横持ちにする key
suzuki tamura tsutsumi urata wakui yutuki zhag username suzuki tamura tsutsumi urata wakui yutuki zhag password ***** ***** *** ****** ****** **** **** active 1 0 0 1 1 1 1 1. CRUDが存在するデータを扱う 2. BETWEEN検索が可能 3. 余剰リソースを少なく
22.
案4:じゃあ全データ横持ちにする key
suzuki tamura tsutsumi urata wakui yutuki zhag username suzuki tamura tsutsumi urata wakui yutuki zhag password ***** ***** *** ****** ****** **** **** active 1 0 0 1 1 1 1 1,2,3を満たす さらにはcassandraのget_count() も使えるように!
23.
案4:じゃあ全データ横持ちにする key
suzuki tamura tsutsumi urata wakui yutuki zhag username suzuki tamura tsutsumi urata wakui yutuki zhag password ***** ***** *** ****** ****** **** **** active 1 0 0 1 1 1 1 1,2,3を満たす さらにはcassandraのget_count() も使えるように!
24.
横持ちの仕方には色々ある key / column
tsutsumi@20110524 tsutsumi@20110525 key tsutsumi@20110524 tsutsumi@20110525 username tsutsumi tsutsumi_h password ******* ****************** active 0 1 完全横持ち 全てのデータが、column名ごとに 横に入る。自由に検索が出来るが、 rowが大きくなる。
25.
横持ちの仕方には色々ある key / column
tsutsumi@20110524 tsutsumi@20110525 tsutsumi@key tsutsumi@20110524 tsutsumi@20110525 tsutsumi@username tsutsumi tsutsumi_h tsutsumi@password ******* ****************** tsutsumi@active 0 1 ブロック(?)持ち ユーザーなど、ブロックごとに横持ち する。rowが比較的小さくなり、 ブロック毎のcountも出来る。 ただし、ブロック内しか検索できない
26.
横持ちの仕方には色々ある key / column
tsutsumi@20110524 tsutsumi@20110525 tsutsumi@20110524 tsutsumi@20110524 空 @key tsutsumi@20110524 tsutsumi 空 @username tsutsumi@20110525 空 tsutsumi@20110525 @key tsutsumi@20110525 空 tsutsumi_h @username ナナメ持ち 一つのキー毎に別のカラム名で横持ち する。rowが小さくなり負荷が少ない
27.
RP横持ちを使ったデータ分布 ブロック持ちの場合 DB1
DB2 DB3 79.82 79.56 79.77 (GB) ほぼ均等なデータ分布・稼働率 個々のノード毎の偏りがなくなり、 負荷も全体に分散するようになった。 さらに、get_Count()関数の利用が 可能になり、range_ghostの呪いから も開放された。
28.
RP横持ちを使ったデータ分布 ブロック持ちの場合 DB1
DB2 DB3 79.82 79.56 79.77 (GB) ほぼ均等なデータ分布・稼働率 個々のノード毎の偏りがなくなり、 負荷も全体に分散するようになった。 さらに、get_Count()関数の利用が 可能になり、range_ghostの呪いから も開放された。
29.
注意事項 key / column
a b c d e f g h i j k l m n o key username password active ー データ無し 空データの扱い方 データが無いカラムには、nullではなく、 適当な0xDEADBEEF等を入れないと、 cassandraが左詰めで返してしまう。
30.
以上、ありがとうございました。
Télécharger maintenant