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
指向 行 行 列 列
分散 ? ? ○ ○
料金 無償あり 無償あり 基本有償 有償のみ
※デフォルト設定の場合
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.
ご清聴
ありがとうございました