Submit Search
Upload
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
•
Download as PPTX, PDF
•
16 likes
•
10,690 views
Yuji Otani
Follow
2013年11月11日の勉強会@LIG社で発表した際の資料です。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 53
Download now
Recommended
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
pospome
Apache Avro vs Protocol Buffers
Apache Avro vs Protocol Buffers
Seiya Mizuno
MySQLレプリケーションあれやこれや
MySQLレプリケーションあれやこれや
yoku0825
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
強いて言えば「集約どう実装するのかな、を考える」な話
強いて言えば「集約どう実装するのかな、を考える」な話
Yoshitaka Kawashima
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Hiro H.
がっつりMongoDB事例紹介
がっつりMongoDB事例紹介
Tetsutaro Watanabe
Recommended
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
pospome
Apache Avro vs Protocol Buffers
Apache Avro vs Protocol Buffers
Seiya Mizuno
MySQLレプリケーションあれやこれや
MySQLレプリケーションあれやこれや
yoku0825
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
強いて言えば「集約どう実装するのかな、を考える」な話
強いて言えば「集約どう実装するのかな、を考える」な話
Yoshitaka Kawashima
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Hiro H.
がっつりMongoDB事例紹介
がっつりMongoDB事例紹介
Tetsutaro Watanabe
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
Yahoo!デベロッパーネットワーク
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
kwatch
【JAWS DAYS 2016】ランサーズを支えるAurora
【JAWS DAYS 2016】ランサーズを支えるAurora
Yuki Kanazawa
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?
Teppei Sato
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
Miki Shimogai
なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?
ichirin2501
トランザクションスクリプトのすすめ
トランザクションスクリプトのすすめ
pospome
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキー
yoku0825
Glibc malloc internal
Glibc malloc internal
Motohiro KOSAKI
Native Memory Tracking
Native Memory Tracking
Takahiro YAMADA
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)
Takanori Sejima
オブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメ
Yoji Kanno
マルチテナントのアプリケーション実装〜実践編〜
マルチテナントのアプリケーション実装〜実践編〜
Yoshiki Nakagawa
ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計
sairoutine
Redmineチューニングの実際と限界(旧資料) - Redmine performance tuning(old), See Below.
Redmineチューニングの実際と限界(旧資料) - Redmine performance tuning(old), See Below.
Kuniharu(州晴) AKAHANE(赤羽根)
GresCubeで快適PostgreSQLライフ
GresCubeで快適PostgreSQLライフ
NTT DATA OSS Professional Services
エンジニア勉強会_DECIDE
エンジニア勉強会_DECIDE
エンジニア勉強会 エスキュービズム
More Related Content
What's hot
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
Yahoo!デベロッパーネットワーク
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
kwatch
【JAWS DAYS 2016】ランサーズを支えるAurora
【JAWS DAYS 2016】ランサーズを支えるAurora
Yuki Kanazawa
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?
Teppei Sato
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
Miki Shimogai
なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?
ichirin2501
トランザクションスクリプトのすすめ
トランザクションスクリプトのすすめ
pospome
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキー
yoku0825
Glibc malloc internal
Glibc malloc internal
Motohiro KOSAKI
Native Memory Tracking
Native Memory Tracking
Takahiro YAMADA
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)
Takanori Sejima
オブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメ
Yoji Kanno
マルチテナントのアプリケーション実装〜実践編〜
マルチテナントのアプリケーション実装〜実践編〜
Yoshiki Nakagawa
ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計
sairoutine
Redmineチューニングの実際と限界(旧資料) - Redmine performance tuning(old), See Below.
Redmineチューニングの実際と限界(旧資料) - Redmine performance tuning(old), See Below.
Kuniharu(州晴) AKAHANE(赤羽根)
What's hot
(20)
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
【JAWS DAYS 2016】ランサーズを支えるAurora
【JAWS DAYS 2016】ランサーズを支えるAurora
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?
トランザクションスクリプトのすすめ
トランザクションスクリプトのすすめ
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキー
Glibc malloc internal
Glibc malloc internal
Native Memory Tracking
Native Memory Tracking
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)
オブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメ
マルチテナントのアプリケーション実装〜実践編〜
マルチテナントのアプリケーション実装〜実践編〜
ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計
Redmineチューニングの実際と限界(旧資料) - Redmine performance tuning(old), See Below.
Redmineチューニングの実際と限界(旧資料) - Redmine performance tuning(old), See Below.
Similar to RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
GresCubeで快適PostgreSQLライフ
GresCubeで快適PostgreSQLライフ
NTT DATA OSS Professional Services
エンジニア勉強会_DECIDE
エンジニア勉強会_DECIDE
エンジニア勉強会 エスキュービズム
AZAREA-Clusterセミナー(クラウドEXPO2013春)
AZAREA-Clusterセミナー(クラウドEXPO2013春)
AzareaCluster
Fuel php活用事例
Fuel php活用事例
Toshiyuki Maeda
ビッグデータシステム開発のための入出力の基礎知識
ビッグデータシステム開発のための入出力の基礎知識
techfun_yamazaki
PostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめ
Ohyama Masanori
GREE-Fsite
GREE-Fsite
technicaldesign
【基礎編】社内向けMySQL勉強会
【基礎編】社内向けMySQL勉強会
Yuji Otani
マーケティングテクノロジー勉強会
マーケティングテクノロジー勉強会
伊藤 孝
NTTデータにおけるScrumの組織的導入
NTTデータにおけるScrumの組織的導入
shibao800
1ヶ月で作り切る!スタートアップのための Rails 爆速開発術 (20170306)
1ヶ月で作り切る!スタートアップのための Rails 爆速開発術 (20170306)
Masataka Sato
CData Sync × Google BigQuery 3ステップで各データソースとのデータ連携を実現
CData Sync × Google BigQuery 3ステップで各データソースとのデータ連携を実現
CData Software Japan
1Uサーバーから始めるスケーラブルな「mCloud Project Server」
1Uサーバーから始めるスケーラブルな「mCloud Project Server」
Satoshi Konno
C22 スプリットブレインになっても一貫性を保証するインメモリデータグリッド製品 by Taichi Umeda
C22 スプリットブレインになっても一貫性を保証するインメモリデータグリッド製品 by Taichi Umeda
Insight Technology, Inc.
Androidアプリ屋だけどWebフロントエンド開発にアサインされた件について
Androidアプリ屋だけどWebフロントエンド開発にアサインされた件について
Takuya Kihara
[AWS re:invent 2013 Report] AWS New EC2 Instance Types
[AWS re:invent 2013 Report] AWS New EC2 Instance Types
Amazon Web Services Japan
インフラエンジニアの楽しい標準化活動
インフラエンジニアの楽しい標準化活動
gree_tech
『MobageのAnalytics活用したサービス開発』 - データマイニングCROSS2014 #CROSS2014
『MobageのAnalytics活用したサービス開発』 - データマイニングCROSS2014 #CROSS2014
Koichi Hamada
DeNAでのVertica運用
DeNAでのVertica運用
Shota Suzuki
2014-04-22 Ques #4 Automation Testing of Mobage Platform
2014-04-22 Ques #4 Automation Testing of Mobage Platform
Masaki Nakagawa
Similar to RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
(20)
GresCubeで快適PostgreSQLライフ
GresCubeで快適PostgreSQLライフ
エンジニア勉強会_DECIDE
エンジニア勉強会_DECIDE
AZAREA-Clusterセミナー(クラウドEXPO2013春)
AZAREA-Clusterセミナー(クラウドEXPO2013春)
Fuel php活用事例
Fuel php活用事例
ビッグデータシステム開発のための入出力の基礎知識
ビッグデータシステム開発のための入出力の基礎知識
PostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめ
GREE-Fsite
GREE-Fsite
【基礎編】社内向けMySQL勉強会
【基礎編】社内向けMySQL勉強会
マーケティングテクノロジー勉強会
マーケティングテクノロジー勉強会
NTTデータにおけるScrumの組織的導入
NTTデータにおけるScrumの組織的導入
1ヶ月で作り切る!スタートアップのための Rails 爆速開発術 (20170306)
1ヶ月で作り切る!スタートアップのための Rails 爆速開発術 (20170306)
CData Sync × Google BigQuery 3ステップで各データソースとのデータ連携を実現
CData Sync × Google BigQuery 3ステップで各データソースとのデータ連携を実現
1Uサーバーから始めるスケーラブルな「mCloud Project Server」
1Uサーバーから始めるスケーラブルな「mCloud Project Server」
C22 スプリットブレインになっても一貫性を保証するインメモリデータグリッド製品 by Taichi Umeda
C22 スプリットブレインになっても一貫性を保証するインメモリデータグリッド製品 by Taichi Umeda
Androidアプリ屋だけどWebフロントエンド開発にアサインされた件について
Androidアプリ屋だけどWebフロントエンド開発にアサインされた件について
[AWS re:invent 2013 Report] AWS New EC2 Instance Types
[AWS re:invent 2013 Report] AWS New EC2 Instance Types
インフラエンジニアの楽しい標準化活動
インフラエンジニアの楽しい標準化活動
『MobageのAnalytics活用したサービス開発』 - データマイニングCROSS2014 #CROSS2014
『MobageのAnalytics活用したサービス開発』 - データマイニングCROSS2014 #CROSS2014
DeNAでのVertica運用
DeNAでのVertica運用
2014-04-22 Ques #4 Automation Testing of Mobage Platform
2014-04-22 Ques #4 Automation Testing of Mobage Platform
More from Yuji Otani
SKYDISCのIoTを支えるテクノロジー
SKYDISCのIoTを支えるテクノロジー
Yuji Otani
Hack/HHVMの最新事情とメイン言語に採用した理由
Hack/HHVMの最新事情とメイン言語に採用した理由
Yuji Otani
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
「技術のインテリジェンスを創る」をどうやって実現するか
「技術のインテリジェンスを創る」をどうやって実現するか
Yuji Otani
Why choose Hack/HHVM over PHP7
Why choose Hack/HHVM over PHP7
Yuji Otani
PHP7ではなくHack/HHVMを選ぶ理由
PHP7ではなくHack/HHVMを選ぶ理由
Yuji Otani
MariaDB+GaleraClusterの運用事例(MySQL勉強会2016-01-28)
MariaDB+GaleraClusterの運用事例(MySQL勉強会2016-01-28)
Yuji Otani
PHP7がリリースされたいま、 改めてHackについて考える。
PHP7がリリースされたいま、 改めてHackについて考える。
Yuji Otani
FuelPHP × HHVM サービス開発事例
FuelPHP × HHVM サービス開発事例
Yuji Otani
Hack言語に賭けたチームの話
Hack言語に賭けたチームの話
Yuji Otani
スタートアップにおける技術チームの作り方
スタートアップにおける技術チームの作り方
Yuji Otani
Go言語のフレームワークRevelの紹介とサービスにおける活用事例
Go言語のフレームワークRevelの紹介とサービスにおける活用事例
Yuji Otani
Hack+FuelPHPによるWebサービス開発
Hack+FuelPHPによるWebサービス開発
Yuji Otani
【初心者向け】Go言語勉強会資料
【初心者向け】Go言語勉強会資料
Yuji Otani
NoSQL勉強会資料(2015/03/12@ヒカラボ )
NoSQL勉強会資料(2015/03/12@ヒカラボ )
Yuji Otani
Phalcon勉強会資料
Phalcon勉強会資料
Yuji Otani
Redis勉強会資料(2015/06 update)
Redis勉強会資料(2015/06 update)
Yuji Otani
Nginx勉強会
Nginx勉強会
Yuji Otani
PHP基礎勉強会
PHP基礎勉強会
Yuji Otani
負荷分散勉強会
負荷分散勉強会
Yuji Otani
More from Yuji Otani
(20)
SKYDISCのIoTを支えるテクノロジー
SKYDISCのIoTを支えるテクノロジー
Hack/HHVMの最新事情とメイン言語に採用した理由
Hack/HHVMの最新事情とメイン言語に採用した理由
Redisの特徴と活用方法について
Redisの特徴と活用方法について
「技術のインテリジェンスを創る」をどうやって実現するか
「技術のインテリジェンスを創る」をどうやって実現するか
Why choose Hack/HHVM over PHP7
Why choose Hack/HHVM over PHP7
PHP7ではなくHack/HHVMを選ぶ理由
PHP7ではなくHack/HHVMを選ぶ理由
MariaDB+GaleraClusterの運用事例(MySQL勉強会2016-01-28)
MariaDB+GaleraClusterの運用事例(MySQL勉強会2016-01-28)
PHP7がリリースされたいま、 改めてHackについて考える。
PHP7がリリースされたいま、 改めてHackについて考える。
FuelPHP × HHVM サービス開発事例
FuelPHP × HHVM サービス開発事例
Hack言語に賭けたチームの話
Hack言語に賭けたチームの話
スタートアップにおける技術チームの作り方
スタートアップにおける技術チームの作り方
Go言語のフレームワークRevelの紹介とサービスにおける活用事例
Go言語のフレームワークRevelの紹介とサービスにおける活用事例
Hack+FuelPHPによるWebサービス開発
Hack+FuelPHPによるWebサービス開発
【初心者向け】Go言語勉強会資料
【初心者向け】Go言語勉強会資料
NoSQL勉強会資料(2015/03/12@ヒカラボ )
NoSQL勉強会資料(2015/03/12@ヒカラボ )
Phalcon勉強会資料
Phalcon勉強会資料
Redis勉強会資料(2015/06 update)
Redis勉強会資料(2015/06 update)
Nginx勉強会
Nginx勉強会
PHP基礎勉強会
PHP基礎勉強会
負荷分散勉強会
負荷分散勉強会
Recently uploaded
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Recently uploaded
(11)
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
1.
RDBとKVSとの上手な付き合い方 株式会社トライフォート 大谷 祐司 Copyright ©
2013 TriFort, Inc. All Rights Reserved.
2.
自己紹介 ・山口県出身の33歳 ・2013年4月にトライフォート入社。 ・サーバーサイド開発チームの責任者。 ・車とプログラミングを愛しています。 Copyright © 2013
TriFort, Inc. All Rights Reserved.
3.
自己紹介 ソーシャル業界に飛び込んで約8ヶ月。 それまでは、ネット広告関連の比較的固い開 発を行っていました。 今ではすっかりソーシャルに染まっています。 Copyright © 2013
TriFort, Inc. All Rights Reserved.
4.
今日のテーマ RDBとKVSとの上手な付き合い方 Copyright © 2013
TriFort, Inc. All Rights Reserved.
5.
ところで、 皆さんKVS使ってますか? Copyright © 2013
TriFort, Inc. All Rights Reserved.
6.
KVSについてのおさらい データに対応する一意のキーを設定し、 ペアで保存するDB。 Copyright © 2013
TriFort, Inc. All Rights Reserved.
7.
KVSについてのおさらい KVS Keyを指定して Valueを取得する Value key Value key Copyright © 2013
TriFort, Inc. All Rights Reserved. key Value
8.
今日お話すること KVSとRDBをどうやって使うと、 どんな問題解決ができるのか。 AWSの採用で注目されているRedisを例 にお話します。 Copyright © 2013
TriFort, Inc. All Rights Reserved.
9.
KVSは主に、データアクセスにおける パフォーマンスの問題を解決できます。 Copyright © 2013
TriFort, Inc. All Rights Reserved.
10.
KVSが速い3つのポイント ・インメモリー ・シンプルな処理 ・イベント駆動アーキテクチャ Copyright © 2013
TriFort, Inc. All Rights Reserved.
11.
KVSが速い3つのポイント ・インメモリー ・シンプルな処理 ・イベント駆動アーキテクチャ Copyright © 2013
TriFort, Inc. All Rights Reserved.
12.
問題:メモリとHDDはどれくらいの速 度差があるでしょうか? Copyright © 2013
TriFort, Inc. All Rights Reserved.
13.
答え:10万〜100万倍 Copyright © 2013
TriFort, Inc. All Rights Reserved.
14.
高いパフォーマンス 全てのデータセットをメモリ内に読み込む 高速なデータアクセスを実現 Copyright © 2013
TriFort, Inc. All Rights Reserved.
15.
KVSが速い3つのポイント ・インメモリー ・シンプルな処理 ・イベント駆動アーキテクチャ Copyright © 2013
TriFort, Inc. All Rights Reserved.
16.
一般的なRDBのSELECTクエリ実行 ① プロセスを作成する ② SQLを解析する ③
該当の行をロックする ④ HDDから値を取得する ⑤ ロックを解除する ⑥ 値を返す ※分かりやすいように単純化しています。 Copyright © 2013 TriFort, Inc. All Rights Reserved.
17.
KVSから値を取得する処理 ① コマンドを解読 ② メモリから値を取得する ③
値を返す →シンプルに素早く動作します。 ※分かりやすいように単純化しています。 Copyright © 2013 TriFort, Inc. All Rights Reserved.
18.
KVSが速い3つのポイント ・インメモリー ・シンプルな処理 ・イベント駆動アーキテクチャ Copyright © 2013
TriFort, Inc. All Rights Reserved.
19.
イベント駆動アーキテクチャ 命令をトリガにプロセスを立ち上げるのではなく、 予め待機しているプロセスが命令を処理します。 プロセス生成は時間がかかるのです。 ※スレッドを立ち上げるRDBも存在します。 プロセス プログラムコード プロセスの情報 データ Copyright © 2013
TriFort, Inc. All Rights Reserved.
20.
イベント駆動アーキテクチャ ボクシングに例えるなら、 RDB : パンチが来たらそれからグローブを付けて殴り返す。 KVS
: ファイティングポーズをとっておき、いつでも 殴り返せるようにしておく というイメージです。 Copyright © 2013 TriFort, Inc. All Rights Reserved.
21.
シングルスレッド Redisはシングルスレッドで動作します。 一般的なRDBのように複数の処理を並列で行う事は不可能です。 必然的に、全てのデータ操作は排他的になります。 コマンド コマンド コマンド コマンド Copyright © 2013
TriFort, Inc. All Rights Reserved. 1スレッドで 順番に処理 Redis
22.
これらのポイントから、 KVSは高速なデータアクセス を実現します。 Copyright © 2013
TriFort, Inc. All Rights Reserved.
23.
KVSの良い点を上げましたが、 もちろん弱点もあります。 Copyright © 2013
TriFort, Inc. All Rights Reserved.
24.
KVSの弱点 ・ディスク容量 ・クラッシュセーフでない ・取得時の集計/ソートに弱い Copyright © 2013
TriFort, Inc. All Rights Reserved.
25.
KVSの弱点 ・ディスク容量 ・クラッシュセーフでない ・取得時の集計/ソートに弱い Copyright © 2013
TriFort, Inc. All Rights Reserved.
26.
メモリにデータを保存するので、大容量を 保存する事が難しくなってきます。 ①ハードウェア的なメモリの上限 ②コスト的なデメリット という要因があります。 Copyright © 2013
TriFort, Inc. All Rights Reserved.
27.
①ハードウェア的なメモリの上限 一般的な16スロットサーバの場合、 16G × 16
= 256G 程度が、メモリの上限になります。 ※実際はOSがメモリを使うので、もっと少なくなります。 Copyright © 2013 TriFort, Inc. All Rights Reserved.
28.
①ハードウェア的なメモリの上限 データのバックアップを行う場合には、 使用できる量がその半分程度になります。 バックアップ実行時に、保存データと同 じサイズのメモリを使用します。 Copyright © 2013
TriFort, Inc. All Rights Reserved.
29.
②コスト的なデメリット 16G × 16
= 256Gのメモリは、 約43万円にもなります。 安価になったとはいえ、まだまだ 値が張ります。 Copyright © 2013 TriFort, Inc. All Rights Reserved.
30.
KVSの弱点 ・ディスク容量 ・クラッシュセーフでない ・取得時の集計/ソートに弱い Copyright © 2013
TriFort, Inc. All Rights Reserved.
31.
メモリにデータを保存しているので、 マシンを再起動すると全て消失してし まいます。 バックアップ/リカバリ方法が用意され ていますが、まだRDBの方が信頼性が 高いと言われています。 Copyright © 2013
TriFort, Inc. All Rights Reserved.
32.
データ永続化(バックアップ) ①SAVE/BGSAVE ⇒DBのフルダンプ(RDB = Redis
DataBase)を作成。 SAVE/BGSAVE 全データ Redis Copyright © 2013 TriFort, Inc. All Rights Reserved. RDB
33.
データ永続化(バックアップ) ②AOF(Append Only File) ⇒コマンド実行ログ。ここからデータ復元可能。 コマンド コマンド Redis Copyright
© 2013 TriFort, Inc. All Rights Reserved. AOF
34.
KVSの弱点 ・ディスク容量 ・クラッシュセーフでない ・取得時の集計/ソートに弱い Copyright © 2013
TriFort, Inc. All Rights Reserved.
35.
値の集計/ソート/計算などの柔軟な操作が できない。 アプリケーション側で実装する必要があ ります。 Copyright © 2013
TriFort, Inc. All Rights Reserved.
36.
SQLなら簡単な操作も、アプリケーション 側で実装する必要があります。 ソート order by 集計 group by 件数 count() 合計 sum() フィルタ where
YY = ZZ 結合 join Copyright © 2013 TriFort, Inc. All Rights Reserved.
37.
結論 異なる特徴を持っているRDBとKVS。 補完し合う事で多くの問題解決ができます。 Copyright © 2013
TriFort, Inc. All Rights Reserved.
38.
RDBとKVSをどのように共存させる? Copyright © 2013
TriFort, Inc. All Rights Reserved.
39.
RDBの値をKVSに保持する方法 ・RDBのレコードをそのままセット ・RDBのレコードを結合/加工してセット ・レコードの統計情報をセット 等があります。 Copyright © 2013
TriFort, Inc. All Rights Reserved.
40.
RDBのレコードをそのままセット Copyright © 2013
TriFort, Inc. All Rights Reserved.
41.
RDBのレコードをそのままセット 【メリット】 ・RDB→KVSのキャッシュ処理をシンプルに実装できる。 ・値をKVSから取得してもRDBから取得しても、 同じように扱う事ができる。 ・データ更新時のRDB→KVSのキャッシュを簡単に行える。 Copyright © 2013
TriFort, Inc. All Rights Reserved.
42.
RDBのレコードをそのままセット 【注意点】 ・データの持ち方によっては、KVSへのアクセス回数が増える。 (レコードを補完するデータを取得 etc) ・データの加工が必要な場合、取得した後に操作が必要になる。 ・「そのまま」データを持つので、サイズが大きくなって しまう事がある。 Copyright ©
2013 TriFort, Inc. All Rights Reserved.
43.
RDBのレコードを操作/加工してセット 操作/加工 Copyright © 2013
TriFort, Inc. All Rights Reserved.
44.
RDBのレコードを操作/加工してセット 【メリット】 ・データ取得後にそのまま活用できるケースが増える。 ・負荷がかかるデータ操作/加工の回数を減らせる。 ・必要なデータを選択する事で、サイズを減らす事ができる。 Copyright © 2013
TriFort, Inc. All Rights Reserved.
45.
RDBのレコードを操作/加工してセット 【注意点】 ・プログラム側でデータ操作/加工の処理が必要になる。 ・RDBのデータが変更されたとき、KVSへのキャッシュが 複雑になる。 Copyright © 2013
TriFort, Inc. All Rights Reserved.
46.
レコードの統計情報をセット 統計処理 Copyright © 2013
TriFort, Inc. All Rights Reserved.
47.
レコードの統計情報をセット 【メリット】 ・RDBやプログラムで、統計処理の回数を減らせる。 ・RDBで統計情報を冗長的に持たなくてよくなる。 ・時間のかかる統計処理の結果を活用することができる。 (統計に時間がかかると、リアルタイムでの活用が困難) Copyright © 2013
TriFort, Inc. All Rights Reserved.
48.
レコードの統計情報をセット 【注意点】 ・プログラム側でデータ集計処理の実装が必要になる。 ・データ変更されたとき、再集計の必要がある。 ・実データと集計値に差分が出ない(出ても良い)工夫が必要。 Copyright © 2013
TriFort, Inc. All Rights Reserved.
49.
サーバの構成について Copyright © 2013
TriFort, Inc. All Rights Reserved.
50.
サーバ構成パターン ・Redisサーバのみで値を保持する ・RDBのキャッシュサーバとしてRedisを利用する ・WebサーバにRedisを同居させる ・1台のサーバに多数のRedisを立ち上げて、複数のCPUコアを使う ・監視サーバを設置してフェールオーバーできるようにする。 時間の関係で詳しい説明は割愛しますが、 様々な構成が存在します。 Copyright © 2013
TriFort, Inc. All Rights Reserved.
51.
結論 組み合わせのパターンは多いので、 「何を実現したいか」によって構成を 使い分ける事が重要です。 Copyright © 2013
TriFort, Inc. All Rights Reserved.
52.
Redisについて詳しく知りたい方 社内勉強会の資料をアップしていますので 「Redis勉強会」で検索してみてください。 Copyright © 2013
TriFort, Inc. All Rights Reserved.
53.
発表は以上になります。 ご清聴ありがとうございました。 Copyright © 2013
TriFort, Inc. All Rights Reserved.
Download now