PG-跨庫操作-postgres_fdw

来源:https://www.cnblogs.com/lottu/archive/2020/07/20/13345187.html
-Advertisement-
Play Games

接上一篇《PG-跨庫操作-dblink》;講下postgres_fdw的使用;postgres_fdw工作原理詳細介紹可以去看下《PostgreSQL指南》第4章; 對FDW特性;還支持在PostgreSQL異構資料庫的同步、遷移的場景。FDW隨著Postgres版本而升級、優化,對分散式架構也是支 ...


接上一篇《PG-跨庫操作-dblink》;講下postgres_fdw的使用;postgres_fdw工作原理詳細介紹可以去看下《PostgreSQL指南》第4章;

對FDW特性;還支持在PostgreSQL異構資料庫的同步、遷移的場景。FDW隨著Postgres版本而升級、優化,對分散式架構也是支持的。

一、新建插件postgres_fdw

安裝插件postgres_fdw

lottu01=# create extension postgres_fdw;

二、新建遠程資料庫伺服器

2.1、在本地庫創建SERVER

--1 賦予lottu01對應許可權
lottu01=# grant usage on foreign data wrapper postgres_fdw to lottu01;
GRANT
lottu01=# \c lottu01 lottu01
You are now connected to database "lottu01" as user "lottu01".
--2 創建server
lottu01=> CREATE SERVER lottu FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host '192.168.1.221', port '6000', dbname 'lottu');
CREATE SERVER

2.2、在本地庫創建user mapper

lottu01=> CREATE USER MAPPING FOR lottu01 SERVER lottu OPTIONS (user 'lottu', password 'li0924');
CREATE USER MAPPING

2.3、創建外部表

lottu01=> CREATE FOREIGN TABLE t1 (id int, info text) server lottu OPTIONS (schema_name 'public', table_name 't1');
CREATE FOREIGN TABLE
lottu01=> select * from t1;
  id  | info  
------+-------
 1001 | lottu
 1002 | hello
 1003 | rax
 1004 | rax
 1005 | lottu
(5 rows)

2.4、導入外部表

CREATE FOREIGN TABLE中聲明的列數據類型和其他性質必須要匹配實際的遠程表。列名也必須匹配,不過也可以為個別列附上column_name選項以表示它們在遠程伺服器上對應哪個列。在很多情況中,要手工構造外部表定義,使用IMPORT FOREIGN SCHEMA會更好。

lottu01=> create schema ft;
CREATE SCHEMA
lottu01=> IMPORT FOREIGN SCHEMA public FROM SERVER lottu INTO ft;
IMPORT FOREIGN SCHEMA

三、擴展

3.1、相關係統表

通過下列系統表可以查看資料庫外部表信息。

系統表 簡命令操作 含義
pg_extension \dx 插件
pg_foreign_data_wrapper \dew 支持外部資料庫介面
pg_foreign_server \des 外部伺服器
pg_user_mappings \deu 用戶管理
pg_foreign_table \det 外部表

3.2、使用優化

減少對遠端伺服器的連接影響;可以使用物化視圖;

--1、在本地資料庫創建物化視圖
create materialized view mv_t1 as select * from t1;
--2、 刷新一下本地的物化視圖即可看到新進來的數據:
refresh materialized view mv_t1

四、應用場景

4.1、數據同步

本地創建外部表;可對外部表支持執行delete、update、insert語句;同時遠程資料庫的表也會執行相對應的操作。例如兩個資料庫實現token的一致。

4.2、數據遷移

在導入外部表;可以實現數據遷移。

4.3、分散式架構使用

