【AWS】Amazon Redshift ~ 他DB・サービスとの違い ~

■ はじめに

https://dk521123.hatenablog.com/entry/2020/02/22/002139

が長くなったので分冊。

また、インデックスがサポートされていなかったという基本的なことも
分からなかった自分への戒め的にメモしておく。

目次

【1】一般的なDB との違い
 メモ:インデックスに関するエラー
 補足:分散キー・ソートキーについて
【2】PostgreSQL との違い
【3】Amazon EMR との違い

【1】一般的なDB との違い

* インデックスを使用しない
 ⇒ EXPLAINステートメントで、
  シーケンシャルスキャン(Seq Scan)をしていた場合
  一般的なDBの場合、インデックスを使用して解決を図るが
  Redshiftの場合、インデックスを使用しない
 ⇒ それでも、高速でクエリ実行できる

メモ:インデックスに関するエラー

* 上記を知らずにインデックスを張ろうとしたら、以下のエラー発生。

エラー内容

pg.NotSupportedError: ERROR: SQL command
"CREATE INDEX xxx ON yyy (zzzz)" not supported on Redshift tables.

補足:分散キー・ソートキーについて

インデックスの代わりっと言ってはなんだが、
Redshiftには、分散キー・ソートキーなどが用意されている。
詳細は、以下の関連記事を参照のこと。

Amazon Redshift ~ DistStyle / DistKey / SortKey ~
https://dk521123.hatenablog.com/entry/2021/09/04/172021

【2】PostgreSQL との違い

PostgreSQL では使用できるが、Redshift では未サポートされている
データ型などがある。
以下の公式サイトを参照。

https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/c_redshift-and-postgres-sql.html

例1:SERIAL、BIGSERIAL、SMALLSERIAL

自動ID付与(MySQL の AUTO_INCREMENT属性)してくれる
データ型「SERIAL、BIGSERIAL、SMALLSERIAL」も未サポート
 => 自動ID付与は、別の方法がある。(詳細は以下の関連記事を参照のこと。)

Amazon Redshift ~ 自動採番 / IDENTITY ~
https://dk521123.hatenablog.com/entry/2021/08/31/194134

SERIAL、BIGSERIAL、SMALLSERIALについては、以下の関連記事を参照のこと。

自動ID付与 ~ SERIAL/BIGSERIAL/SMALLSERIAL ~
https://dk521123.hatenablog.com/entry/2021/08/10/000000

例2:VACUUM

* VACUUMについても、「VACUUM REINDEX」など、色々違いがある。
 => 詳細は、以下の関連記事を参照のこと。

Amazon Redshift ~ VACUUM ~
https://dk521123.hatenablog.com/entry/2021/09/05/214403

【3】Amazon EMR との違い

https://aws.amazon.com/jp/redshift/faqs/

の「Q: Amazon Redshift または Redshift Spectrum と
Amazon EMR をどのように使い分ければよいですか?」に記載

関連記事

Amazon Redshift ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/02/22/002139
Amazon Redshift ~ DistStyle / DistKey / SortKey ~
https://dk521123.hatenablog.com/entry/2021/09/04/172021
Amazon Redshift ~ VACUUM ~
https://dk521123.hatenablog.com/entry/2021/09/05/214403
Amazon Redshift ~ 自動採番 / IDENTITY ~
https://dk521123.hatenablog.com/entry/2021/08/31/194134
自動ID付与 ~ SERIAL/BIGSERIAL/SMALLSERIAL ~
https://dk521123.hatenablog.com/entry/2021/08/10/000000