AWS Redshift

2019年のRedshift Updateをおさらいする

Redshiftの今を把握しようと調査したので、その備忘録です。下記の2019年のreinvent資料と、2020年2月に開催してくれたBlack Beltの資料を基に確認していきます。 ANT320-R - [REPEAT] What's new with Amazon Redshift, featuring Workday AWS Black Belt O…

Redshiftのマテリアライズド・ビュー機能(プレビュー)を試してみる

Redshiftでマテビュー機能が利用できるようになったので、試してみました。2020年2月時点ではプレビューの状態であるものの、申請なしで誰でも利用可能となっています。 こちらは利用マニュアル。 Creating Materialized Views in Amazon Redshift 事前準備 …

Redshiftにおけるロックの概念

Redshiftにおけるロックの考え方について、まとめておきます。以下は参考となるAWSナレッジのサイトです。 Amazon Redshift でのクエリのブロックを防ぐ方法 Redshiftの分離レベル まず、Redshiftの分離レベルは、 SERIALIZABLE となっています。基本的な4…

Redshiftにて、DBユーザーの権限をいい感じに管理する方法

Redshiftにおいて、DBユーザ向けに、あるスキーマ内にあるオブジェクト(tableとかviewとか)に対する権限を付与しようとした場合、今まで以下のSQLを利用していました。 GRANT SELECT ON ALL TABLES IN SCHEMA schema_name TO GROUP db_user_group; しかし、…

RedshiftのWLMにて、同時実行クエリ数が合計16以上でも、SQAを利用する方法

日経techブロクのこの記事を読んでいて知ったこと。 Redshiftを数百人で使うためのコツ(クラスター構成編) — HACK The Nikkei AWS コンソールでは、SQA の有効化には同時実行数の合計が 15 以内であることが必須になっているため、CLI を用いて WLM 設定を…

Redshift Spectrumを利用してみる

Glueのデータカタログを使用して、Redshift Spectrumを利用する方法について、まとめておきます。 公式のマニュアルはこちら。 Amazon Redshift Spectrum を使用して外部データにクエリを実行する - Amazon Redshift 利用にあたり前提条件 Redshift Cluster…

Redshiftで、ファイルを指定してCOPY処理をする方法

Redshiftにデータを投入する方法は色々用意されていまうが、一般的には(且つ推奨されている方法では)、RedshiftのCOPYコマンドを利用する方法です。 基本的にロードしたいファイルをS3上に置いておき、COPYすることになるのですが、COPYコマンドのみでの実…

RedshiftとAurora(PostgreSQL)でdblinkを貼る方法

Redshiftには、マテリアライズド・ビューを作成する方法は用意されていません。Redshiftはデータウェアハウス向けに設計されたデータベースであるが故、以下の様な理由により、その機能を用意していないのだと考えています。 データウェアハウスは、恒常的に…

Redshiftで、クラスターのノード数により、テーブルのデータサイズが増減するという話

題名の通りなのですが、増減します。詳しい解説は、以下のナレッジページにあります。 Redshift クラスターのストレージスペースについて理解する Redshiftのテーブルサイズを決定する要員として下記があります。 The number of populated slices on each Am…

Redshiftにおいて監査ログを出力する方法

Redshiftにおいても、一般のRDBと同等レベルのAuditLogを取得可能です。その方法について、まとめておきます。基本的にマニュアルの記載をざっくりまとめたものなので、詳細については以下の公式マニュアルを見てみて下さい。 データベース監査ログ作成 - Am…

Redshiftを構築しながら思ったこと

Redshiftを触りつつ、思ったことを資料にまとめたので貼っておきます。以下のslideshareとなります。 Redshift構築メモ from goodbyegangster www.slideshare.net Redshiftに関しては、上記以外にも色々まだ書きたいことがあるので、ブログにメモしていきま…

psqlで、パスワード入力を省略して、Redshiftに接続する

postgresqlと同じ方法で対応可能です。 方法1 環境変数を利用する PGPASSWORD という環境変数にパスワードを、事前に設定することで対応できます。ただし、この方法は推奨されていません。 この環境変数の使用は、セキュリティ上の理由から現在では推奨され…

RedshiftのVacuumをしたら、全然終わらず、DISK FULLになって絶望した話

絶望しましたねえ。 レコード数は1億レコードは優に超えていたと思います。インターリーブソートキーを利用していて、全くVacuumしていないテーブルをVacuumしたところ、全く処理が終わらず、終らないどころかディスク使用率が100%に到達してしまいました。…

Redshiftにて、作成したDBユーザのSYSLOG ACCESS UNRESTRICTEDが正しく設定されているか調べる方法

Redshiftにて、ユーザのSYSLOG ACCESS UNRESTRICTEDが正しく設定されているかどうか、カタログテーブルや管理ビューで確認する方法はないそうです。 SYSLOG ACCESS UNRESTRICTED/RESTRICTED とは、 Amazon Redshift のシステムテーブルとビューに対するユー…

Windowsにpsqlをインストールして、Redshiftへ接続する方法

Windows10で利用する時の方法です。尚、SQL Workbench/Jをインストールする方法はこちら。 WindowsにSQLworkbench/J インストールして、Redshiftへ接続する方法 - goodbyegangsterのブログ psqlをダウンロードします。Windowsでは、psql単体のみでインストー…

SQL workbench/JからRedshiftに接続して、テーブルが作成できない件

SQL workbench/J からRedshiftに接続して create table をすると、以下エラーが出てきて作成してくれませんでした。 Amazon Invalid operation: current transaction is aborted, commands ignored until end of transaction block DDL文に間違いはないはず…

WindowsにSQLworkbench/J インストールして、Redshiftへ接続する方法

Redshiftのマニュアルを読んでいると、SQLworkbench/Jなるものを利用してアクセスして欲しいっぽいので、自分のWindows10に設定してみます。下記の公式のマニュアルを参考に作業。 4. Installing and starting SQL Workbench/J SQLworkbench/J のダウンロー…

Redshiftにて「allow-version-upgrade」の設定値を変更する方法

AWSコンソールからRedshiftを触っていて、メジャーバージョンアップを許可する allow-version-upgrade というパラメータがあるんですが、それを変更するような方法が見つからず、あれっとなりました。 AWS CLIのリファレンスを見に行って、modify-cluster と…