citus的實現原理是採用FDW特性。安裝很簡單;但維護註意點比較多;想要更多瞭解可以找陳華軍老師。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • cut 命令在Linux和Unix中的作用是從文件中的每一行中截取出一些部分,並輸出到標準輸出中。我們可以使用 cut 命令從一行字元串中於以位元組,字元,欄位(分隔符)等單位截取一部分內容出來。 在本文中,我們通過一些例子來瞭解 cut 命令的使用,這些使用方法在我們的日常工作中也是非常常用的。 C ...
  • 方法一: 使用原版wine,並配置q4wine,並下載最新的wechat 進行安裝使用; 可能會出現問題,需要自己調試解決; 方法二: 使用deepin-wine 和deepin-wechat,因為這個已經得到了測試,所以錯誤少點,用的人也多一點; 安裝方式: https://gitee.com/w ...
  • Java整個堆大小設置 Xmx 和 Xms設置為老年代存活對象的3-4倍,即FullGC之後的老年代記憶體占用的3-4倍 永久代PermSize和MaxPermSize設置為老年代存活對象的1.2-1.5倍。 永久區並不是老年代的1.2到1.5倍,而是FullGC後永久區的1.2到1.5倍 1.2x ...
  • swap交換記憶體主要是指當物理記憶體不夠用時,系統會啟用硬碟的一部分空間來充當伺服器記憶體,而預設情況下swap記憶體會有一些設置標準,它與物理記憶體的大小也是有關係的,具體標準如下: Ram大小 Swap大小 激活Swap後合計大小 256MB 256MB 512MB 512MB 512MB 1GB 1G ...
  • 一 跨域概述 1.1 同源策略 同源策略是一個安全策略。同源,指的是協議,功能變數名稱,埠相同。瀏覽器處於安全方面的考慮,只允許本功能變數名稱下的介面交互,不同源的客戶端腳本,在沒有明確授權的情況下,不能讀寫對方的資源。 同源策略主要是基於如下可能的安全隱患: 用戶訪問www.mybank.com,登錄併進行網銀 ...
  • 本文更新於2020-04-05,使用MySQL 5.7,操作系統為Deepin 15.4。 使用符號連接分佈IO 利用操作系統的符號連接,將不同的資料庫、表、索引指向不同的物理磁碟,從而達到分佈磁碟IO的目的。 禁止操作系統更新文件的atime屬性 對於讀寫頻繁的資料庫文件來說,記錄文件的訪問時間一 ...
  • Linux(Centos 7) 安裝配置 redis 1.下載reids ( 官網:redis.io,中文網:www.redis.cn) 我下載的是5.0.8版本的 第二步:安裝 解壓(到opt目錄) tar -zxvf redis-5.0.8.tar.gz -C /opt 2.檢查環境(安裝red ...
  • 項目里客戶端突然報錯,原因是SQL Server中某個Function返回值有問題,拿來代碼看還是比較簡單的Function,雖然寫法很不好,但是select dbo.fn_xxxfunction(0)返回值是空就有點奇怪。 IF OBJECT_ID('fn_xxxfunction', 'FN') ...
一周排行
    -Advertisement-
    Play Games
  • 概述:本文代碼示例演示瞭如何在WPF中使用LiveCharts庫創建動態條形圖。通過創建數據模型、ViewModel和在XAML中使用`CartesianChart`控制項,你可以輕鬆實現圖表的數據綁定和動態更新。我將通過清晰的步驟指南包括詳細的中文註釋,幫助你快速理解並應用這一功能。 先上效果: 在 ...
  • openGauss(GaussDB ) openGauss是一款全面友好開放,攜手伙伴共同打造的企業級開源關係型資料庫。openGauss採用木蘭寬鬆許可證v2發行,提供面向多核架構的極致性能、全鏈路的業務、數據安全、基於AI的調優和高效運維的能力。openGauss深度融合華為在資料庫領域多年的研 ...
  • openGauss(GaussDB ) openGauss是一款全面友好開放,攜手伙伴共同打造的企業級開源關係型資料庫。openGauss採用木蘭寬鬆許可證v2發行,提供面向多核架構的極致性能、全鏈路的業務、數據安全、基於AI的調優和高效運維的能力。openGauss深度融合華為在資料庫領域多年的研 ...
  • 概述:本示例演示了在WPF應用程式中實現多語言支持的詳細步驟。通過資源字典和數據綁定,以及使用語言管理器類,應用程式能夠在運行時動態切換語言。這種方法使得多語言支持更加靈活,便於維護,同時提供清晰的代碼結構。 在WPF中實現多語言的一種常見方法是使用資源字典和數據綁定。以下是一個詳細的步驟和示例源代 ...
  • 描述(做一個簡單的記錄): 事件(event)的本質是一個委托;(聲明一個事件: public event TestDelegate eventTest;) 委托(delegate)可以理解為一個符合某種簽名的方法類型;比如:TestDelegate委托的返回數據類型為string,參數為 int和 ...
  • 1、AOT適合場景 Aot適合工具類型的項目使用,優點禁止反編 ,第一次啟動快,業務型項目或者反射多的項目不適合用AOT AOT更新記錄: 實實在在經過實踐的AOT ORM 5.1.4.117 +支持AOT 5.1.4.123 +支持CodeFirst和非同步方法 5.1.4.129-preview1 ...
  • 總說周知,UWP 是運行在沙盒裡面的,所有許可權都有嚴格限制,和沙盒外交互也需要特殊的通道,所以從根本杜絕了 UWP 毒瘤的存在。但是實際上 UWP 只是一個應用模型,本身是沒有什麼許可權管理的,許可權管理全靠 App Container 沙盒控制,如果我們脫離了這個沙盒,UWP 就會放飛自我了。那麼有沒... ...
  • 目錄條款17:讓介面容易被正確使用,不易被誤用(Make interfaces easy to use correctly and hard to use incorrectly)限制類型和值規定能做和不能做的事提供行為一致的介面條款19:設計class猶如設計type(Treat class de ...
  • title: 從零開始:Django項目的創建與配置指南 date: 2024/5/2 18:29:33 updated: 2024/5/2 18:29:33 categories: 後端開發 tags: Django WebDev Python ORM Security Deployment Op ...
  • 1、BOM對象 BOM:Broswer object model,即瀏覽器提供我們開發者在javascript用於操作瀏覽器的對象。 1.1、window對象 視窗方法 // BOM Browser object model 瀏覽器對象模型 // js中最大的一個對象.整個瀏覽器視窗出現的所有東西都 ...