PostgreSQL 外部數(shù)據(jù)

2021-08-26 10:56 更新

PostgreSQL實(shí)現(xiàn)了部分的SQL/MED規(guī)定,允許我們使用普通SQL查詢來訪問位于PostgreSQL之外的數(shù)據(jù)。這種數(shù)據(jù)被稱為外部數(shù)據(jù)(注意這種用法不要和外鍵混淆,后者是數(shù)據(jù)庫中的一種約束)。

外部數(shù)據(jù)可以在一個(gè)外部數(shù)據(jù)包裝器的幫助下被訪問。一個(gè)外部數(shù)據(jù)包裝器是一個(gè)庫,它可以與一個(gè)外部數(shù)據(jù)源通訊,并隱藏連接到數(shù)據(jù)源和從它獲取數(shù)據(jù)的細(xì)節(jié)。在contrib模塊中有一些外部數(shù)據(jù)包裝器,參見附錄 F。其他類型的外部數(shù)據(jù)包裝器可以在第三方產(chǎn)品中找到。如果這些現(xiàn)有的外部數(shù)據(jù)包裝器都不能滿足你的需要,可以自己編寫一個(gè),參見第 56 章。

要訪問外部數(shù)據(jù),我們需要建立一個(gè)外部服務(wù)器對象,它根據(jù)它所支持的外部數(shù)據(jù)包裝器所使用的一組選項(xiàng)定義了如何連接到一個(gè)特定的外部數(shù)據(jù)源。接著我們需要?jiǎng)?chuàng)建一個(gè)或多個(gè)外部表,它們定義了外部數(shù)據(jù)的結(jié)構(gòu)。一個(gè)外部表可以在查詢中像一個(gè)普通表一樣地使用,但是在PostgreSQL服務(wù)器中外部表沒有存儲(chǔ)數(shù)據(jù)。不管使用什么外部數(shù)據(jù)包裝器,PostgreSQL會(huì)要求外部數(shù)據(jù)包裝器從外部數(shù)據(jù)源獲取數(shù)據(jù),或者在更新命令的情況下傳送數(shù)據(jù)到外部數(shù)據(jù)源。

訪問遠(yuǎn)程數(shù)據(jù)可能需要在外部數(shù)據(jù)源的授權(quán)。這些信息通過一個(gè)用戶映射提供,它基于當(dāng)前的PostgreSQL角色提供了附加的數(shù)據(jù)例如用戶名和密碼。

更多信息請見 CREATE FOREIGN DATA WRAPPER、 CREATE SERVERCREATE USER MAPPING、 CREATE FOREIGN TABLE、以及 IMPORT FOREIGN SCHEMA。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)