SlideShare ist ein Scribd-Unternehmen logo
1 von 91
Downloaden Sie, um offline zu lesen
© Opt, Inc. All Rights Reserved.
各種データベースの特徴と
パフォーマンス比較
株式会社オプト 仙台テクノロジー開発部
第2回タガヤス登壇資料 
© Opt, Inc. All Rights Reserved.
自己紹介
名前:堀内依子
所属:株式会社オプト 
仙台テクノロジー開発部
入社:2016年
一番好きなお土産: 南部せんべい
© Opt, Inc. All Rights Reserved.
データベースって
色々ありますよね
© Opt, Inc. All Rights Reserved.
データベース
● Oracle
● AWS RDS
○ MySQL
○ PostgreSQL
● TreasureData
● Redshift
© Opt, Inc. All Rights Reserved.
オプト仙台ラボでは
目的別大量データ
を取り扱う
© Opt, Inc. All Rights Reserved.
特定のレコードを取り出す
レコード集計をする
© Opt, Inc. All Rights Reserved.
DWH(データウェアハウス)向
けのデータストア
&
列指向
Redshiftを採用しました
© Opt, Inc. All Rights Reserved.
Redshift
AWS(Amazonのクラウドサービス)
で提供されているDWH構築向け大規模
データ解析システム
© Opt, Inc. All Rights Reserved.
列指向のデータベース
ってなに?
© Opt, Inc. All Rights Reserved.
行指向のデータベース
列指向のデータベース
© Opt, Inc. All Rights Reserved.
行指向データベース
● データの持ち方
○ データを行で扱う
© Opt, Inc. All Rights Reserved.
行指向データベース
● データの持ち方
○ データを行で扱う
● 例えば…
○ Oracle
○ MySQL
© Opt, Inc. All Rights Reserved.
列指向データベース
カラム型データベース
カラムストア型データベース
カラムナデータベース
● データの持ち方
○ データを列で扱う
© Opt, Inc. All Rights Reserved.
列指向データベース
● データの持ち方
○ データを列で扱う
● 例えば…
○ Cassandra
○ Redshift
カラム型データベース
カラムストア型データベース
カラムナデータベース
© Opt, Inc. All Rights Reserved.
でも、つまり…
行指向・列指向
どっちがいいの?
© Opt, Inc. All Rights Reserved.
学生のテストの点数テーブル
No 氏名 フリガナ 性別 生年月日 点数
1 板橋範久 イタバシノリヒサ 男 2001/08/19 94
2 猪俣清治 イノマタセイジ 男 2001/09/13 41
3 福島莉乃 フクシマリノ 女 1998/07/05 46
4 碓井桃歌 ウスイモモカ 女 2004/10/29 63
5 木田和島 キダワジマ 男 2006/11/01 60
© Opt, Inc. All Rights Reserved.
No 氏名 フリガナ 性別 生年月日 点数
1 板橋範久 イタバシノリヒサ 男 2001/08/19 94
2 猪俣清治 イノマタセイジ 男 2001/09/13 41
3 福島莉乃 フクシマリノ 女 1998/07/05 46
4 碓井桃歌 ウスイモモカ 女 2004/10/29 63
5 木田和島 キダワジマ 男 2006/11/01 60
行指向データベース
© Opt, Inc. All Rights Reserved.
No 氏名 フリガナ 性別 生年月日 点数
1 板橋範久 イタバシノリヒサ 男 2001/08/19 94
2 猪俣清治 イノマタセイジ 男 2001/09/13 41
3 福島莉乃 フクシマリノ 女 1998/07/05 46
4 碓井桃歌 ウスイモモカ 女 2004/10/29 63
5 木田和島 キダワジマ 男 2006/11/01 60
行指向データベース
データの塊は行!
© Opt, Inc. All Rights Reserved.
No 氏名 フリガナ 性別 生年月日 点数
1 板橋範久 イタバシノリヒサ 男 2001/08/19 94
2 猪俣清治 イノマタセイジ 男 2001/09/13 41
3 福島莉乃 フクシマリノ 女 1998/07/05 46
4 碓井桃歌 ウスイモモカ 女 2004/10/29 63
5 木田和島 キダワジマ 男 2006/11/01 60
列指向データベース
© Opt, Inc. All Rights Reserved.
No 氏名 フリガナ 性別 生年月日 点数
1 板橋範久 イタバシノリヒサ 男 2001/08/19 94
2 猪俣清治 イノマタセイジ 男 2001/09/13 41
3 福島莉乃 フクシマリノ 女 1998/07/05 46
4 碓井桃歌 ウスイモモカ 女 2004/10/29 63
5 木田和島 キダワジマ 男 2006/11/01 60
列指向データベース
データの塊は列!
© Opt, Inc. All Rights Reserved.
①
レコードを追加するとき
© Opt, Inc. All Rights Reserved.
学生を一人増やしたい
© Opt, Inc. All Rights Reserved.
INSERT INTO 学生テーブル
VALUES (No,氏名,フリガナ,性
別,生年月日,点数);
© Opt, Inc. All Rights Reserved.
No 氏名 フリガナ 性別 生年月日 点数
1 板橋範久 イタバシノリヒサ 男 2001/08/19 94
2 猪俣清治 イノマタセイジ 男 2001/09/13 41
3 福島莉乃 フクシマリノ 女 1998/07/05 46
4 碓井桃歌 ウスイモモカ 女 2004/10/29 63
5 木田和島 キダワジマ 男 2006/11/01 60
行指向データベース
6 江田幸雄 エダサチオ 男 2004/11/04 55
© Opt, Inc. All Rights Reserved.
No 氏名 フリガナ 性別 生年月日 点数
1 板橋範久 イタバシノリヒサ 男 2001/08/19 94
2 猪俣清治 イノマタセイジ 男 2001/09/13 41
3 福島莉乃 フクシマリノ 女 1998/07/05 46
4 碓井桃歌 ウスイモモカ 女 2004/10/29 63
5 木田和島 キダワジマ 男 2006/11/01 60
行指向データベース
6 江田幸雄 エダサチオ 男 2004/11/04 55
© Opt, Inc. All Rights Reserved.
No 氏名 フリガナ 性別 生年月日 点数
1 板橋範久 イタバシノリヒサ 男 2001/08/19 94
2 猪俣清治 イノマタセイジ 男 2001/09/13 41
3 福島莉乃 フクシマリノ 女 1998/07/05 46
4 碓井桃歌 ウスイモモカ 女 2004/10/29 63
5 木田和島 キダワジマ 男 2006/11/01 60
行指向データベース
6 江田幸雄 エダサチオ 男 2004/11/04 55
© Opt, Inc. All Rights Reserved.
No 氏名 フリガナ 性別 生年月日 点数
1 板橋範久 イタバシノリヒサ 男 2001/08/19 94
2 猪俣清治 イノマタセイジ 男 2001/09/13 41
3 福島莉乃 フクシマリノ 女 1998/07/05 46
4 碓井桃歌 ウスイモモカ 女 2004/10/29 63
5 木田和島 キダワジマ 男 2006/11/01 60
列指向データベース
6 江田幸雄 エダサチオ 男 2004/11/04 55
© Opt, Inc. All Rights Reserved.
No 氏名 フリガナ 性別 生年月日 点数
1 板橋範久 イタバシノリヒサ 男 2001/08/19 94
2 猪俣清治 イノマタセイジ 男 2001/09/13 41
3 福島莉乃 フクシマリノ 女 1998/07/05 46
4 碓井桃歌 ウスイモモカ 女 2004/10/29 63
5 木田和島 キダワジマ 男 2006/11/01 60
列指向データベース
6 江田幸雄 エダサチオ 男 2004/11/04 55
© Opt, Inc. All Rights Reserved.
No 氏名 フリガナ 性別 生年月日 点数
1 板橋範久 イタバシノリヒサ 男 2001/08/19 94
2 猪俣清治 イノマタセイジ 男 2001/09/13 41
3 福島莉乃 フクシマリノ 女 1998/07/05 46
4 碓井桃歌 ウスイモモカ 女 2004/10/29 63
5 木田和島 キダワジマ 男 2006/11/01 60
列指向データベース
6
江田幸雄 エダサチオ 男 2004/11/04 55
© Opt, Inc. All Rights Reserved.
No 氏名 フリガナ 性別 生年月日 点数
1 板橋範久 イタバシノリヒサ 男 2001/08/19 94
2 猪俣清治 イノマタセイジ 男 2001/09/13 41
3 福島莉乃 フクシマリノ 女 1998/07/05 46
4 碓井桃歌 ウスイモモカ 女 2004/10/29 63
5 木田和島 キダワジマ 男 2006/11/01 60
列指向データベース
6
エダサチオ 男 2004/11/04 55
江田幸雄
© Opt, Inc. All Rights Reserved.
No 氏名 フリガナ 性別 生年月日 点数
1 板橋範久 イタバシノリヒサ 男 2001/08/19 94
2 猪俣清治 イノマタセイジ 男 2001/09/13 41
3 福島莉乃 フクシマリノ 女 1998/07/05 46
4 碓井桃歌 ウスイモモカ 女 2004/10/29 63
5 木田和島 キダワジマ 男 2006/11/01 60
列指向データベース
6
男 2004/11/04 55
江田幸雄 エダサチオ
© Opt, Inc. All Rights Reserved.
No 氏名 フリガナ 性別 生年月日 点数
1 板橋範久 イタバシノリヒサ 男 2001/08/19 94
2 猪俣清治 イノマタセイジ 男 2001/09/13 41
3 福島莉乃 フクシマリノ 女 1998/07/05 46
4 碓井桃歌 ウスイモモカ 女 2004/10/29 63
5 木田和島 キダワジマ 男 2006/11/01 60
列指向データベース
6
2004/11/04 55
江田幸雄 エダサチオ 男
© Opt, Inc. All Rights Reserved.
2004/11/04
No 氏名 フリガナ 性別 生年月日 点数
1 板橋範久 イタバシノリヒサ 男 2001/08/19 94
2 猪俣清治 イノマタセイジ 男 2001/09/13 41
3 福島莉乃 フクシマリノ 女 1998/07/05 46
4 碓井桃歌 ウスイモモカ 女 2004/10/29 63
5 木田和島 キダワジマ 男 2006/11/01 60
列指向データベース
6
55
江田幸雄 エダサチオ 男
© Opt, Inc. All Rights Reserved.
No 氏名 フリガナ 性別 生年月日 点数
1 板橋範久 イタバシノリヒサ 男 2001/08/19 94
2 猪俣清治 イノマタセイジ 男 2001/09/13 41
3 福島莉乃 フクシマリノ 女 1998/07/05 46
4 碓井桃歌 ウスイモモカ 女 2004/10/29 63
5 木田和島 キダワジマ 男 2006/11/01 60
列指向データベース
6 江田幸雄 エダサチオ 男 2004/11/04 55
© Opt, Inc. All Rights Reserved.
INSERTは
行指向の方が速い
© Opt, Inc. All Rights Reserved.
②
レコードを集計するとき
© Opt, Inc. All Rights Reserved.
性別ごとに
平均点を出したい
© Opt, Inc. All Rights Reserved.
SELECT 性別,AVG(点数)
FROM 学生テーブル
GROUP BY 性別
© Opt, Inc. All Rights Reserved.
No 氏名 フリガナ 性別 生年月日 点数
1 板橋範久 イタバシノリヒサ 男 2001/08/19 94
2 猪俣清治 イノマタセイジ 男 2001/09/13 41
3 福島莉乃 フクシマリノ 女 1998/07/05 46
4 碓井桃歌 ウスイモモカ 女 2004/10/29 63
5 木田和島 キダワジマ 男 2006/11/01 60
行指向データベース
© Opt, Inc. All Rights Reserved.
No 氏名 フリガナ 性別 生年月日 点数
1 板橋範久 イタバシノリヒサ 男 2001/08/19 94
2 猪俣清治 イノマタセイジ 男 2001/09/13 41
3 福島莉乃 フクシマリノ 女 1998/07/05 46
4 碓井桃歌 ウスイモモカ 女 2004/10/29 63
5 木田和島 キダワジマ 男 2006/11/01 60
行指向データベース
© Opt, Inc. All Rights Reserved.
No 氏名 フリガナ 性別 生年月日 点数
1 板橋範久 イタバシノリヒサ 男 2001/08/19 94
2 猪俣清治 イノマタセイジ 男 2001/09/13 41
3 福島莉乃 フクシマリノ 女 1998/07/05 46
4 碓井桃歌 ウスイモモカ 女 2004/10/29 63
5 木田和島 キダワジマ 男 2006/11/01 60
行指向データベース
全カラムを走査して
性別列と点数列を使う
© Opt, Inc. All Rights Reserved.
No 氏名 フリガナ 性別 生年月日 点数
1 板橋範久 イタバシノリヒサ 男 2001/08/19 94
2 猪俣清治 イノマタセイジ 男 2001/09/13 41
3 福島莉乃 フクシマリノ 女 1998/07/05 46
4 碓井桃歌 ウスイモモカ 女 2004/10/29 63
5 木田和島 キダワジマ 男 2006/11/01 60
列指向データベース
© Opt, Inc. All Rights Reserved.
性別 点数
男 94
男 41
女 46
女 63
男 60
列指向データベース
© Opt, Inc. All Rights Reserved.
性別 点数
男 94
男 41
女 46
女 63
男 60
列指向データベース
必要な列だけを走査
捜索するデータ量を削減
© Opt, Inc. All Rights Reserved.
集計は列指向の方が速い
© Opt, Inc. All Rights Reserved.
つまり…
行指向・列指向
どっちもよい!
© Opt, Inc. All Rights Reserved.
行指向データベース
● データの持ち方
○ データを行で扱う
● 例えば…
○ Oracle
○ MySQL
© Opt, Inc. All Rights Reserved.
列指向データベース
● データの持ち方
○ データを列で扱う
● 例えば…
○ Cassandra
○ Redshift
© Opt, Inc. All Rights Reserved.
列
行
トランザクション処理に強い
行単位で処理するUPDATE/INSERTが
速い
特定のカラムしか利用しない
SELECT/集計が得意
© Opt, Inc. All Rights Reserved.
各種データベースの特徴
© Opt, Inc. All Rights Reserved.
データベース
● Oracle
● AWS RDS
○ MySQL
○ PostgreSQL
● TreasureData
● Redshift
© Opt, Inc. All Rights Reserved.
データベース
● Oracle
● AWS RDS
○ MySQL
○ PostgreSQL
● TreasureData
● Redshift
オプト仙台では
これらのDBを活
用しています
© Opt, Inc. All Rights Reserved.
Oracle
● 有償のみ
● 行指向
● 分散処理
※デフォルト設定の場合
© Opt, Inc. All Rights Reserved.
Oracle
シェアNo.1
※出典:https://www.marineroad.com/staff-blog/17102.html
自動でチューニングしてくれるので、
チューニングなしでもそこそこのパ
フォーマンスが期待できる
© Opt, Inc. All Rights Reserved.
MySQL
● オープンソース 無料
● 行指向
● 分散処理
※デフォルト設定の場合
© Opt, Inc. All Rights Reserved.
MySQL
シェアNo.2
※出典:https://www.marineroad.com/staff-blog/17102.html
ユーザーが多くコミュニティが活発。
調べると初歩的なものからたくさん情
報が出てくる
© Opt, Inc. All Rights Reserved.
PostgreSQL
● オープンソース 無料
● 行指向
● 分散処理 
※デフォルト設定の場合
© Opt, Inc. All Rights Reserved.
PostgreSQL
シェアNo.4
※出典:https://www.marineroad.com/staff-blog/17102.html
PostGISと言う位置情報を扱う拡張機能
が有名。位置情報アプリに便利。
チューニング次第で高速化できる!
© Opt, Inc. All Rights Reserved.
TREASURE DATA
● 有償(機能制限版の無償あり)
○ 月額料金
● 列指向
● 分散処理 
● アーキテクチャはHadoop
※デフォルト設定の場合
© Opt, Inc. All Rights Reserved.
TREASURE DATA
トレジャーデータより提供されているクラウド上の
DMS(データマネジメントサービス)。
※オプトでは「トレジャーデータサービス by IDCF」を活用しています。
テーブル定義なしでデータの保存が可能。パーティ
ションのため時刻のカラムが必須
DELETE・更新はできない。
partial_delete:時刻カラムで期間指定削除は可
© Opt, Inc. All Rights Reserved.
Redshift
● 有償のみ
○ 従量課金
● 列指向
● 分散処理 
● アーキテクチャはActian Matrix
※デフォルト設定の場合
© Opt, Inc. All Rights Reserved.
Redshift
AWSで提供されているDWH構築向け
大規模データ解析システム。
スケーラブル、クラスターサイズ変更可。
Amazon S3との連携が便利。
COPYコマンドを利用し高速取り込みが可能。
※Amazon S3:Simple Storage Service
データ保存取得可能なオブジェクトストレージ
© Opt, Inc. All Rights Reserved.
比較
MySQL PostgeSQL TreasureData Redshift
アーキテ
クチャ
MySQL PostgreSQL Hadoop Actian
Matrix
指向 行 行 列 列
分散 ❌ ❌ ○ ○
料金 無償あり 無償あり 基本有償 有償のみ
※デフォルト設定の場合
© Opt, Inc. All Rights Reserved.
パフォーマンス比較
© Opt, Inc. All Rights Reserved.
データベース
● Oracle
● AWS RDS
○ MySQL
○ PostgreSQL
● TreasureData
● Redshift
オプト仙台では
これらのDBを活
用しています
なので…
© Opt, Inc. All Rights Reserved.
データベース
● Oracle
● AWS RDS
○ MySQL
○ PostgreSQL
● TreasureData
● Redshift
これらのDBのパ
フォーマンス検
証しました!
© Opt, Inc. All Rights Reserved.
データ偏り・カラムの数や型など
でパフォーマンスは大きく変わる
ので、数値は一例としてご覧くだ
さい。
© Opt, Inc. All Rights Reserved.
DB名 プラン CPU RAM (GiB)
MySQL db.r3.large 2 15.25
PostgreSQL db.r3.large 2 15.25
TreasureData プランS 4 --
Redshift dc1.large 2 15
比較環境
© Opt, Inc. All Rights Reserved.
検証データ量
DB名 1万件 100万件 1億件
TresureData 12M 1,243M 124,357M
Redshift 108M 206M 10,004M
PostgreSQL 6M 1,113M 207,497M
MySQL 16M 1,206M 115,307M
© Opt, Inc. All Rights Reserved.
検証SQL
SELECT SELECT date,COUNT(*),SUM(数値) FROM table GROUP BY date
SELECT
UNION
SELECT
SELECT date,COUNT(*),SUM(数値) FROM table GROUP BY date
UNION ALL
SELECT date,COUNT(*),SUM(数値) FROM table2 GROUP BY date
INSERT INSERT INTO table2 SELECT * FROM table
ADD
COLUMN
ALTER TABLE table ADD COLUMN additional VARCHAR(100)
© Opt, Inc. All Rights Reserved.
パフォーマンス比較
DB名 SELECT UNION INSERT ADD
COLUMN
1万 100万 1億 1万 100万 1億 1万 100万 1億 1億
MySQL 0.06s 1.5s 55.5
m
0.08s 2.7s 1.8h 3s 1.1m 2.2h 3.3h
PostgreSQL 0.06s 0.7s 1.2h 0.07s 0.9s 3.5h 0.1s 0.9s 6.2h 0.2s
TREASURE DATA 2s 2s 8s 2s 3s 11s 8s 2.5m 7.3h --
Redshift 0.2s 0.3s 0.4s 0.3s 0.4s 0.7s 4.5s 17.75
s
2.5m 2s
3回試行平均値
© Opt, Inc. All Rights Reserved.
パフォーマンス比較
DB名 SELECT
1万 100万 1億
MySQL 0.06s 1.5s 55.5m
PostgreSQL 0.06s 0.7s 1.2h
TREASURE DATA 2s 2s 8s
Redshift 0.2s 0.3s 0.4s
© Opt, Inc. All Rights Reserved.
パフォーマンス比較
DB名 SELECT
1万 100万 1億
MySQL 0.06s 1.5s 55.5m
PostgreSQL 0.06s 0.7s 1.2h
TREASURE DATA 2s 2s 8s
Redshift 0.2s 0.3s 0.4s
集計クエリだけど
列指向のRedshiftより
行指向のPostgreSQL
が速い
© Opt, Inc. All Rights Reserved.
パフォーマンス比較
DB名 SELECT
1万 100万 1億
MySQL 0.06s 1.5s 55.5m
PostgreSQL 0.06s 0.7s 1.2h
TREASURE DATA 2s 2s 8s
Redshift 0.2s 0.3s 0.4s
Redshiftはクエリを
コンパイルするので
オーバーヘッドがある
© Opt, Inc. All Rights Reserved.
パフォーマンス比較
DB名 SELECT
1万 100万 1億
MySQL 0.06s 1.5s 55.5m
PostgreSQL 0.06s 0.7s 1.2h
TREASURE DATA 2s 2s 8s
Redshift 0.2s 0.3s 0.4s
データ量の増加で爆
発的に処理時間が増
えている!
© Opt, Inc. All Rights Reserved.
パフォーマンス比較
DB名 SELECT
1万 100万 1億
MySQL 0.06s 1.5s 55.5m
PostgreSQL 0.06s 0.7s 1.2h
TREASURE DATA 2s 2s 8s
Redshift 0.2s 0.3s 0.4sデータ量:10,000倍
処理速度:72,857倍
© Opt, Inc. All Rights Reserved.
パフォーマンス比較
DB名 SELECT
1万 100万 1億
MySQL 0.06s 1.5s 55.5m
PostgreSQL 0.06s 0.7s 1.2h
TREASURE DATA 2s 2s 8s
Redshift 0.2s 0.3s 0.4s
Redshiftはデータ量
に対して速度劣化が
少ない
© Opt, Inc. All Rights Reserved.
パフォーマンス比較
DB名 SELECT
1万 100万 1億
MySQL 0.06s 1.5s 55.5m
PostgreSQL 0.06s 0.7s 1.2h
TREASURE DATA 2s 2s 8s
Redshift 0.2s 0.3s 0.4s
データ量:10,000倍
処理速度:2倍
© Opt, Inc. All Rights Reserved.
パフォーマンス比較
DB名 UNION
1万 100万 1億
MySQL 0.08s 2.7s 1.8h
PostgreSQL 0.07s 0.9s 3.5h
TREASURE DATA 2s 3s 11s
Redshift 0.3s 0.4s 0.7s
3回試行平均値
© Opt, Inc. All Rights Reserved.
パフォーマンス比較
DB名 UNION
1万 100万 1億
MySQL 0.08s 2.7s 1.8h
PostgreSQL 0.07s 0.9s 3.5h
TREASURE
DATA
2s 3s 11s
Redshift 0.3s 0.4s 0.7s
処理時間の増加はよ
り顕著
© Opt, Inc. All Rights Reserved.
パフォーマンス比較
DB名 INSERT
1万 100万 1億
MySQL 3s 1.1m 2.2h
PostgreSQL 0.1s 0.9s 6.2h
TREASURE DATA 8s 2.5m 7.3h
Redshift 4.5s 17.75s 2.5m
3回試行平均値
© Opt, Inc. All Rights Reserved.
パフォーマンス比較
DB名 INSERT
1万 100万 1億
MySQL 3s 1.1m 2.2h
PostgreSQL 0.1s 0.9s 6.2h
TREASURE DATA 8s 2.5m 7.3h
Redshift 4.5s 17.75s 2.5m
3回試行平均値
Redshiftでも
それなりの
処理時間が
かかっている
© Opt, Inc. All Rights Reserved.
パフォーマンス比較
DB名 ADD COLUMN
1億
MySQL 3.3h
PostgreSQL 0.2s
TREASURE DATA --
Redshift 2s
3回試行平均値
© Opt, Inc. All Rights Reserved.
パフォーマンス比較
DB名 ADD COLUMN
1億
MySQL 3.3h
PostgreSQL 0.2s
TREASURE DATA --
Redshift 2s
3回試行平均値
MySQLは
カラム追加は遅い
© Opt, Inc. All Rights Reserved.
パフォーマンス比較
DB名 ADD COLUMN
1億
MySQL 3.3h
PostgreSQL 0.2s
TREASURE DATA --
Redshift 2s
3回試行平均値
PostgreSQLは
デフォルト値を
設定していない
場合、テーブル
定義への追加だ
けなので速い
© Opt, Inc. All Rights Reserved.
パフォーマンス比較
DB名 ADD COLUMN
1億
MySQL 3.3h
PostgreSQL 0.2s
TREASURE DATA --
Redshift 2s
3回試行平均値
Redshiftも
PostgreSQLと
同様に速い。
がやはりコンパ
イルのオーバー
ヘッドがある。
© Opt, Inc. All Rights Reserved.
まとめ
今回の検証では、
以上の結果が得られました
© Opt, Inc. All Rights Reserved.
まとめ
そもそもこのように大きなデータを
一つのテーブルに入れて集計するのは、
RDBは適切でないという前提があります
決してMySQLやPostgreSQLの
性能が悪い訳ではありません
© Opt, Inc. All Rights Reserved.
まとめ
Redshiftは大きなデータの
単一テーブルを扱うことが得意です。
このような適性からオプト仙台では、
Redshiftを採用しています。
© Opt, Inc. All Rights Reserved.
アプリケーションによって
適切なDBを!
© Opt, Inc. All Rights Reserved.
ご清聴
ありがとうございました

