PG的FDW的介绍
https://wiki.postgresql.org/wiki/Foreign_data_wrappers
本篇简单介绍下PG到Mysql,PG到Hive的“透明网关”
安装PostgreSQL客户端。
sudo apt-get install postgresql-client
sudo apt-get install postgresql
正常情况下,安装完成后,PostgreSQL服务器会自动在本机的5432端口开启
如果还想安装图形管理界面,可以运行下面命令
sudo apt-get install pgadmin3
sudo -u postgres createuser --superuser syk
创建数据库test
sudo -u postgres createdb -O syk test
psql -U syk -d test -h 127.0.0.1 -p 5432
到此PG的安装完成。
先配置到mysql的
https://github.com/EnterpriseDB/mysql_fdw
下载到本地解压缩
更改下文件的权限
准备安装:中间需要安装一个pg的扩展开发包dev-9.3
sudo PATH=/usr/local/pgsql/bin/:/usr/local/mysql/bin:$PATH make USE_PGXS=1 install
登录PG开始配置mysql(前提是mysql的用户及库表都已经创建完成)的fdw
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 syk SERVER mysql_server OPTIONS ( username 'sky', PASSWORD 'sky' ); CREATE FOREIGN TABLE syk_test2 ( goods_id INT, goods_type VARCHAR (10), goods_id2 BIGINT ) SERVER mysql_server OPTIONS ( dbname 'syk', table_name 'syk_test2' ); SELECT * FROM syk_test2; INFO: Successfully connected to MySQL database syk at server 127.0.0.1 via TCP/IP with cipher (server version: 5.5.49-0ubuntu0.14.04.1, protocol version: 10) goods_id | goods_type | goods_id2 ---------- ------------ ----------- 100 | 10010 | 0 100 | 10011 | 0 88 | 20010 | 0 86 | 20110 | 0 0 | 我我我特色 | 0 1 | 我我我曹操 | 0
下面这些内容基本是占篇幅的^_^
/* ERROR: first column of remote table must be unique for INSERT/UPDATE/DELETE operation #注意这里 #mysql 库上的表结构 没有唯一约束 CREATE TABLE `syk_test2` ( `goods_id` INT (11) NOT NULL DEFAULT '0', `goods_type` VARCHAR (10) DEFAULT NULL, `goods_id2` BIGINT (20) NOT NULL DEFAULT '0' ) ENGINE = INNODB DEFAULT CHARSET = utf8; #添加唯一约束 mysql
|