Foreign Data

ProtonBase implements portions of the SQL/MED specification, allowing you to access data that resides outside ProtonBase using regular SQL queries. Such data is referred to as foreign data. (Note that this usage is not to be confused with foreign keys, which are a type of constraint within the database.)

Foreign data is accessed with help from a foreign data wrapper. A foreign data wrapper is a library that can communicate with an external data source, hiding the details of connecting to the data source and obtaining data from it. Other kinds of foreign data wrappers might be found as third party products.

To access foreign data, you need to create a foreign server object, which defines how to connect to a particular external data source according to the set of options used by its supporting foreign data wrapper. Then you need to create one or more foreign tables, which define the structure of the remote data. A foreign table can be used in queries just like a normal table, but a foreign table has no storage in the ProtonBase server. Whenever it is used, ProtonBase asks the foreign data wrapper to fetch data from the external source, or transmit data to the external source in the case of update commands.

Accessing remote data may require authenticating to the external data source. This information can be provided by a user mapping, which can provide additional data such as user names and passwords based on the current ProtonBase role.

For additional information, see CREATE FOREIGN DATA WRAPPERCREATE SERVERCREATE USER MAPPINGCREATE FOREIGN TABLE, and IMPORT FOREIGN SCHEMA.