Weitere ähnliche Inhalte

Was ist angesagt?

本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話Kumazaki Hiroki
 
Amazon Redshift パフォーマンスチューニングテクニックと最新アップデート
Amazon Redshift パフォーマンスチューニングテクニックと最新アップデートAmazon Redshift パフォーマンスチューニングテクニックと最新アップデート
Amazon Redshift パフォーマンスチューニングテクニックと最新アップデートAmazon Web Services Japan
 
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割Recruit Lifestyle Co., Ltd.
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAkihiro Kuwano
 
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)NTT DATA OSS Professional Services
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)NTT DATA Technology & Innovation
 
データ分析基盤を支えるエンジニアリング
データ分析基盤を支えるエンジニアリングデータ分析基盤を支えるエンジニアリング
データ分析基盤を支えるエンジニアリングRecruit Lifestyle Co., Ltd.
 
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #1320210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13Amazon Web Services Japan
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことAmazon Web Services Japan
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティスAmazon Web Services Japan
 
イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)Yoshitaka Kawashima
 
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話JustSystems Corporation
 
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜Takahiko Ito
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織Takafumi ONAKA
 
マルチテナントのアプリケーション実装〜実践編〜
マルチテナントのアプリケーション実装〜実践編〜マルチテナントのアプリケーション実装〜実践編〜
マルチテナントのアプリケーション実装〜実践編〜Yoshiki Nakagawa
 
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)NTT DATA Technology & Innovation
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法Tetsutaro Watanabe
 
なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?ichirin2501
 
RLSを用いたマルチテナント実装 for Django
RLSを用いたマルチテナント実装 for DjangoRLSを用いたマルチテナント実装 for Django
RLSを用いたマルチテナント実装 for DjangoTakayuki Shimizukawa
 

Was ist angesagt? (20)

本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
Amazon Redshift パフォーマンスチューニングテクニックと最新アップデート
Amazon Redshift パフォーマンスチューニングテクニックと最新アップデートAmazon Redshift パフォーマンスチューニングテクニックと最新アップデート
Amazon Redshift パフォーマンスチューニングテクニックと最新アップデート
 
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
 
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
 
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
 
データ分析基盤を支えるエンジニアリング
データ分析基盤を支えるエンジニアリングデータ分析基盤を支えるエンジニアリング
データ分析基盤を支えるエンジニアリング
 
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #1320210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
 
イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)
 
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
 
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
 
マルチテナントのアプリケーション実装〜実践編〜
マルチテナントのアプリケーション実装〜実践編〜マルチテナントのアプリケーション実装〜実践編〜
マルチテナントのアプリケーション実装〜実践編〜
 
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
 
なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?
 
RLSを用いたマルチテナント実装 for Django
RLSを用いたマルチテナント実装 for DjangoRLSを用いたマルチテナント実装 for Django
RLSを用いたマルチテナント実装 for Django
 

