[アップデート] Amazon Redshift 暗号化ハッシュ関数『SHA2』をサポートしました

2020.04.17

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Amazon Redshiftは、クラスタバージョン1.0.14877からチェックサムのビット数の引数値として0(256と同じ)、224、256、384、または512の暗号化ハッシュ関数SHA2をサポートするようになりました。

暗号化ハッシュ関数『SHA2』

SHA2関数は、SHA2暗号化ハッシュを使用して、可変長文字列(string)とチェックサムのビット数(bits)を引数に指定して、ハッシュ文字列に変換します。ハッシュ文字列は、指定されたビット数のチェックサムの16 進値をテキストで表記したものです。なお、チェックサムのビット数(bits)には、0(256と同じ)、224、256、384、512の指定が可能です。

SHA2(string, bits)

次の例では、「Amazon Redshift」という単語の256ビット値を返します。

# SELECT sha2('Amazon Redshift', 256);
-[ RECORD 1 ]----------------------------------------------------------
sha2 | 15013dc10bc5b293f1f66ea28d818387f191cafeb26f89639fae0b4acf9c8772

[補足] 暗号化ハッシュ関数SHAとSHA1の別名も追加

暗号化ハッシュ関数『SHA2』の追加に伴い、以下の別名が追加になりました。他のDWHからの移行の際にこれらの関数の書き換えが不要になります。

SHA

この関数は、後述するSHA1の別名です。(つまり、SHR1と同じ)

SHA1

この関数は、既存のFUNC_SHA1の別名です。(つまり、FUNC_SHA1と同じ)

最後に

従来、SHA-2(SHA-256)に変換するにはUDF(ユーザ定義関数)を作成する必要がありましたが、Pythonとの呼び出しが生じるためパフォーマンスやCPU使用率の上昇など課題がありました。今回のアップデートで、SHA2関数だけでなく、SHAとSHA1の別名が追加されたため、マイグレーションの手間が軽減されることが期待できます。

合わせて読みたい