PostgreSQL 9.3 add postgres_fdw extension for accessing remote tables
PostgreSQL 9.3新增了一个postgres_fdw模块, 已经整合在源码包中. 用于创建postgres外部表.
注:db_des为目标库,developer_month_orders_data为表名。意思就是从查询库a中建立同名FOREIGN关联表,
可以查询目标库中的数据。以下命令在需要建立的关联库中执行。
目标库中的表必须存在,也就是先建立好,否则从a库,查询会报找不到表错误
阿里云RDS,数据库:PostgreSQL 9.4,跨实例数据库不支持postgres_fdw建立外部表,坑啊!
阿里云技术回复RDS需要10.0版本的 postgresql才支持跨实例。不然只能同一个实例下的不同数据库之间的外部表。
-- 安装 postgres_fdw 插件 CREATE EXTENSION postgres_fdw; -- 创建远程服务 CREATE SERVER remote_server FOREIGN DATA WRAPPER postgres_fdw; -- 查看远程服务 select * from pg_foreign_server ; -- 修改远程服务 alter server remote_server options (add hostaddr '11.216.10.215', add port '5432', add dbname 'db_des'); -- SERVER赋权 grant usage on foreign server remote_server to postgres; -- 在本地数据库中创建user mapping CREATE USER MAPPING FOR postgres server remote_server options (user 'postgres', password 'xxxxx'); -- 同样创建枚举 CREATE TYPE db_enum AS ENUM ('postgres', 'sqlserver', 'mysql'); -- 查看枚举类型的oid select oid from pg_type where typname='db_enum'; -- 创建外部表developer_month_orders_data CREATE FOREIGN TABLE developer_month_orders_data( id integer not null, developer_user_id integer, package_id integer, order_month date, create_datetime timestamp ) SERVER remote_server options (schema_name 'public',table_name 'developer_month_orders_data'); -- 查看外部表 select * from developer_month_orders_data;
ddl维护操作:
drop user mapping for postgres server server_remote ; drop server server_remote; drop extension postgres_fdw ; drop foreign table test1;
补充:postgresql postgres_fdw 跨库查询
1 安装扩展
create extension postgres_fdw;
2 本地创建server并查看 该server作用是在本地配置一个连接远程的信息,下面的配置是要连接到远程DB名称是postgres数据库
create server server_remote_rudy_01 foreign data wrapper postgres_fdw options(host ‘192.168.11.44',port ‘5432',dbname ‘vsphere_info');
查询:
select * from pg_foreign_server ;**
3 创建用户匹配信息并查看,在本地
for后面的postgres是本地登录执行的用户名,option里存储的是远程的用户密码
create user mapping for postgres server server_remote_rudy_01 options(user ‘vsphere',password ‘viadmin');
4 本地创建外部表,指定server
CREATE FOREIGN TABLE v1_cost(sample_time TIMESTAMP,datacenter_id int4,host_id int4 ,cost NUMERIC) server server_remote_rudy_01 options (schema_name ‘public',table_name ‘vi_cost');
5 –导入指定的表,也可以不导入指定的表,也可以导入整个schema下面的表(可有可无的一步)
IMPORT FOREIGN SCHEMA public FROM SERVER server_remote_rudy_01 INTO public; IMPORT FOREIGN SCHEMA public limit to(t1) FROM SERVER server_remote_rudy_01 INTO public;
以上为个人经验,希望能给大家一个参考,也希望大家多多支持小牛知识库。如有错误或未考虑完全的地方,望不吝赐教。
问题内容: 如何跨JVM同步方法? 我的示例是一个Web应用程序,该应用程序限制一个用户名不能多次登录(换句话说,第一个用户可以登录,但是如果另一个用户使用相同的用户名登录,他将被拒绝)。 该Web应用程序部署在多个服务器上,因此有多个JVM,并且用户可以尝试使用不同的服务器进行登录,具体取决于负载平衡器。 这是该方法的外观 由于采用了同步方法,因此它可以在1个应用服务器上正常工作,但是可以跨多个
本文向大家介绍PostgreSQL中使用dblink实现跨库查询的方法,包括了PostgreSQL中使用dblink实现跨库查询的方法的使用技巧和注意事项,需要的朋友参考一下 最近一个sql语句涉及到跨库的表之间的联合查询,故研究学习下。 一开始研究知道了sql语句的写法,但是执行通过不了,需要先安装dblink扩展。这些博文里都没说清楚,感谢网友指点,在windows下只需要在相应的数据库下执行
本文向大家介绍PostgreSql 的hash_code函数的用法说明,包括了PostgreSql 的hash_code函数的用法说明的使用技巧和注意事项,需要的朋友参考一下 PostgreSql 实现的hash_code 函数与java hash_code方法一致 补充:PGSQL的某些常用函数 一、COALESCE(col,value); COALESCE函数的作用是空值替换函数,即当某列的值
问题内容: 最终,我想为PostgreSql中的数据提供一个可扩展的搜索解决方案。我的发现指向我使用Logstash将写入事件从Postgres传送到ElasticSearch,但是我没有找到可用的解决方案。我发现的解决方案涉及使用jdbc- input 间隔查询Postgres的 所有 数据,并且不捕获删除事件。 我认为这是一个常见的用例,因此我希望你们可以与我分享您的经验,或者给我一些指导。
我正在尝试创建一个数据库,然后在其中创建一个表。我使用docker-compose.yml在一个sql文件中编写了查询,以便与postgres图像一起使用 当我尝试使用docker compose build,然后使用docker compose up时,我得到一个错误 “psql:/docker entrypoint initdb.d/init.sql:18:错误:未实现跨数据库引用:“real
本文向大家介绍举例说明同步和异步相关面试题,主要包含被问及举例说明同步和异步时的应答技巧和注意事项,需要的朋友参考一下 考察点:线程 如果系统中存在临界资源(资源数量少于竞争资源的线程数量的资源),例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就必须进行同步存取(数据库操作中的排他锁就是最好的例子)。当应用程序在对象上调用了一个需要花费很长时间来