■ はじめに
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