はじめに
AWS Redshiftは、PostgreSQL 8.0.2をベースに作られた列思考DBです。
DWHとして使われることが多く、GCP BigQueryがクエリ課金であるのに対し、AWS Redshiftは時間課金です。そのためRedshiftは、大規模なデータソースに対して高頻度にSQLを実行する場合に、非常にコストを抑えることができる製品です。
一方で、非常に高負荷なSQLが実行されたときに、他のクエリの実行に影響が出たり、はたまたテーブルを定期的にVACUUMしたりと、ある程度のモニタリングや管理が必要になります。
それらのモニタリングを楽にするRedshiftコンソール(Spectrometer)を作ったので、紹介させていただきます。Redshift(赤方偏移)にちなんで、Spectrometer(分光器)という名前です。
機能
- Digest認証
- Redshiftの接続ユーザ/パスワードで認証します
(スーパーユーザ権限が必要です)
- Redshiftの接続ユーザ/パスワードで認証します
- AWS ClowdWatchのメトリクス表示
- CPUUtilization、Percentage Disk Space Usedなど
- Admin View
Admin View | 表示内容 |
---|---|
Query Timelines | 直近の長時間クエリをタイムライン&リスト表示(AWS コンソールのアレに近いもの) |
Schema Tables | スキーマとテーブルのリスト |
Stats Queries | クエリの実行回数グラフ |
WLM Queue state | WLMキューの状態 (STV_WLM_SERVICE_CLASS_STATE) |
Inflight Queries | 実行中のクエリの表示 & キャンセルの実行 |
Slow Queries | スロークエリ一覧 |
Stats Off Tables | 統計情報の古いテーブルのリスト (VACUUM & ANALYZEの実行推奨リスト) |
Vacuum Results | VACUUMの実行一覧 |
Cluster Restart | Redshiftクラスタのリスタート履歴 |
User list | ユーザの名前と直近のクエリ実行回数のリスト表示 |
Error list | エラー一覧(STL_ERROR) |
Load Error list | データロードエラー一覧(STL_LOAD_ERROR) |
※ 2016年12月18時点のものです
セットアップ
こちらのREADMEを参考にセットアップしてください。
Redshiftに接続するスーパーユーザの情報をdatabase.ymlに、
AWS CloudWatchからメトリクスを取得するためにaws.ymlの設定が必要です。
蛇足
実は他にもRedshift Consoleという名前そのままのものがありましたが、リポジトリ所有者のEverythingMeが解散してしまっていることと、1年以上メンテナンスされていない様子だったので1から作り直しました。
Livesense Advent Calendar 2016の19日目の記事でした。