Enviar pesquisa
Carregar
Random partionerのデータモデリング
•
1 gostou
•
1,234 visualizações
2
2t3
Seguir
第16回Cassandra勉強会
Leia menos
Leia mais
Tecnologia
Negócios
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 30
Baixar agora
Baixar para ler offline
Recomendados
巨大な表を高速に扱う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
Recomendados
巨大な表を高速に扱う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
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
Mais conteúdo relacionado
Mais procurados
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
Mais procurados
(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章
Último
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
Último
(8)
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
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.
以上、ありがとうございました。
Baixar agora