Aginity Workbench For Redshiftにて作成したスキーマが見当たらない。

2015.12.09

はじめに

好物はインフラとフロントエンドのかじわらゆたかです。
Redshiftで作成したはずのスキーマが見当たらないといったことがあったのでその情報を共有したいと思います。

どういうことか?

スキーマを作成した直後等スキーマに所属するテーブルが存在しない場合、
Aginity Workbench For RedshiftのObject Browser上からは作成したスキーマが表示されないといったことになります。
当該現象を確認したバージョンは以下になります。

Aginity Workbench for Redshift
Version 4.5.0.2319 (build 7/7/2015)
Microsoft Windows NT 6.2.9200.0 (64-bit)

Redshiftに接続し、スキーマを作成したいと思います。

create schema blog_sample authorization admin

Object Browserを更新してみても作成したblog_sampleが見当たりません。

AginityWorkbenchForRedshift_1

この段階でスキーマ一覧を取得してみたいと思います。

select nspname as schema from pg_namespace;

AginityWorkbenchForRedshift_2

確かに、存在していることが確認できます。

次に、作ったスキーマに対してテーブルを作成してみます。

create table blog_sample.sample_table(id int, name varchar(20));

この状態でObject Browserを更新すると、先ほど作成したblog_sampleのスキーマが表示されています。
AginityWorkbenchForRedshift_3

弊社のしんやより、パラメータグループのsearch_pathの記載が原因ではないかといったツッコミを受けたので、
その点についても検証しました。
Amazon Redshiftで新規追加したスキーマを検索パスに含める | Developers.IO

検証内容としては以下になります。

  1. search_path にblog_sampleを含めたパラメータグループを作成
  2. 1.で作ったパラメータグループを用いてRedshift クラスタを作成
  3. スキーマの作成を実施
  4. Aginity Workbench For RedshiftのObject Browserにて確認
  5. Redshiftクラスタの再起動を実施
  6. 再度Object Browserにて確認

状況変わらず、Aginity Workbench For RedshiftのObject Browserでは、
テーブルの作成されていないスキーマは表示されない模様でした。

まとめ

確認をした限りでは、Aginity Workbench For Redshift 固有の問題のようですが、
作成したはずのスキーマが表示されないといったケース実際に発生すると焦ります。

この記事を見て、焦る人が1人でも減ることを祈って。

おまけ

SQL Workbench/Jでも同一のタイミングで確認してみました。

スキーマ作成直後

AginityWorkbenchForRedshift_4

テーブル作成後

AginityWorkbenchForRedshift_5

SQL Workbench/Jでは問題なく表示されるようです。