SlideShare a Scribd company logo
1 of 91
Download to read offline
© 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.
ご清聴
ありがとうございました

More Related Content

What's hot

速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)NTT DATA Technology & Innovation
 
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)mosa siru
 
Data platformdesign
Data platformdesignData platformdesign
Data platformdesignRyoma Nagata
 
大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)NTT DATA Technology & Innovation
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)NTT DATA Technology & Innovation
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」Takuto Wada
 
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドAkihiro Suda
 
マルチテナントのアプリケーション実装〜実践編〜
マルチテナントのアプリケーション実装〜実践編〜マルチテナントのアプリケーション実装〜実践編〜
マルチテナントのアプリケーション実装〜実践編〜Yoshiki Nakagawa
 
PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報Masahiko Sawada
 
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)NTT DATA Technology & Innovation
 
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門Akihiro Kuwano
 
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意イミュータブルデータモデルの極意
イミュータブルデータモデルの極意Yoshitaka Kawashima
 
ナレッジグラフとオントロジー
ナレッジグラフとオントロジーナレッジグラフとオントロジー
ナレッジグラフとオントロジーUniversity of Tsukuba
 
Apache Hadoop YARNとマルチテナントにおけるリソース管理
Apache Hadoop YARNとマルチテナントにおけるリソース管理Apache Hadoop YARNとマルチテナントにおけるリソース管理
Apache Hadoop YARNとマルチテナントにおけるリソース管理Cloudera Japan
 
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43Preferred Networks
 
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)NTT DATA Technology & Innovation
 
位置データもPythonで!!!
位置データもPythonで!!!位置データもPythonで!!!
位置データもPythonで!!!hide ogawa
 
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜Preferred Networks
 
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来についてshinjiigarashi
 

What's hot (20)

分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
 
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
 
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
 
Data platformdesign
Data platformdesignData platformdesign
Data platformdesign
 
大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
 
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
 
マルチテナントのアプリケーション実装〜実践編〜
マルチテナントのアプリケーション実装〜実践編〜マルチテナントのアプリケーション実装〜実践編〜
マルチテナントのアプリケーション実装〜実践編〜
 
PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報
 
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
 
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門
 
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
 
ナレッジグラフとオントロジー
ナレッジグラフとオントロジーナレッジグラフとオントロジー
ナレッジグラフとオントロジー
 
Apache Hadoop YARNとマルチテナントにおけるリソース管理
Apache Hadoop YARNとマルチテナントにおけるリソース管理Apache Hadoop YARNとマルチテナントにおけるリソース管理
Apache Hadoop YARNとマルチテナントにおけるリソース管理
 
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43
 
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
位置データもPythonで!!!
位置データもPythonで!!!位置データもPythonで!!!
位置データもPythonで!!!
 
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
 
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
 

More from 株式会社オプト 仙台ラボラトリ

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

More from 株式会社オプト 仙台ラボラトリ (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. ご清聴 ありがとうございました