Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
© 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...
© Opt, Inc. All Rights Reserved.
No 氏名 フリガナ 性別 生年月日 点数
1 板橋範久 イタバシノリヒサ 男 2001/08/19 94
2 猪俣清治 イノマタセイジ 男 2001/09/13 41
3 福島...
© Opt, Inc. All Rights Reserved.
No 氏名 フリガナ 性別 生年月日 点数
1 板橋範久 イタバシノリヒサ 男 2001/08/19 94
2 猪俣清治 イノマタセイジ 男 2001/09/13 41
3 福島...
© Opt, Inc. All Rights Reserved.
No 氏名 フリガナ 性別 生年月日 点数
1 板橋範久 イタバシノリヒサ 男 2001/08/19 94
2 猪俣清治 イノマタセイジ 男 2001/09/13 41
3 福島...
© Opt, Inc. All Rights Reserved.
No 氏名 フリガナ 性別 生年月日 点数
1 板橋範久 イタバシノリヒサ 男 2001/08/19 94
2 猪俣清治 イノマタセイジ 男 2001/09/13 41
3 福島...
© 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 福島...
© Opt, Inc. All Rights Reserved.
No 氏名 フリガナ 性別 生年月日 点数
1 板橋範久 イタバシノリヒサ 男 2001/08/19 94
2 猪俣清治 イノマタセイジ 男 2001/09/13 41
3 福島...
© Opt, Inc. All Rights Reserved.
No 氏名 フリガナ 性別 生年月日 点数
1 板橋範久 イタバシノリヒサ 男 2001/08/19 94
2 猪俣清治 イノマタセイジ 男 2001/09/13 41
3 福島...
© Opt, Inc. All Rights Reserved.
No 氏名 フリガナ 性別 生年月日 点数
1 板橋範久 イタバシノリヒサ 男 2001/08/19 94
2 猪俣清治 イノマタセイジ 男 2001/09/13 41
3 福島...
© Opt, Inc. All Rights Reserved.
No 氏名 フリガナ 性別 生年月日 点数
1 板橋範久 イタバシノリヒサ 男 2001/08/19 94
2 猪俣清治 イノマタセイジ 男 2001/09/13 41
3 福島...
© Opt, Inc. All Rights Reserved.
No 氏名 フリガナ 性別 生年月日 点数
1 板橋範久 イタバシノリヒサ 男 2001/08/19 94
2 猪俣清治 イノマタセイジ 男 2001/09/13 41
3 福島...
© Opt, Inc. All Rights Reserved.
No 氏名 フリガナ 性別 生年月日 点数
1 板橋範久 イタバシノリヒサ 男 2001/08/19 94
2 猪俣清治 イノマタセイジ 男 2001/09/13 41
3 福島...
© Opt, Inc. All Rights Reserved.
No 氏名 フリガナ 性別 生年月日 点数
1 板橋範久 イタバシノリヒサ 男 2001/08/19 94
2 猪俣清治 イノマタセイジ 男 2001/09/13 41
3 福島...
© Opt, Inc. All Rights Reserved.
No 氏名 フリガナ 性別 生年月日 点数
1 板橋範久 イタバシノリヒサ 男 2001/08/19 94
2 猪俣清治 イノマタセイジ 男 2001/09/13 41
3 福島...
© Opt, Inc. All Rights Reserved.
2004/11/04
No 氏名 フリガナ 性別 生年月日 点数
1 板橋範久 イタバシノリヒサ 男 2001/08/19 94
2 猪俣清治 イノマタセイジ 男 2001/09...
© Opt, Inc. All Rights Reserved.
No 氏名 フリガナ 性別 生年月日 点数
1 板橋範久 イタバシノリヒサ 男 2001/08/19 94
2 猪俣清治 イノマタセイジ 男 2001/09/13 41
3 福島...
© 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 福島...
© Opt, Inc. All Rights Reserved.
No 氏名 フリガナ 性別 生年月日 点数
1 板橋範久 イタバシノリヒサ 男 2001/08/19 94
2 猪俣清治 イノマタセイジ 男 2001/09/13 41
3 福島...
© Opt, Inc. All Rights Reserved.
No 氏名 フリガナ 性別 生年月日 点数
1 板橋範久 イタバシノリヒサ 男 2001/08/19 94
2 猪俣清治 イノマタセイジ 男 2001/09/13 41
3 福島...
© Opt, Inc. All Rights Reserved.
No 氏名 フリガナ 性別 生年月日 点数
1 板橋範久 イタバシノリヒサ 男 2001/08/19 94
2 猪俣清治 イノマタセイジ 男 2001/09/13 41
3 福島...
© 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」を活用...
© Opt, Inc. All Rights Reserved.
Redshift
● 有償のみ
○ 従量課金
● 列指向
● 分散処理 
● アーキテクチャはActian Matrix
※デフォルト設定の場合
© Opt, Inc. All Rights Reserved.
Redshift
AWSで提供されているDWH構築向け
大規模データ解析システム。
スケーラブル、クラスターサイズ変更可。
Amazon S3との連携が便利。
COPYコマンドを...
© 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
TreasureDa...
© Opt, Inc. All Rights Reserved.
検証データ量
DB名 1万件 100万件 1億件
TresureData 12M 1,243M 124,357M
Redshift 108M 206M 10,004M
Postg...
© Opt, Inc. All Rights Reserved.
検証SQL
SELECT SELECT date,COUNT(*),SUM(数値) FROM table GROUP BY date
SELECT
UNION
SELECT
SE...
© Opt, Inc. All Rights Reserved.
パフォーマンス比較
DB名 SELECT UNION INSERT ADD
COLUMN
1万 100万 1億 1万 100万 1億 1万 100万 1億 1億
MySQL 0....
© Opt, Inc. All Rights Reserved.
パフォーマンス比較
DB名 SELECT
1万 100万 1億
MySQL 0.06s 1.5s 55.5m
PostgreSQL 0.06s 0.7s 1.2h
TREASUR...
© Opt, Inc. All Rights Reserved.
パフォーマンス比較
DB名 SELECT
1万 100万 1億
MySQL 0.06s 1.5s 55.5m
PostgreSQL 0.06s 0.7s 1.2h
TREASUR...
© Opt, Inc. All Rights Reserved.
パフォーマンス比較
DB名 SELECT
1万 100万 1億
MySQL 0.06s 1.5s 55.5m
PostgreSQL 0.06s 0.7s 1.2h
TREASUR...
© Opt, Inc. All Rights Reserved.
パフォーマンス比較
DB名 SELECT
1万 100万 1億
MySQL 0.06s 1.5s 55.5m
PostgreSQL 0.06s 0.7s 1.2h
TREASUR...
© Opt, Inc. All Rights Reserved.
パフォーマンス比較
DB名 SELECT
1万 100万 1億
MySQL 0.06s 1.5s 55.5m
PostgreSQL 0.06s 0.7s 1.2h
TREASUR...
© Opt, Inc. All Rights Reserved.
パフォーマンス比較
DB名 SELECT
1万 100万 1億
MySQL 0.06s 1.5s 55.5m
PostgreSQL 0.06s 0.7s 1.2h
TREASUR...
© Opt, Inc. All Rights Reserved.
パフォーマンス比較
DB名 SELECT
1万 100万 1億
MySQL 0.06s 1.5s 55.5m
PostgreSQL 0.06s 0.7s 1.2h
TREASUR...
© 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 ...
© 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
...
© Opt, Inc. All Rights Reserved.
パフォーマンス比較
DB名 INSERT
1万 100万 1億
MySQL 3s 1.1m 2.2h
PostgreSQL 0.1s 0.9s 6.2h
TREASURE DAT...
© Opt, Inc. All Rights Reserved.
パフォーマンス比較
DB名 INSERT
1万 100万 1億
MySQL 3s 1.1m 2.2h
PostgreSQL 0.1s 0.9s 6.2h
TREASURE DAT...
© 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回試行平...
© 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回試行平...
© 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.
ご清聴
ありがとうございました
Upcoming SlideShare
Loading in …5
×

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

