すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:外部テーブルの作成と使用

最終更新日:Mar 28, 2026

Ganos_FDW は外部データラッパー (FDW) の仕様に準拠しており、標準 SQL を使用して Object Storage Service (OSS) に格納された外部データをクエリできます。本ページでは、サーバーの定義、認証情報のマッピング、および外部テーブルの定義手順について説明します。これにより、ApsaraDB RDS for PostgreSQL インスタンスから OSS データを直接クエリできるようになります。

前提条件

開始する前に、以下の条件を満たしていることを確認してください。

  • Ganos_FDW 拡張が有効化された ApsaraDB RDS for PostgreSQL インスタンス

  • クエリ対象のデータファイルを格納した OSS バケット

  • OSS バケットへの読み取りアクセスを持つ AccessKey ペア(AccessKey ID および AccessKey Secret)。作成方法については、「AccessKey ペアの取得」をご参照ください。

ステップ 1:サーバーの定義

サーバーオブジェクトは、Ganos_FDW に対して外部データの保存場所およびアクセス方法を指定します。

CREATE SERVER <server_name>
FOREIGN DATA WRAPPER ganos_fdw
OPTIONS (
    datasource 'OSS://<endpoint>/path/file',
    format '<driver>',
    open_options '<config>=<value>[ <config>=<value>]',
    config_options '<config>=<value>[ <config>=<value>]');
パラメーター説明
datasourceデータソースの OSS パスです。パス形式の詳細については、「オブジェクトストレージのパス」をご参照ください。
formatデータソースを読み取る際に使用するドライバーです。指定しない場合、デフォルトのドライバーが使用されます。サポートされるドライバーの一覧については、「ST_FDWDrivers」をご参照ください。
open_optionsデータソースのオープン方法(例:エンコーディング設定)を制御するオプションです。
config_options接続設定用の環境変数です。

CREATE SERVER の完全な構文については、PostgreSQL ドキュメントをご参照ください。

— OSS 上の Shapefile を指すサーバーの定義:

CREATE SERVER myserver
FOREIGN DATA WRAPPER ganos_fdw
OPTIONS (
  datasource 'OSS://<endpoint>/path/poly.shp',
  format 'ESRI Shapefile',
  open_options 'SHAPE_ENCODING=LATIN1',
  config_options '');

ステップ 2:ユーザーマッピングの作成

ユーザーマッピングは、データベースユーザーと、ステップ 1 で定義したサーバーへのアクセスに使用する OSS の認証情報を関連付けます。

CREATE USER MAPPING
FOR <user_name>
SERVER <server_name>
OPTIONS (
  user '<oss_ak_id>',
  password '<oss_ak_secret>');
パラメーター説明
SERVERステップ 1 で作成したサーバーの名前です。
userご利用の AccessKey ID です。
passwordご利用の AccessKey Secret です。

CREATE USER MAPPING の完全な構文については、PostgreSQL ドキュメントをご参照ください。

例:

CREATE USER MAPPING
FOR CURRENT_USER
SERVER myserver
OPTIONS (
  user 'id',
  password 'secret');

ステップ 3:外部テーブルの作成

外部テーブルは、OSS のデータをデータベース内のクエリ可能なテーブルにマッピングします。データソースの構造に合わせて列を定義してください。

CREATE FOREIGN TABLE <table_name> (
  column_name data_type
  [, ...]
) SERVER <server_name>
OPTIONS (layer '<layer_name>');
パラメーター説明
SERVERステップ 1 で作成したサーバーの名前です。
layerこのテーブルに関連付けるデータソース内のレイヤーの名前です。

CREATE FOREIGN TABLE の完全な構文については、PostgreSQL ドキュメントをご参照ください。

— 名前が poly の Shapefile レイヤー向けの外部テーブルの作成:

CREATE FOREIGN TABLE example_table (
  fid bigint,
  name varchar,
  age varchar,
  value varchar
) SERVER myserver
OPTIONS (layer 'poly');

テーブルを作成後、以下のクエリを実行して設定を検証します。

SELECT * FROM example_table LIMIT 10;

ステップ 4:外部テーブル定義のインポート

各外部テーブルを個別に定義する代わりに、IMPORT FOREIGN SCHEMA を使用して、サーバーからすべてのテーブル定義を一括でインポートできます。

IMPORT FOREIGN SCHEMA ganos_fdw
    [ { LIMIT TO | EXCEPT } ( table_name [, ...] ) ]
    FROM SERVER <server_name>
    INTO <local_schema>;

myserver から新しいローカルスキーマへすべての外部テーブル定義をインポート:

CREATE SCHEMA imp;

IMPORT FOREIGN SCHEMA ganos_fdw
  FROM SERVER myserver
  INTO imp;
外部テーブルをインポートする際、リモートスキーマ名は常に ganos_fdw です。インポートを実行する前に、CREATE SCHEMA を使用してローカルスキーマを作成してください。IMPORT FOREIGN SCHEMA の完全な構文については、PostgreSQL ドキュメントをご参照ください。