更新时间:2025-03-13 GMT+08:00

Foreign Scan

算子说明

在GaussDB中,Foreign Scan是一种用于访问外部数据源的扫描器。它可以将外部数据源中的数据作为关系型数据库中的表来处理,从而实现对外部数据源的查询和操作。在GaussDB中,Foreign Scan可以通过扩展API来实现。用户可以编写自己的扩展程序,以实现对外部数据源的访问和操作。同时,GaussDB还提供了一些常用的扩展程序,如FDW(Foreign Data Wrapper),可以用于访问其他关系型数据库中的数据。

典型场景

  • 访问外部数据源:当需要访问外部数据源时,可以使用Foreign Scan来读取外部数据源中的数据。
  • 数据集成:当需要将多个数据源中的数据进行集成时,可以使用Foreign Scan来将多个数据源中的数据作为关系型数据库中的表来处理。
  • 数据迁移:当需要将数据从一个数据源迁移到另一个数据源时,可以使用Foreign Scan来读取源数据源中的数据,并将其插入到目标数据源中。

示例

示例:访问外部数据源。

--数据准备。 
gaussdb=# SET enable_extension = true;
gaussdb=# CREATE EXTENSION file_fdw; 
gaussdb=# CREATE SERVER foo FOREIGN DATA WRAPPER file_fdw; 
gaussdb=# CREATE FOREIGN TABLE ft (a int, b text) SERVER foo OPTIONS ("format" 'csv', "filename" '/gaussdb/username/data.csv', "null" 'NULL');

--执行结果。 
gaussdb=# EXPLAIN SELECT * FROM ft; 
                         QUERY PLAN                         
------------------------------------------------------------
 Foreign Scan on ft  (cost=0.00..138.00 rows=1280 width=36)
   Foreign File: /gaussdb/username/data.csv
(2 rows)

--删除。
gaussdb=# DROP FOREIGN TABLE ft;
gaussdb=# DROP SERVER foo;
gaussdb=# DROP EXTENSION file_fdw;

上述示例中,Foreign Scan算子输出信息如下所示。

信息名称

含义

Foreign Scan

算子的名称。

Foreign File

外部数据源文件。