Mehr von 株式会社オプト 仙台ラボラトリ

フレームワークも使っていないWebアプリをLaravel+PWAでモバイルアプリっぽくしてみちゃう
フレームワークも使っていないWebアプリをLaravel+PWAでモバイルアプリっぽくしてみちゃうフレームワークも使っていないWebアプリをLaravel+PWAでモバイルアプリっぽくしてみちゃう
フレームワークも使っていないWebアプリをLaravel+PWAでモバイルアプリっぽくしてみちゃう株式会社オプト 仙台ラボラトリ
 
RPA(ロボティック・プロセ ス・オートメーション) 仮想労働者の雇い方
RPA(ロボティック・プロセ ス・オートメーション) 仮想労働者の雇い方RPA(ロボティック・プロセ ス・オートメーション) 仮想労働者の雇い方
RPA(ロボティック・プロセ ス・オートメーション) 仮想労働者の雇い方株式会社オプト 仙台ラボラトリ
 

Mehr von 株式会社オプト 仙台ラボラトリ (11)

クラウド入門(AWS編)
クラウド入門(AWS編)クラウド入門(AWS編)
クラウド入門(AWS編)
 
失敗から学ぶAWSの監視
失敗から学ぶAWSの監視失敗から学ぶAWSの監視
失敗から学ぶAWSの監視
 
