<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
PostgreSQL 提供了一種存取和操作外部資料來源的機制,稱為外部封包裝器(Foreign Data Wrapper)。利用這種外部資料管理機制,我們可以在 PostgreSQL 中存取各種同構資料庫(PostgreSQL)、異構資料庫(MySQL、Oracle、SQL Server、SQLite、HBase、Cassandra、ClickHouse、CouchDB、MongoDB、Neo4j、Redis、Hadoop、HIve等)以及文字檔案(CSV、JSON、XML等)。
本文我們要介紹的就是連線 MySQL 資料庫的外部封包裝器:mysql_fdw。mysql_fdw 提供了讀寫 MySQL 外部表、連線池、WHERE 條件下推、返回欄位下推、預編譯語句、JOIN 下推、聚合函數(min、max、sum、avg、count)下推、ORDER BY 下推以及 LIMIT OFFSET 下推等功能。
點選 GitHub 下載 mysql_fdw 原始碼。
編譯 mysql_fdw 之前,需要安裝 MySQL C 語言使用者端庫。這個程式庫可以從 MySQL 官方網站下載。
對於 POSIX 相容系統,執行 make 進行編譯時需要確保 pg_config 程式位於 path 環境變數中。該程式通常位於 PostgreSQL 安裝目錄下的 bin 目錄中,例如:
$ export PATH=/usr/local/pgsql/bin/:$PATH
另外,mysql_config 程式頁需要位於 path 環境變數中:
$ export PATH=/usr/local/mysql/bin/:$PATH
然後,使用 make 命令編譯程式:
$ make USE_PGXS=1
最後,安裝 mysql_fdw:
$ make USE_PGXS=1 install
執行迴歸測試:
$ make USE_PGXS=1 installcheck
注意確保 MYSQL_HOST、MYSQL_PORT、MYSQL_USER_NAME 以及 MYSQL_PWD 環境變數的設定。預設設定可以參考 mysql_init.sh 指令碼。
以下是一個簡單的使用範例,所有命令在 PoatgreSQL 中執行:
-- 載入擴充套件外掛 CREATE EXTENSION mysql_fdw; -- 建立伺服器物件 CREATE SERVER mysql_server FOREIGN DATA WRAPPER mysql_fdw OPTIONS (host '127.0.0.1', port '3306'); -- 建立使用者對映 CREATE USER MAPPING FOR postgres SERVER mysql_server OPTIONS (username 'foo', password 'bar'); -- 建立外部表 CREATE FOREIGN TABLE warehouse ( warehouse_id int, warehouse_name text, warehouse_created timestamp ) SERVER mysql_server OPTIONS (dbname 'db', table_name 'warehouse'); -- 插入資料 INSERT INTO warehouse values (1, 'UPS', current_date); INSERT INTO warehouse values (2, 'TV', current_date); INSERT INTO warehouse values (3, 'Table', current_date); -- 查詢資料 SELECT * FROM warehouse ORDER BY 1; warehouse_id | warehouse_name | warehouse_created -------------+----------------+------------------- 1 | UPS | 10-JUL-20 00:00:00 2 | TV | 10-JUL-20 00:00:00 3 | Table | 10-JUL-20 00:00:00 -- 刪除資料 DELETE FROM warehouse where warehouse_id = 3; -- 更新資料 UPDATE warehouse set warehouse_name = 'UPS_NEW' where warehouse_id = 1; -- 檢視執行計劃 EXPLAIN VERBOSE SELECT warehouse_id, warehouse_name FROM warehouse WHERE warehouse_name LIKE 'TV' limit 1; QUERY PLAN -------------------------------------------------------------------------------------------------------------------- Limit (cost=10.00..11.00 rows=1 width=36) Output: warehouse_id, warehouse_name -> Foreign Scan on public.warehouse (cost=10.00..1010.00 rows=1000 width=36) Output: warehouse_id, warehouse_name Local server startup cost: 10 Remote query: SELECT `warehouse_id`, `warehouse_name` FROM `db`.`warehouse` WHERE ((`warehouse_name` LIKE BINARY 'TV'))
以下引數用於 MySQL 外部伺服器物件:
以下引數用於 MySQL 外部表物件:
以下引數用於建立使用者對映:
以下引數用於 IMPORT FOREIGN SCHEMA 命令:
到此這篇關於PostgreSQL使用MySQL作為外部表(mysql_fdw)的文章就介紹到這了,更多相關PostgreSQL使用MySQL外表內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45