Redshiftから外部スキーマを確認する方法を備忘録として残します。
システムカタログテーブル
システムカタログとは、データベースの管理システムがテーブルや列の情報などのスキーマメタデータと内部的な情報を格納する場所です。要するにDBが持つ管理用のテーブルですね、、、
Redshiftでもこのシステムカタログがテーブルとして保持されていて、今回はここから 外部のスキーマを確認することになります。
https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/c_intro_catalog_views.html
※また、RedshiftはPostgreベースなので、Postgreのシステムカタログを使うこともできます。
https://www.postgresql.org/docs/8.0/static/catalogs.html#CATALOGS-OVERVIEW
クエリ
今回はその中のPG_EXTERNAL_SCHEMAというテーブルを使って、外部スキーマを確認します。
中に入っているデータはこんな感じですね、、、
列名 | データ型 | 説明 |
---|---|---|
esoid | oid | 外部スキーマ ID。 |
eskind | integer | 外部スキーマのタイプ。 |
esdbname | text | 外部データベース名。 |
esoptions | text | 外部スキーマのオプション。 |
以下は、公式のサンプルクエリです。
select esoid, nspname as schemaname, nspowner, esdbname as external_db, esoptions
from pg_namespace a,pg_external_schema b where a.oid=b.esoid;
これを実行すると外部スキーマの一覧が確認できます。