ログについて改めて考えてみた
ログについて改めて考えてみたログについて改めて考えてみた
ログについて改めて考えてみた
 
フレームワークも使っていないWebアプリをLaravel+PWAでモバイルアプリっぽくしてみちゃう
フレームワークも使っていないWebアプリをLaravel+PWAでモバイルアプリっぽくしてみちゃうフレームワークも使っていないWebアプリをLaravel+PWAでモバイルアプリっぽくしてみちゃう
フレームワークも使っていないWebアプリをLaravel+PWAでモバイルアプリっぽくしてみちゃう
 
RPAって何、どんなことできるの
RPAって何、どんなことできるのRPAって何、どんなことできるの
RPAって何、どんなことできるの
 
業務の自動化をはじめよう!!
業務の自動化をはじめよう!!業務の自動化をはじめよう!!
業務の自動化をはじめよう!!
 
RPA(ロボティック・プロセ ス・オートメーション) 仮想労働者の雇い方
RPA(ロボティック・プロセ ス・オートメーション) 仮想労働者の雇い方RPA(ロボティック・プロセ ス・オートメーション) 仮想労働者の雇い方
RPA(ロボティック・プロセ ス・オートメーション) 仮想労働者の雇い方
 
データマート対応した話
データマート対応した話データマート対応した話
データマート対応した話
 
ビッグデータ・データマートとは
ビッグデータ・データマートとはビッグデータ・データマートとは
ビッグデータ・データマートとは
 
ビッグデータとデータマート
ビッグデータとデータマートビッグデータとデータマート
ビッグデータとデータマート
 
