Suche senden
Hochladen
Random partionerのデータモデリング
•
1 gefällt mir
•
1,234 views
2
2t3
Folgen
第16回Cassandra勉強会
Weniger lesen
Mehr lesen
Technologie
Business
Melden
Teilen
Melden
Teilen
1 von 30
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
巨大な表を高速に扱う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
Empfohlen
巨大な表を高速に扱う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
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
Weitere ähnliche Inhalte
Was ist angesagt?
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
Was ist angesagt?
(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章
Kürzlich hochgeladen
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
Kürzlich hochgeladen
(10)
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
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.
以上、ありがとうございました。
Jetzt herunterladen