外部データラッパー (FDW) は、PostgreSQLの拡張です。 FDWを使用して外部データにアクセスできます。 外部データソースには、ApsaraDB RDSインスタンスのデータベースのデータと他のRDSインスタンスのデータが含まれます。 GanosBaseでは、FDWはさまざまな空間データへの統一アクセスをサポートし、ジオメトリック空間データ型をジオメトリタイプに自動的にマッピングできます。 FDWを使用して、外部テーブルとRDSインスタンスのテーブルからのデータに一元的にアクセスしてクエリすることができます。
手順
Ganos_FDW拡張子を作成します。
次のいずれかの方法を使用して、Ganos_FDW拡張機能を作成できます。
CASCADEキーワードを使用して、Ganos_FDW拡張子を作成します。
CREATE EXTENSION ganos_fdw WITH schema public CASCADE;
説明アクセス許可の問題を回避するために、パブリックモードで拡張機能をインストールすることを推奨します。
Ganos_FDW拡張機能を直接作成します。
CREATE EXTENSION ganos_spatialref; CREATE EXTENSION ganos_geometry; CREATE EXTENSION ganos_fdw;
外部テーブルとしてshapefile形式の空間データファイルを登録します。
shapefileを外部テーブルとして登録します。
SELECT ST_RegForeignTables('OSS://<access_id>:<secrect_key>@[<Endpoint>]/<bucket>/path_to/filet');
説明以下にパラメーターを説明します。
ak_idとak_secretは、Object Storage Service (OSS) バケットへのアクセスに使用されるAccessKeyペアのAccessKey idとAccessKey secretを指定します。 詳細については、「AccessKeyペアの取得」をご参照ください。
データアクセシビリティを確保するために、RDSインスタンスとOSSバケットが同じリージョンにあり、内部OSSエンドポイントを使用して接続されていることを確認してください。 詳細は、「OSSドメイン名」をご参照ください。
/<bucket>/path_to/file
は、OSSバケット内のファイルのディレクトリを指定します。 シェープファイル形式のファイルを使用する場合、ファイルには少なくとも3種類のファイルが含まれている必要があります:.shp、。 shx、および。 dbf
を使用します。 ファイルは、OSSバケットの同じフォルダーにアップロードする必要があります。
を使用して外部テーブルを照会します。
information_schema.foreign_tables
表示します。SELECT foreign_table_name FROM information_schema.foreign_tables ORDER BY foreign_table_name ASC;
外部テーブルからデータを照会します。
SELECT fid, ST_AsText(geom), name, age, height FROM poly WHERE fid = 1;
サンプル出力:
fid | ST_AsText(geom) | name | age | height -------------------------------------------------------------------- 1 | POLYGON((5 0,0 0,0 10,5 10,5 0)) | ZhangShan | 35 | 1.84
外部テーブルのデータを、RDSインスタンスに作成されたテーブルにインポートします。
RDSインスタンスにテーブルが作成されていない場合は、次のコマンドを実行してテーブルを作成し、データをテーブルに挿入します。
CREATE TABLE poly_db AS SELECT * FROM poly;
RDSインスタンスにテーブルが作成されている場合、次のいずれかの方法でデータをテーブルにインポートできます。
INSERT SELECTステートメントを使用します。
INSERT INTO poly_db SELECT * FROM poly;
IMPORT FOREIGN SCHEMAステートメントを使用します。
CREATE SCHEMA imp; IMPORT FOREIGN SCHEMA ganos_fdw FROM SERVER ganos_fdw_server INTO imp;
オプション。 Ganos_FDW拡張子を削除します。
DROP EXTENSION Ganos_FDW CASCADE;