一歩前に進める Web開発のスパイス(仙台Geek★Night #1)
一歩前に進めるWeb開発のスパイス(仙台Geek★Night #1)一歩前に進めるWeb開発のスパイス(仙台Geek★Night #1)
一歩前に進める Web開発のスパイス(仙台Geek★Night #1)
 

各種データベースの特徴とパフォーマンス比較

  • 1. © Opt, Inc. All Rights Reserved. 各種データベースの特徴と パフォーマンス比較 株式会社オプト 仙台テクノロジー開発部 第2回タガヤス登壇資料 
  • 2. © Opt, Inc. All Rights Reserved. 自己紹介 名前:堀内依子 所属:株式会社オプト  仙台テクノロジー開発部 入社:2016年 一番好きなお土産: 南部せんべい
  • 3. © Opt, Inc. All Rights Reserved. データベースって 色々ありますよね
  • 4. © Opt, Inc. All Rights Reserved. データベース ● Oracle ● AWS RDS ○ MySQL ○ PostgreSQL ● TreasureData ● Redshift
  • 5. © Opt, Inc. All Rights Reserved. オプト仙台ラボでは 目的別大量データ を取り扱う
  • 6. © Opt, Inc. All Rights Reserved. 特定のレコードを取り出す レコード集計をする
  • 7. © Opt, Inc. All Rights Reserved. DWH(データウェアハウス)向 けのデータストア & 列指向 Redshiftを採用しました
  • 8. © Opt, Inc. All Rights Reserved. Redshift AWS(Amazonのクラウドサービス) で提供されているDWH構築向け大規模 データ解析システム
  • 9. © Opt, Inc. All Rights Reserved. 列指向のデータベース ってなに?
  • 10. © Opt, Inc. All Rights Reserved. 行指向のデータベース 列指向のデータベース
  • 11. © Opt, Inc. All Rights Reserved. 行指向データベース ● データの持ち方 ○ データを行で扱う
  • 12. © Opt, Inc. All Rights Reserved. 行指向データベース ● データの持ち方 ○ データを行で扱う ● 例えば… ○ Oracle ○ MySQL
  • 13. © Opt, Inc. All Rights Reserved. 列指向データベース カラム型データベース カラムストア型データベース カラムナデータベース ● データの持ち方 ○ データを列で扱う
  • 14. © Opt, Inc. All Rights Reserved. 列指向データベース ● データの持ち方 ○ データを列で扱う ● 例えば… ○ Cassandra ○ Redshift カラム型データベース カラムストア型データベース カラムナデータベース
  • 15. © Opt, Inc. All Rights Reserved. でも、つまり… 行指向・列指向 どっちがいいの?
  • 16. © Opt, Inc. All Rights Reserved. 学生のテストの点数テーブル No 氏名 フリガナ 性別 生年月日 点数 1 板橋範久 イタバシノリヒサ 男 2001/08/19 94 2 猪俣清治 イノマタセイジ 男 2001/09/13 41 3 福島莉乃 フクシマリノ 女 1998/07/05 46 4 碓井桃歌 ウスイモモカ 女 2004/10/29 63 5 木田和島 キダワジマ 男 2006/11/01 60
  • 17. © Opt, Inc. All Rights Reserved. No 氏名 フリガナ 性別 生年月日 点数 1 板橋範久 イタバシノリヒサ 男 2001/08/19 94 2 猪俣清治 イノマタセイジ 男 2001/09/13 41 3 福島莉乃 フクシマリノ 女 1998/07/05 46 4 碓井桃歌 ウスイモモカ 女 2004/10/29 63 5 木田和島 キダワジマ 男 2006/11/01 60 行指向データベース
  • 18. © Opt, Inc. All Rights Reserved. No 氏名 フリガナ 性別 生年月日 点数 1 板橋範久 イタバシノリヒサ 男 2001/08/19 94 2 猪俣清治 イノマタセイジ 男 2001/09/13 41 3 福島莉乃 フクシマリノ 女 1998/07/05 46 4 碓井桃歌 ウスイモモカ 女 2004/10/29 63 5 木田和島 キダワジマ 男 2006/11/01 60 行指向データベース データの塊は行!
  • 19. © Opt, Inc. All Rights Reserved. No 氏名 フリガナ 性別 生年月日 点数 1 板橋範久 イタバシノリヒサ 男 2001/08/19 94 2 猪俣清治 イノマタセイジ 男 2001/09/13 41 3 福島莉乃 フクシマリノ 女 1998/07/05 46 4 碓井桃歌 ウスイモモカ 女 2004/10/29 63 5 木田和島 キダワジマ 男 2006/11/01 60 列指向データベース
  • 20. © Opt, Inc. All Rights Reserved. No 氏名 フリガナ 性別 生年月日 点数 1 板橋範久 イタバシノリヒサ 男 2001/08/19 94 2 猪俣清治 イノマタセイジ 男 2001/09/13 41 3 福島莉乃 フクシマリノ 女 1998/07/05 46 4 碓井桃歌 ウスイモモカ 女 2004/10/29 63 5 木田和島 キダワジマ 男 2006/11/01 60 列指向データベース データの塊は列!
  • 21. © Opt, Inc. All Rights Reserved. ① レコードを追加するとき
  • 22. © Opt, Inc. All Rights Reserved. 学生を一人増やしたい
  • 23. © Opt, Inc. All Rights Reserved. INSERT INTO 学生テーブル VALUES (No,氏名,フリガナ,性 別,生年月日,点数);
  • 24. © Opt, Inc. All Rights Reserved. No 氏名 フリガナ 性別 生年月日 点数 1 板橋範久 イタバシノリヒサ 男 2001/08/19 94 2 猪俣清治 イノマタセイジ 男 2001/09/13 41 3 福島莉乃 フクシマリノ 女 1998/07/05 46 4 碓井桃歌 ウスイモモカ 女 2004/10/29 63 5 木田和島 キダワジマ 男 2006/11/01 60 行指向データベース 6 江田幸雄 エダサチオ 男 2004/11/04 55
  • 25. © Opt, Inc. All Rights Reserved. No 氏名 フリガナ 性別 生年月日 点数 1 板橋範久 イタバシノリヒサ 男 2001/08/19 94 2 猪俣清治 イノマタセイジ 男 2001/09/13 41 3 福島莉乃 フクシマリノ 女 1998/07/05 46 4 碓井桃歌 ウスイモモカ 女 2004/10/29 63 5 木田和島 キダワジマ 男 2006/11/01 60 行指向データベース 6 江田幸雄 エダサチオ 男 2004/11/04 55
  • 26. © Opt, Inc. All Rights Reserved. No 氏名 フリガナ 性別 生年月日 点数 1 板橋範久 イタバシノリヒサ 男 2001/08/19 94 2 猪俣清治 イノマタセイジ 男 2001/09/13 41 3 福島莉乃 フクシマリノ 女 1998/07/05 46 4 碓井桃歌 ウスイモモカ 女 2004/10/29 63 5 木田和島 キダワジマ 男 2006/11/01 60 行指向データベース 6 江田幸雄 エダサチオ 男 2004/11/04 55
  • 27. © Opt, Inc. All Rights Reserved. No 氏名 フリガナ 性別 生年月日 点数 1 板橋範久 イタバシノリヒサ 男 2001/08/19 94 2 猪俣清治 イノマタセイジ 男 2001/09/13 41 3 福島莉乃 フクシマリノ 女 1998/07/05 46 4 碓井桃歌 ウスイモモカ 女 2004/10/29 63 5 木田和島 キダワジマ 男 2006/11/01 60 列指向データベース 6 江田幸雄 エダサチオ 男 2004/11/04 55
  • 28. © Opt, Inc. All Rights Reserved. No 氏名 フリガナ 性別 生年月日 点数 1 板橋範久 イタバシノリヒサ 男 2001/08/19 94 2 猪俣清治 イノマタセイジ 男 2001/09/13 41 3 福島莉乃 フクシマリノ 女 1998/07/05 46 4 碓井桃歌 ウスイモモカ 女 2004/10/29 63 5 木田和島 キダワジマ 男 2006/11/01 60 列指向データベース 6 江田幸雄 エダサチオ 男 2004/11/04 55
  • 29. © Opt, Inc. All Rights Reserved. No 氏名 フリガナ 性別 生年月日 点数 1 板橋範久 イタバシノリヒサ 男 2001/08/19 94 2 猪俣清治 イノマタセイジ 男 2001/09/13 41 3 福島莉乃 フクシマリノ 女 1998/07/05 46 4 碓井桃歌 ウスイモモカ 女 2004/10/29 63 5 木田和島 キダワジマ 男 2006/11/01 60 列指向データベース 6 江田幸雄 エダサチオ 男 2004/11/04 55
  • 30. © Opt, Inc. All Rights Reserved. No 氏名 フリガナ 性別 生年月日 点数 1 板橋範久 イタバシノリヒサ 男 2001/08/19 94 2 猪俣清治 イノマタセイジ 男 2001/09/13 41 3 福島莉乃 フクシマリノ 女 1998/07/05 46 4 碓井桃歌 ウスイモモカ 女 2004/10/29 63 5 木田和島 キダワジマ 男 2006/11/01 60 列指向データベース 6 エダサチオ 男 2004/11/04 55 江田幸雄
  • 31. © Opt, Inc. All Rights Reserved. No 氏名 フリガナ 性別 生年月日 点数 1 板橋範久 イタバシノリヒサ 男 2001/08/19 94 2 猪俣清治 イノマタセイジ 男 2001/09/13 41 3 福島莉乃 フクシマリノ 女 1998/07/05 46 4 碓井桃歌 ウスイモモカ 女 2004/10/29 63 5 木田和島 キダワジマ 男 2006/11/01 60 列指向データベース 6 男 2004/11/04 55 江田幸雄 エダサチオ
  • 32. © Opt, Inc. All Rights Reserved. No 氏名 フリガナ 性別 生年月日 点数 1 板橋範久 イタバシノリヒサ 男 2001/08/19 94 2 猪俣清治 イノマタセイジ 男 2001/09/13 41 3 福島莉乃 フクシマリノ 女 1998/07/05 46 4 碓井桃歌 ウスイモモカ 女 2004/10/29 63 5 木田和島 キダワジマ 男 2006/11/01 60 列指向データベース 6 2004/11/04 55 江田幸雄 エダサチオ 男
  • 33. © Opt, Inc. All Rights Reserved. 2004/11/04 No 氏名 フリガナ 性別 生年月日 点数 1 板橋範久 イタバシノリヒサ 男 2001/08/19 94 2 猪俣清治 イノマタセイジ 男 2001/09/13 41 3 福島莉乃 フクシマリノ 女 1998/07/05 46 4 碓井桃歌 ウスイモモカ 女 2004/10/29 63 5 木田和島 キダワジマ 男 2006/11/01 60 列指向データベース 6 55 江田幸雄 エダサチオ 男
  • 34. © Opt, Inc. All Rights Reserved. No 氏名 フリガナ 性別 生年月日 点数 1 板橋範久 イタバシノリヒサ 男 2001/08/19 94 2 猪俣清治 イノマタセイジ 男 2001/09/13 41 3 福島莉乃 フクシマリノ 女 1998/07/05 46 4 碓井桃歌 ウスイモモカ 女 2004/10/29 63 5 木田和島 キダワジマ 男 2006/11/01 60 列指向データベース 6 江田幸雄 エダサチオ 男 2004/11/04 55
  • 35. © Opt, Inc. All Rights Reserved. INSERTは 行指向の方が速い
  • 36. © Opt, Inc. All Rights Reserved. ② レコードを集計するとき
  • 37. © Opt, Inc. All Rights Reserved. 性別ごとに 平均点を出したい
  • 38. © Opt, Inc. All Rights Reserved. SELECT 性別,AVG(点数) FROM 学生テーブル GROUP BY 性別
  • 39. © Opt, Inc. All Rights Reserved. No 氏名 フリガナ 性別 生年月日 点数 1 板橋範久 イタバシノリヒサ 男 2001/08/19 94 2 猪俣清治 イノマタセイジ 男 2001/09/13 41 3 福島莉乃 フクシマリノ 女 1998/07/05 46 4 碓井桃歌 ウスイモモカ 女 2004/10/29 63 5 木田和島 キダワジマ 男 2006/11/01 60 行指向データベース
  • 40. © Opt, Inc. All Rights Reserved. No 氏名 フリガナ 性別 生年月日 点数 1 板橋範久 イタバシノリヒサ 男 2001/08/19 94 2 猪俣清治 イノマタセイジ 男 2001/09/13 41 3 福島莉乃 フクシマリノ 女 1998/07/05 46 4 碓井桃歌 ウスイモモカ 女 2004/10/29 63 5 木田和島 キダワジマ 男 2006/11/01 60 行指向データベース
  • 41. © Opt, Inc. All Rights Reserved. No 氏名 フリガナ 性別 生年月日 点数 1 板橋範久 イタバシノリヒサ 男 2001/08/19 94 2 猪俣清治 イノマタセイジ 男 2001/09/13 41 3 福島莉乃 フクシマリノ 女 1998/07/05 46 4 碓井桃歌 ウスイモモカ 女 2004/10/29 63 5 木田和島 キダワジマ 男 2006/11/01 60 行指向データベース 全カラムを走査して 性別列と点数列を使う
  • 42. © Opt, Inc. All Rights Reserved. No 氏名 フリガナ 性別 生年月日 点数 1 板橋範久 イタバシノリヒサ 男 2001/08/19 94 2 猪俣清治 イノマタセイジ 男 2001/09/13 41 3 福島莉乃 フクシマリノ 女 1998/07/05 46 4 碓井桃歌 ウスイモモカ 女 2004/10/29 63 5 木田和島 キダワジマ 男 2006/11/01 60 列指向データベース
  • 43. © Opt, Inc. All Rights Reserved. 性別 点数 男 94 男 41 女 46 女 63 男 60 列指向データベース
  • 44. © Opt, Inc. All Rights Reserved. 性別 点数 男 94 男 41 女 46 女 63 男 60 列指向データベース 必要な列だけを走査 捜索するデータ量を削減
  • 45. © Opt, Inc. All Rights Reserved. 集計は列指向の方が速い
  • 46. © Opt, Inc. All Rights Reserved. つまり… 行指向・列指向 どっちもよい!
  • 47. © Opt, Inc. All Rights Reserved. 行指向データベース ● データの持ち方 ○ データを行で扱う ● 例えば… ○ Oracle ○ MySQL
  • 48. © Opt, Inc. All Rights Reserved. 列指向データベース ● データの持ち方 ○ データを列で扱う ● 例えば… ○ Cassandra ○ Redshift
  • 49. © Opt, Inc. All Rights Reserved. 列 行 トランザクション処理に強い 行単位で処理するUPDATE/INSERTが 速い 特定のカラムしか利用しない SELECT/集計が得意
  • 50. © Opt, Inc. All Rights Reserved. 各種データベースの特徴
  • 51. © Opt, Inc. All Rights Reserved. データベース ● Oracle ● AWS RDS ○ MySQL ○ PostgreSQL ● TreasureData ● Redshift
  • 52. © Opt, Inc. All Rights Reserved. データベース ● Oracle ● AWS RDS ○ MySQL ○ PostgreSQL ● TreasureData ● Redshift オプト仙台では これらのDBを活 用しています
  • 53. © Opt, Inc. All Rights Reserved. Oracle ● 有償のみ ● 行指向 ● 分散処理 ※デフォルト設定の場合
  • 54. © Opt, Inc. All Rights Reserved. Oracle シェアNo.1 ※出典:https://www.marineroad.com/staff-blog/17102.html 自動でチューニングしてくれるので、 チューニングなしでもそこそこのパ フォーマンスが期待できる
  • 55. © Opt, Inc. All Rights Reserved. MySQL ● オープンソース 無料 ● 行指向 ● 分散処理 ※デフォルト設定の場合
  • 56. © Opt, Inc. All Rights Reserved. MySQL シェアNo.2 ※出典:https://www.marineroad.com/staff-blog/17102.html ユーザーが多くコミュニティが活発。 調べると初歩的なものからたくさん情 報が出てくる
  • 57. © Opt, Inc. All Rights Reserved. PostgreSQL ● オープンソース 無料 ● 行指向 ● 分散処理  ※デフォルト設定の場合
  • 58. © Opt, Inc. All Rights Reserved. PostgreSQL シェアNo.4 ※出典:https://www.marineroad.com/staff-blog/17102.html PostGISと言う位置情報を扱う拡張機能 が有名。位置情報アプリに便利。 チューニング次第で高速化できる!
  • 59. © Opt, Inc. All Rights Reserved. TREASURE DATA ● 有償(機能制限版の無償あり) ○ 月額料金 ● 列指向 ● 分散処理  ● アーキテクチャはHadoop ※デフォルト設定の場合
  • 60. © Opt, Inc. All Rights Reserved. TREASURE DATA トレジャーデータより提供されているクラウド上の DMS(データマネジメントサービス)。 ※オプトでは「トレジャーデータサービス by IDCF」を活用しています。 テーブル定義なしでデータの保存が可能。パーティ ションのため時刻のカラムが必須 DELETE・更新はできない。 partial_delete:時刻カラムで期間指定削除は可
  • 61. © Opt, Inc. All Rights Reserved. Redshift ● 有償のみ ○ 従量課金 ● 列指向 ● 分散処理  ● アーキテクチャはActian Matrix ※デフォルト設定の場合
  • 62. © Opt, Inc. All Rights Reserved. Redshift AWSで提供されているDWH構築向け 大規模データ解析システム。 スケーラブル、クラスターサイズ変更可。 Amazon S3との連携が便利。 COPYコマンドを利用し高速取り込みが可能。 ※Amazon S3:Simple Storage Service データ保存取得可能なオブジェクトストレージ
  • 63. © Opt, Inc. All Rights Reserved. 比較 MySQL PostgeSQL TreasureData Redshift アーキテ クチャ MySQL PostgreSQL Hadoop Actian Matrix 指向 行 行 列 列 分散 ❌ ❌ ○ ○ 料金 無償あり 無償あり 基本有償 有償のみ ※デフォルト設定の場合
  • 64. © Opt, Inc. All Rights Reserved. パフォーマンス比較
  • 65. © Opt, Inc. All Rights Reserved. データベース ● Oracle ● AWS RDS ○ MySQL ○ PostgreSQL ● TreasureData ● Redshift オプト仙台では これらのDBを活 用しています なので…
  • 66. © Opt, Inc. All Rights Reserved. データベース ● Oracle ● AWS RDS ○ MySQL ○ PostgreSQL ● TreasureData ● Redshift これらのDBのパ フォーマンス検 証しました!
  • 67. © Opt, Inc. All Rights Reserved. データ偏り・カラムの数や型など でパフォーマンスは大きく変わる ので、数値は一例としてご覧くだ さい。
  • 68. © Opt, Inc. All Rights Reserved. DB名 プラン CPU RAM (GiB) MySQL db.r3.large 2 15.25 PostgreSQL db.r3.large 2 15.25 TreasureData プランS 4 -- Redshift dc1.large 2 15 比較環境
  • 69. © Opt, Inc. All Rights Reserved. 検証データ量 DB名 1万件 100万件 1億件 TresureData 12M 1,243M 124,357M Redshift 108M 206M 10,004M PostgreSQL 6M 1,113M 207,497M MySQL 16M 1,206M 115,307M
  • 70. © Opt, Inc. All Rights Reserved. 検証SQL SELECT SELECT date,COUNT(*),SUM(数値) FROM table GROUP BY date SELECT UNION SELECT SELECT date,COUNT(*),SUM(数値) FROM table GROUP BY date UNION ALL SELECT date,COUNT(*),SUM(数値) FROM table2 GROUP BY date INSERT INSERT INTO table2 SELECT * FROM table ADD COLUMN ALTER TABLE table ADD COLUMN additional VARCHAR(100)
  • 71. © Opt, Inc. All Rights Reserved. パフォーマンス比較 DB名 SELECT UNION INSERT ADD COLUMN 1万 100万 1億 1万 100万 1億 1万 100万 1億 1億 MySQL 0.06s 1.5s 55.5 m 0.08s 2.7s 1.8h 3s 1.1m 2.2h 3.3h PostgreSQL 0.06s 0.7s 1.2h 0.07s 0.9s 3.5h 0.1s 0.9s 6.2h 0.2s TREASURE DATA 2s 2s 8s 2s 3s 11s 8s 2.5m 7.3h -- Redshift 0.2s 0.3s 0.4s 0.3s 0.4s 0.7s 4.5s 17.75 s 2.5m 2s 3回試行平均値
  • 72. © Opt, Inc. All Rights Reserved. パフォーマンス比較 DB名 SELECT 1万 100万 1億 MySQL 0.06s 1.5s 55.5m PostgreSQL 0.06s 0.7s 1.2h TREASURE DATA 2s 2s 8s Redshift 0.2s 0.3s 0.4s
  • 73. © Opt, Inc. All Rights Reserved. パフォーマンス比較 DB名 SELECT 1万 100万 1億 MySQL 0.06s 1.5s 55.5m PostgreSQL 0.06s 0.7s 1.2h TREASURE DATA 2s 2s 8s Redshift 0.2s 0.3s 0.4s 集計クエリだけど 列指向のRedshiftより 行指向のPostgreSQL が速い
  • 74. © Opt, Inc. All Rights Reserved. パフォーマンス比較 DB名 SELECT 1万 100万 1億 MySQL 0.06s 1.5s 55.5m PostgreSQL 0.06s 0.7s 1.2h TREASURE DATA 2s 2s 8s Redshift 0.2s 0.3s 0.4s Redshiftはクエリを コンパイルするので オーバーヘッドがある
  • 75. © Opt, Inc. All Rights Reserved. パフォーマンス比較 DB名 SELECT 1万 100万 1億 MySQL 0.06s 1.5s 55.5m PostgreSQL 0.06s 0.7s 1.2h TREASURE DATA 2s 2s 8s Redshift 0.2s 0.3s 0.4s データ量の増加で爆 発的に処理時間が増 えている!
  • 76. © Opt, Inc. All Rights Reserved. パフォーマンス比較 DB名 SELECT 1万 100万 1億 MySQL 0.06s 1.5s 55.5m PostgreSQL 0.06s 0.7s 1.2h TREASURE DATA 2s 2s 8s Redshift 0.2s 0.3s 0.4sデータ量:10,000倍 処理速度:72,857倍
  • 77. © Opt, Inc. All Rights Reserved. パフォーマンス比較 DB名 SELECT 1万 100万 1億 MySQL 0.06s 1.5s 55.5m PostgreSQL 0.06s 0.7s 1.2h TREASURE DATA 2s 2s 8s Redshift 0.2s 0.3s 0.4s Redshiftはデータ量 に対して速度劣化が 少ない
  • 78. © Opt, Inc. All Rights Reserved. パフォーマンス比較 DB名 SELECT 1万 100万 1億 MySQL 0.06s 1.5s 55.5m PostgreSQL 0.06s 0.7s 1.2h TREASURE DATA 2s 2s 8s Redshift 0.2s 0.3s 0.4s データ量:10,000倍 処理速度:2倍
  • 79. © Opt, Inc. All Rights Reserved. パフォーマンス比較 DB名 UNION 1万 100万 1億 MySQL 0.08s 2.7s 1.8h PostgreSQL 0.07s 0.9s 3.5h TREASURE DATA 2s 3s 11s Redshift 0.3s 0.4s 0.7s 3回試行平均値
  • 80. © Opt, Inc. All Rights Reserved. パフォーマンス比較 DB名 UNION 1万 100万 1億 MySQL 0.08s 2.7s 1.8h PostgreSQL 0.07s 0.9s 3.5h TREASURE DATA 2s 3s 11s Redshift 0.3s 0.4s 0.7s 処理時間の増加はよ り顕著
  • 81. © Opt, Inc. All Rights Reserved. パフォーマンス比較 DB名 INSERT 1万 100万 1億 MySQL 3s 1.1m 2.2h PostgreSQL 0.1s 0.9s 6.2h TREASURE DATA 8s 2.5m 7.3h Redshift 4.5s 17.75s 2.5m 3回試行平均値
  • 82. © Opt, Inc. All Rights Reserved. パフォーマンス比較 DB名 INSERT 1万 100万 1億 MySQL 3s 1.1m 2.2h PostgreSQL 0.1s 0.9s 6.2h TREASURE DATA 8s 2.5m 7.3h Redshift 4.5s 17.75s 2.5m 3回試行平均値 Redshiftでも それなりの 処理時間が かかっている
  • 83. © Opt, Inc. All Rights Reserved. パフォーマンス比較 DB名 ADD COLUMN 1億 MySQL 3.3h PostgreSQL 0.2s TREASURE DATA -- Redshift 2s 3回試行平均値
  • 84. © Opt, Inc. All Rights Reserved. パフォーマンス比較 DB名 ADD COLUMN 1億 MySQL 3.3h PostgreSQL 0.2s TREASURE DATA -- Redshift 2s 3回試行平均値 MySQLは カラム追加は遅い
  • 85. © Opt, Inc. All Rights Reserved. パフォーマンス比較 DB名 ADD COLUMN 1億 MySQL 3.3h PostgreSQL 0.2s TREASURE DATA -- Redshift 2s 3回試行平均値 PostgreSQLは デフォルト値を 設定していない 場合、テーブル 定義への追加だ けなので速い
  • 86. © Opt, Inc. All Rights Reserved. パフォーマンス比較 DB名 ADD COLUMN 1億 MySQL 3.3h PostgreSQL 0.2s TREASURE DATA -- Redshift 2s 3回試行平均値 Redshiftも PostgreSQLと 同様に速い。 がやはりコンパ イルのオーバー ヘッドがある。
  • 87. © Opt, Inc. All Rights Reserved. まとめ 今回の検証では、 以上の結果が得られました
  • 88. © Opt, Inc. All Rights Reserved. まとめ そもそもこのように大きなデータを 一つのテーブルに入れて集計するのは、 RDBは適切でないという前提があります 決してMySQLやPostgreSQLの 性能が悪い訳ではありません
  • 89. © Opt, Inc. All Rights Reserved. まとめ Redshiftは大きなデータの 単一テーブルを扱うことが得意です。 このような適性からオプト仙台では、 Redshiftを採用しています。
  • 90. © Opt, Inc. All Rights Reserved. アプリケーションによって 適切なDBを!
  • 91. © Opt, Inc. All Rights Reserved. ご清聴 ありがとうございました