Upload
Download free for 30 days
Login
Submit Search
Uuidはどこまでuuidか試してみた
Download as PPTX, PDF
5 likes
9,770 views
Yu Yamada
西日暮里.rb ゴールデンだよLT大会 @ 秋葉原UDX!! 山田 雄(株式会社リクルートライフスタイル)
Technology
Read more
1 of 21
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
More Related Content
PDF
暗号化したまま計算できる暗号技術とOSS開発による広がり
MITSUNARI Shigeo
PDF
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
PDF
統計的係り受け解析入門
Yuya Unno
PPTX
Visual Studio CodeでRを使う
Atsushi Hayakawa
PDF
JavaでCPUを使い倒す! ~Java 9 以降の CPU 最適化を覗いてみる~(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
NTT DATA Technology & Innovation
PDF
プログラミングコンテストでの動的計画法
Takuya Akiba
PDF
ウェーブレット木の世界
Preferred Networks
PDF
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
shinjiigarashi
暗号化したまま計算できる暗号技術とOSS開発による広がり
MITSUNARI Shigeo
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
統計的係り受け解析入門
Yuya Unno
Visual Studio CodeでRを使う
Atsushi Hayakawa
JavaでCPUを使い倒す! ~Java 9 以降の CPU 最適化を覗いてみる~(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
NTT DATA Technology & Innovation
プログラミングコンテストでの動的計画法
Takuya Akiba
ウェーブレット木の世界
Preferred Networks
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
shinjiigarashi
What's hot
(20)
PPTX
ビッグデータ処理データベースの全体像と使い分け 2018年version
Tetsutaro Watanabe
PDF
ドメインモデルの育て方
増田 亨
PDF
MySQLで論理削除と正しく付き合う方法
yoku0825
PPTX
心理学におけるオープンサイエンス入門(OSF&PsyArXiv編)
daiki hojo
PDF
イミュータブルデータモデルの極意
Yoshitaka Kawashima
PDF
リクルート式 自然言語処理技術の適応事例紹介
Recruit Technologies
PDF
オブジェクト指向できていますか?
Moriharu Ohzu
PDF
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Noritaka Sekiyama
PDF
その ionice、ほんとに効いてますか?
Narimichi Takamura
PDF
Stanコードの書き方 中級編
Hiroshi Shimizu
PDF
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
Recruit Technologies
PPTX
よくわかるHopscotch hashing
Kumazaki Hiroki
PDF
マイクロにしすぎた結果がこれだよ!
mosa siru
PPTX
Linuxのsemaphoreとmutexを見る
wata2ki
PDF
DARM勉強会第3回 (missing data analysis)
Masaru Tokuoka
PDF
ルールベースから機械学習への道 公開用
nishio
PDF
マイクロサービス 4つの分割アプローチ
増田 亨
PPTX
SQLチューニング入門 入門編
Miki Shimogai
PDF
知っているようで知らないPAMのお話
Serverworks Co.,Ltd.
PDF
MongoDB Configパラメータ解説
Shoken Fujisaki
ビッグデータ処理データベースの全体像と使い分け 2018年version
Tetsutaro Watanabe
ドメインモデルの育て方
増田 亨
MySQLで論理削除と正しく付き合う方法
yoku0825
心理学におけるオープンサイエンス入門(OSF&PsyArXiv編)
daiki hojo
イミュータブルデータモデルの極意
Yoshitaka Kawashima
リクルート式 自然言語処理技術の適応事例紹介
Recruit Technologies
オブジェクト指向できていますか?
Moriharu Ohzu
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Noritaka Sekiyama
その ionice、ほんとに効いてますか?
Narimichi Takamura
Stanコードの書き方 中級編
Hiroshi Shimizu
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
Recruit Technologies
よくわかるHopscotch hashing
Kumazaki Hiroki
マイクロにしすぎた結果がこれだよ!
mosa siru
Linuxのsemaphoreとmutexを見る
wata2ki
DARM勉強会第3回 (missing data analysis)
Masaru Tokuoka
ルールベースから機械学習への道 公開用
nishio
マイクロサービス 4つの分割アプローチ
増田 亨
SQLチューニング入門 入門編
Miki Shimogai
知っているようで知らないPAMのお話
Serverworks Co.,Ltd.
MongoDB Configパラメータ解説
Shoken Fujisaki
Ad
Similar to Uuidはどこまでuuidか試してみた
(20)
PPT
ListPod with OpenID
Yusuke Wada
PPTX
CDH4->5 update苦労話
Yu Yamada
PDF
IPv6移行の現状 〜 宅内端末から見た IPv6 と IPv4〜
Akira Nakagawa
PDF
【A-L】コミュニティが成長させるマルチクラウド環境でのデータ管理の世界 ~Docker Hubで500,000ダウンロード達成、Scality S3サー...
Developers Summit
PPTX
企業主催勉強会BPStudy〜個人が輝くコミュニティを目指して
Haruo Sato
PDF
2024 annual retrospect / IoT fullstack freelance
Yuki Kikuchi
PPTX
Jupyterで運用やってみた
Satoshi Yazawa
PDF
What i feel when began use AWS CodePipeline as GitLab Ci user
Yukiya Hayashi
PDF
組み込み向けC++のやり方を探る - mbedで楽しい組み込みプログラミング -
Kishi Shundo
PDF
de:code 夏まつり クイズクライアント作ったよ!
Kazumi OHIRA
PDF
Rustで DDD を実践しながら API サーバーを実装・構築した(つもり)
ShogoOkazaki
PPTX
Ciecleci
YosukeHojo
PPTX
Live2Dの描画の裏側の話
Naoki Aso
PPTX
tsudaりについて
Yoshikazu GOTO
PDF
テスト漏れを無くしたい!ワークフロー単位でトリガーを自由に設定したい要望
Futa HIRAKOBA
PPTX
WebとIoTとMake
Hirotaka Niisato
PPTX
Google cloudnext recap_DataAnalytics
Yu Yamada
PPTX
qpsutdy 201307 LT
Tomohiro Ikeda
PDF
Golang, make and robotics #gocon
Hideyuki TAKEI
PPTX
Twilio の API を SQL で操作!? 〜 CData Drivers for Twilio 製品のご紹介 〜
CData Software Japan
ListPod with OpenID
Yusuke Wada
CDH4->5 update苦労話
Yu Yamada
IPv6移行の現状 〜 宅内端末から見た IPv6 と IPv4〜
Akira Nakagawa
【A-L】コミュニティが成長させるマルチクラウド環境でのデータ管理の世界 ~Docker Hubで500,000ダウンロード達成、Scality S3サー...
Developers Summit
企業主催勉強会BPStudy〜個人が輝くコミュニティを目指して
Haruo Sato
2024 annual retrospect / IoT fullstack freelance
Yuki Kikuchi
Jupyterで運用やってみた
Satoshi Yazawa
What i feel when began use AWS CodePipeline as GitLab Ci user
Yukiya Hayashi
組み込み向けC++のやり方を探る - mbedで楽しい組み込みプログラミング -
Kishi Shundo
de:code 夏まつり クイズクライアント作ったよ!
Kazumi OHIRA
Rustで DDD を実践しながら API サーバーを実装・構築した(つもり)
ShogoOkazaki
Ciecleci
YosukeHojo
Live2Dの描画の裏側の話
Naoki Aso
tsudaりについて
Yoshikazu GOTO
テスト漏れを無くしたい!ワークフロー単位でトリガーを自由に設定したい要望
Futa HIRAKOBA
WebとIoTとMake
Hirotaka Niisato
Google cloudnext recap_DataAnalytics
Yu Yamada
qpsutdy 201307 LT
Tomohiro Ikeda
Golang, make and robotics #gocon
Hideyuki TAKEI
Twilio の API を SQL で操作!? 〜 CData Drivers for Twilio 製品のご紹介 〜
CData Software Japan
Ad
More from Yu Yamada
(10)
PPTX
リクルートライフスタイルが考える、万人に使ってもらえる分析基盤の作り方
Yu Yamada
PPTX
Step functionsとaws batchでオーケストレートするイベントドリブンな機械学習基盤
Yu Yamada
PPTX
ここがつらいよAws batch
Yu Yamada
PPTX
オンプレ、クラウドを組み合わせて作るビックデータ基盤 データ基盤の選び方
Yu Yamada
PPTX
やってはいけない空振りDelete
Yu Yamada
PPTX
リクルートライフスタイルの売上を支える共通分析基盤
Yu Yamada
PPTX
kafkaのデータをRedshiftへ入れるパイプライン作ってみた
Yu Yamada
PPTX
リクルートライフスタイルのデータを支える技術
Yu Yamada
PPTX
オンプレとクラウドのHadoopを比較して僕の思うとこ
Yu Yamada
PDF
僕の考える最強のビックデータエンジニア
Yu Yamada
リクルートライフスタイルが考える、万人に使ってもらえる分析基盤の作り方
Yu Yamada
Step functionsとaws batchでオーケストレートするイベントドリブンな機械学習基盤
Yu Yamada
ここがつらいよAws batch
Yu Yamada
オンプレ、クラウドを組み合わせて作るビックデータ基盤 データ基盤の選び方
Yu Yamada
やってはいけない空振りDelete
Yu Yamada
リクルートライフスタイルの売上を支える共通分析基盤
Yu Yamada
kafkaのデータをRedshiftへ入れるパイプライン作ってみた
Yu Yamada
リクルートライフスタイルのデータを支える技術
Yu Yamada
オンプレとクラウドのHadoopを比較して僕の思うとこ
Yu Yamada
僕の考える最強のビックデータエンジニア
Yu Yamada
Uuidはどこまでuuidか試してみた
1.
uuidはどこまでuuidか試してみた 西日暮里.rb ゴールデンだよLT大会 04/28 2016 山田
雄 ネットビジネス本部 データ基盤T
2.
■山田 雄(ヤマダ ユウ) 株式会社
リクルートライフスタイル ネットビジネス本部 データ基盤T Twitter:@nii_yan Github: https://github.com/yu-yamada Blog:イクジニアブログ ・元々フリーランスエンジニア 縁があってリクルートライフスタイルにお世話になることになった。 ビックデータ、Ruby、ビールが好き。 自己紹介
3.
UUID (User Unique ID) (Universally
Unique Identifier) 普遍的に 唯一の 識別子
4.
こんなことやりたいです Redshift
5.
実現するためのアーキテクチャ secor s4qs-rs S3 Redshift
6.
データの確認どうやる?? Fluentdから送られてくるメッセージ毎にUUID欲しいです! 俺の作ったpluginちょいと改良すれば出来そうなんでやっておきます! Qiita: fluentdでメッセージにuuidを追加する方法 http://qiita.com/nii_yan/items/35376464bb26169e4433
7.
UUIDの実装 require 'securerandom' SecureRandom.uuid 427037E7-235B-4F6C-9975-15AAC75E56C5
8.
どこまでUUIDか? 427037E7-235B-4F6C-9975-15AAC75E56C5 16進数の32桁なので 単純に考えれば16^32 なので 2^128通り ようは128bit
9.
どこまでUUIDか? 340澗(かん)通り!!! (兆,京,垓,抒(じょ),穣(じょう),溝(こう),澗(かん)) ipv6と同じ数
10.
どこまでUUIDか? Securerandomではuuid version4のuuidを作成 出来る。 RFC4122 version4を使っている場合生成されたIDが他の IDと衝突する確率は1/2^61。 Version4は128bitのうち6bitは固定 ちなみに宝くじの当たる確率は1/2^24ぐらいらし い・・・
11.
UUIDのバージョン? バージョン 生成方法 1 MacAddressとタイムスタンプ 2
DEC Security 3 名前のmd5ハッシュ 4 ランダム 5 名前のSHA-1ハッシュ
12.
一応本当に衝突しないか試してみた require 'securerandom' aa=Array.new 100000.times do
|i| r=SecureRandom.uuid.upcase if aa.include?(r) puts "find!!" break end aa << r if i % 1000 == 0 puts i end end
13.
一応本当に衝突しないか試してみた require 'securerandom' aa=Array.new 100000.times do
|i| r=SecureRandom.uuid.upcase if aa.include?(r) puts "find!!" break end aa << r if i % 1000 == 0 puts i end end 10万件ぐらいでは全然かぶらず。 そして実行時間が遅い・・・
14.
postgres使ってみた 上記のようなテーブルにひたすらuuidを生成して突っ込む。 エラーが出たらuuidが衝突したはず。 name 型 key uuid
text Primary key
15.
行くぜ1000万件 require 'pg' require 'securerandom' require
'parallel' connection = PG::connect(:host => "localhost", :user => ”XXX", :password => ”XXX", :dbname => ”XXX" ) begin Parallel.each([*1..10000000], in_processes: 4) do |i| r=SecureRandom.uuid.upcase sql = "insert into uuid_test (uuid) values('#{r}')" connection.exec(sql) if i % 10000 == 0 puts i end end rescue => ex puts ex ensure connection.finish end
16.
行くぜ1000万件 require 'pg' require 'securerandom' require
'parallel' connection = PG::connect(:host => "localhost", :user => ”XXX", :password => ”XXX", :dbname => ”XXX" ) begin Parallel.each([*1..10000000], in_processes: 4) do |i| r=SecureRandom.uuid.upcase sql = "insert into uuid_test (uuid) values('#{r}')" connection.exec(sql) if i % 10000 == 0 puts i end end rescue => ex puts ex ensure connection.finish end 1000万件もそれ以上も余裕だが、 僕のmacが余裕ない・・・ToT (容量やCPU的な意味で)
17.
Aurora使ってみた name 型 key uuid
string Primary key
18.
Aurora使ってみた お金が心配で出来なかったです・・・・ name 型 key uuid
string Primary key
19.
Redshiftに入ってるデータ見てみた 2億件ぐらいデータ溜まっていたが衝突 なし
20.
まとめ Securerandomで生成させるuuidは個人 で検証出来る範囲ではuuidでした! きっとそれ以上の範囲でもかなりuuidで す。
21.
ご清聴ありがとうございました (@nii_yan)
Editor's Notes
#2:
これからHadoop導入する方がオンプレかクラウドか悩んだ際に少しでも参考になれば嬉しいです。
Download