572 views

Published on

ビッグデータとデータマート【タガヤス その2】登壇資料

Published in: Data & Analytics
  • Be the first to comment

  • Be the first to like this

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

  1. 1. © Opt, Inc. All Rights Reserved. 各種データベースの特徴と パフォーマンス比較 株式会社オプト 仙台テクノロジー開発部 第2回タガヤス登壇資料 
  2. 2. © Opt, Inc. All Rights Reserved. 自己紹介 名前:堀内依子 所属:株式会社オプト  仙台テクノロジー開発部 入社:2016年 一番好きなお土産: 南部せんべい
  3. 3. © Opt, Inc. All Rights Reserved. データベースって 色々ありますよね
  4. 4. © Opt, Inc. All Rights Reserved. データベース ● Oracle ● AWS RDS ○ MySQL ○ PostgreSQL ● TreasureData ● Redshift
  5. 5. © Opt, Inc. All Rights Reserved. オプト仙台ラボでは 目的別大量データ を取り扱う
  6. 6. © Opt, Inc. All Rights Reserved. 特定のレコードを取り出す レコード集計をする
  7. 7. © Opt, Inc. All Rights Reserved. DWH(データウェアハウス)向 けのデータストア & 列指向 Redshiftを採用しました
  8. 8. © Opt, Inc. All Rights Reserved. Redshift AWS(Amazonのクラウドサービス) で提供されているDWH構築向け大規模 データ解析システム
  9. 9. © Opt, Inc. All Rights Reserved. 列指向のデータベース ってなに?
  10. 10. © Opt, Inc. All Rights Reserved. 行指向のデータベース 列指向のデータベース
  11. 11. © Opt, Inc. All Rights Reserved. 行指向データベース ● データの持ち方 ○ データを行で扱う
  12. 12. © Opt, Inc. All Rights Reserved. 行指向データベース ● データの持ち方 ○ データを行で扱う ● 例えば… ○ Oracle ○ MySQL
  13. 13. © Opt, Inc. All Rights Reserved. 列指向データベース カラム型データベース カラムストア型データベース カラムナデータベース ● データの持ち方 ○ データを列で扱う
  14. 14. © Opt, Inc. All Rights Reserved. 列指向データベース ● データの持ち方 ○ データを列で扱う ● 例えば… ○ Cassandra ○ Redshift カラム型データベース カラムストア型データベース カラムナデータベース
  15. 15. © Opt, Inc. All Rights Reserved. でも、つまり… 行指向・列指向 どっちがいいの?
  16. 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. 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. 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. 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. 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. 21. © Opt, Inc. All Rights Reserved. ① レコードを追加するとき
  22. 22. © Opt, Inc. All Rights Reserved. 学生を一人増やしたい
  23. 23. © Opt, Inc. All Rights Reserved. INSERT INTO 学生テーブル VALUES (No,氏名,フリガナ,性 別,生年月日,点数);
  24. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 35. © Opt, Inc. All Rights Reserved. INSERTは 行指向の方が速い
  36. 36. © Opt, Inc. All Rights Reserved. ② レコードを集計するとき
  37. 37. © Opt, Inc. All Rights Reserved. 性別ごとに 平均点を出したい
  38. 38. © Opt, Inc. All Rights Reserved. SELECT 性別,AVG(点数) FROM 学生テーブル GROUP BY 性別
  39. 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. 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. 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. 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. 43. © Opt, Inc. All Rights Reserved. 性別 点数 男 94 男 41 女 46 女 63 男 60 列指向データベース
  44. 44. © Opt, Inc. All Rights Reserved. 性別 点数 男 94 男 41 女 46 女 63 男 60 列指向データベース 必要な列だけを走査 捜索するデータ量を削減
  45. 45. © Opt, Inc. All Rights Reserved. 集計は列指向の方が速い
  46. 46. © Opt, Inc. All Rights Reserved. つまり… 行指向・列指向 どっちもよい!
  47. 47. © Opt, Inc. All Rights Reserved. 行指向データベース ● データの持ち方 ○ データを行で扱う ● 例えば… ○ Oracle ○ MySQL
  48. 48. © Opt, Inc. All Rights Reserved. 列指向データベース ● データの持ち方 ○ データを列で扱う ● 例えば… ○ Cassandra ○ Redshift
  49. 49. © Opt, Inc. All Rights Reserved. 列 行 トランザクション処理に強い 行単位で処理するUPDATE/INSERTが 速い 特定のカラムしか利用しない SELECT/集計が得意
  50. 50. © Opt, Inc. All Rights Reserved. 各種データベースの特徴
  51. 51. © Opt, Inc. All Rights Reserved. データベース ● Oracle ● AWS RDS ○ MySQL ○ PostgreSQL ● TreasureData ● Redshift
  52. 52. © Opt, Inc. All Rights Reserved. データベース ● Oracle ● AWS RDS ○ MySQL ○ PostgreSQL ● TreasureData ● Redshift オプト仙台では これらのDBを活 用しています
  53. 53. © Opt, Inc. All Rights Reserved. Oracle ● 有償のみ ● 行指向 ● 分散処理 ※デフォルト設定の場合
  54. 54. © Opt, Inc. All Rights Reserved. Oracle シェアNo.1 ※出典:https://www.marineroad.com/staff-blog/17102.html 自動でチューニングしてくれるので、 チューニングなしでもそこそこのパ フォーマンスが期待できる
  55. 55. © Opt, Inc. All Rights Reserved. MySQL ● オープンソース 無料 ● 行指向 ● 分散処理 ※デフォルト設定の場合
  56. 56. © Opt, Inc. All Rights Reserved. MySQL シェアNo.2 ※出典:https://www.marineroad.com/staff-blog/17102.html ユーザーが多くコミュニティが活発。 調べると初歩的なものからたくさん情 報が出てくる
  57. 57. © Opt, Inc. All Rights Reserved. PostgreSQL ● オープンソース 無料 ● 行指向 ● 分散処理  ※デフォルト設定の場合
  58. 58. © Opt, Inc. All Rights Reserved. PostgreSQL シェアNo.4 ※出典:https://www.marineroad.com/staff-blog/17102.html PostGISと言う位置情報を扱う拡張機能 が有名。位置情報アプリに便利。 チューニング次第で高速化できる!
  59. 59. © Opt, Inc. All Rights Reserved. TREASURE DATA ● 有償(機能制限版の無償あり) ○ 月額料金 ● 列指向 ● 分散処理  ● アーキテクチャはHadoop ※デフォルト設定の場合
  60. 60. © Opt, Inc. All Rights Reserved. TREASURE DATA トレジャーデータより提供されているクラウド上の DMS(データマネジメントサービス)。 ※オプトでは「トレジャーデータサービス by IDCF」を活用しています。 テーブル定義なしでデータの保存が可能。パーティ ションのため時刻のカラムが必須 DELETE・更新はできない。 partial_delete:時刻カラムで期間指定削除は可
  61. 61. © Opt, Inc. All Rights Reserved. Redshift ● 有償のみ ○ 従量課金 ● 列指向 ● 分散処理  ● アーキテクチャはActian Matrix ※デフォルト設定の場合
  62. 62. © Opt, Inc. All Rights Reserved. Redshift AWSで提供されているDWH構築向け 大規模データ解析システム。 スケーラブル、クラスターサイズ変更可。 Amazon S3との連携が便利。 COPYコマンドを利用し高速取り込みが可能。 ※Amazon S3:Simple Storage Service データ保存取得可能なオブジェクトストレージ
  63. 63. © Opt, Inc. All Rights Reserved. 比較 MySQL PostgeSQL TreasureData Redshift アーキテ クチャ MySQL PostgreSQL Hadoop Actian Matrix 指向 行 行 列 列 分散 ❌ ❌ ○ ○ 料金 無償あり 無償あり 基本有償 有償のみ ※デフォルト設定の場合
  64. 64. © Opt, Inc. All Rights Reserved. パフォーマンス比較
  65. 65. © Opt, Inc. All Rights Reserved. データベース ● Oracle ● AWS RDS ○ MySQL ○ PostgreSQL ● TreasureData ● Redshift オプト仙台では これらのDBを活 用しています なので…
  66. 66. © Opt, Inc. All Rights Reserved. データベース ● Oracle ● AWS RDS ○ MySQL ○ PostgreSQL ● TreasureData ● Redshift これらのDBのパ フォーマンス検 証しました!
  67. 67. © Opt, Inc. All Rights Reserved. データ偏り・カラムの数や型など でパフォーマンスは大きく変わる ので、数値は一例としてご覧くだ さい。
  68. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 83. © Opt, Inc. All Rights Reserved. パフォーマンス比較 DB名 ADD COLUMN 1億 MySQL 3.3h PostgreSQL 0.2s TREASURE DATA -- Redshift 2s 3回試行平均値
  84. 84. © Opt, Inc. All Rights Reserved. パフォーマンス比較 DB名 ADD COLUMN 1億 MySQL 3.3h PostgreSQL 0.2s TREASURE DATA -- Redshift 2s 3回試行平均値 MySQLは カラム追加は遅い
  85. 85. © Opt, Inc. All Rights Reserved. パフォーマンス比較 DB名 ADD COLUMN 1億 MySQL 3.3h PostgreSQL 0.2s TREASURE DATA -- Redshift 2s 3回試行平均値 PostgreSQLは デフォルト値を 設定していない 場合、テーブル 定義への追加だ けなので速い
  86. 86. © Opt, Inc. All Rights Reserved. パフォーマンス比較 DB名 ADD COLUMN 1億 MySQL 3.3h PostgreSQL 0.2s TREASURE DATA -- Redshift 2s 3回試行平均値 Redshiftも PostgreSQLと 同様に速い。 がやはりコンパ イルのオーバー ヘッドがある。
  87. 87. © Opt, Inc. All Rights Reserved. まとめ 今回の検証では、 以上の結果が得られました
  88. 88. © Opt, Inc. All Rights Reserved. まとめ そもそもこのように大きなデータを 一つのテーブルに入れて集計するのは、 RDBは適切でないという前提があります 決してMySQLやPostgreSQLの 性能が悪い訳ではありません
  89. 89. © Opt, Inc. All Rights Reserved. まとめ Redshiftは大きなデータの 単一テーブルを扱うことが得意です。 このような適性からオプト仙台では、 Redshiftを採用しています。
  90. 90. © Opt, Inc. All Rights Reserved. アプリケーションによって 適切なDBを!
  91. 91. © Opt, Inc. All Rights Reserved. ご清聴 ありがとうございました

×