1. 程式人生 > >Postgresql分散式外掛plproxy

Postgresql分散式外掛plproxy

作者:高銘傑
郵箱:[email protected]
日期:2017年7月4日

Simple remote function call

節點61/62(datanode)

CREATE TABLE users (username text, email text);
insert into users values ('user0', '[email protected]');
insert into users values ('user1', '[email protected]');
insert into users values ('user2'
, '[email protected]');

節點60(proxy)

create or replace extension plproxy;

CREATE FUNCTION get_user_email(i_username text)
RETURNS SETOF text AS $$
    CONNECT 'host=localhost port=9461 dbname=postgres connect_timeout=10';
    SELECT email FROM users WHERE username = $1;
$$ LANGUAGE plproxy;

SELECT
* from get_user_email('user0');

Configuring Pl/Proxy clusters with SQL/MED

節點60(proxy)

CREATE FOREIGN DATA WRAPPER plproxy;

CREATE SERVER usercluster FOREIGN DATA WRAPPER plproxy
OPTIONS (connection_lifetime '1800',
         p0 'host=localhost port=9461 dbname=postgres connect_timeout=10',
         p1 'host=localhost port=9462 dbname=postgres connect_timeout=10'
);
CREATE USER MAPPING FOR PUBLIC SERVER usercluster;

Partitioned remote call

節點60(proxy)

CREATE OR REPLACE FUNCTION insert_user(i_username text, i_emailaddress text)
RETURNS integer AS $$
    CLUSTER 'usercluster';
    RUN ON hashtext(i_username);
$$ LANGUAGE plproxy;

節點61/62(datanode)

CREATE OR REPLACE FUNCTION insert_user(i_username text, i_emailaddress text)
RETURNS integer AS $$
       INSERT INTO users (username, email) VALUES ($1,$2);
       SELECT 1;
$$ LANGUAGE SQL;

Putting it all together

節點60(proxy)

SELECT insert_user('Sven','[email protected]');
SELECT insert_user('Marko', '[email protected]');
SELECT insert_user('Steve','[email protected]');

plproxy–2.7.0.sql

-- handler function
CREATE FUNCTION plproxy_call_handler ()
RETURNS language_handler AS 'plproxy' LANGUAGE C;

-- validator function
CREATE FUNCTION plproxy_validator (oid)
RETURNS void AS 'plproxy' LANGUAGE C;

-- language
CREATE LANGUAGE plproxy HANDLER plproxy_call_handler VALIDATOR plproxy_validator;

-- validator function
CREATE FUNCTION plproxy_fdw_validator (text[], oid)
RETURNS boolean AS 'plproxy' LANGUAGE C;

-- foreign data wrapper
CREATE FOREIGN DATA WRAPPER plproxy VALIDATOR plproxy_fdw_validator;

相關推薦

Postgresql分散式外掛plproxy

作者:高銘傑 郵箱:[email protected] 日期:2017年7月4日 Simple remote function call 節點61/62(datanode) CREATE TABLE users (user

PostgreSQL外掛hook機制

internal_load_library postgresql-> PG_init = (PG_init_t) pg_dlsym(file_scanner->handle, "_PG_init"); if (PG_init) (*PG_init) ();

PostgreSQL外掛:Oracle_fdw 編譯安裝

文章目錄 概述 配置Oracle環境 安裝Oracle客戶端 下載和編譯安裝 make make install 使用 解決使用依賴 使

PostgreSQL外掛:Postgis編譯安裝

文章目錄 概述 安裝準備 安裝Proj4 安裝GEOS 安裝GDAL 安裝postgis make時的報錯 安裝SFCGAL 測試 總結

【技術世界】分享大資料領域技術、包括但不限於Storm、Spark、Hadoop等分散式計算系統,Kafka、MetaQ等分散式訊息系統, MongoDB等NoSQL,PostgreSQL等RDBMS,SQL優

技術世界 分享大資料領域技術、包括但不限於Storm、Spark、Hadoop等分散式計算系統,Kafka、MetaQ等分散式訊息系統, MongoDB等NoSQL,PostgreSQL等RDBMS,SQL優...

分享在Linux下使用OSGi.NET外掛框架快速實現一個分散式服務叢集的方法

在這篇文章我分享瞭如何使用分層與模組化的方法來設計一個分散式服務叢集。這個分散式服務叢集是基於DynamicProxy、WCF和OSGi.NET外掛框架實現的。我將從設計思路、目標和實現三方面來描述。 1 設計思路 首先,我來說明一下設計思路。我們先來看看目前OSGi.NET外掛框架的服務。在這裡,服務不

Postgresql PL /Pproxy 分散式資料庫代理

參考文件: 1)德哥部落格:http://blog.163.com/[email protected]/blog/static/163877040201192535630895/ 2)/wiki介紹:http://wiki.postgresql.org/wiki/PL/Proxy#Document

PostgreSQL外掛:postgres_fdw 編譯安裝使用

文章目錄 概述 編譯外掛 安裝使用 概述 所述postgres_fdw模組提供外國資料封裝器postgres_fdw,其可用於訪問儲存在外部資料的PostgreSQL伺服器。 此模組提供的功能與舊版dblink

大資料學習-Hadoop生態章---HDFS完全分散式(1.X版本)搭建及eclipse外掛整合

完全分散式搭建(1.x版) 一.環境的準備(詳情參考Linux章) Linux 環境 JDK 準備至少3臺機器(通過克隆虛擬機器;配置好網路JDK 時間 hosts,保證節點間能互ping通) 時間同步 (ntpdate time.nist.gov)

mykit-cache之——分散式快取外掛正式開源

重磅訊息——分散式快取外掛mykit-cache正式開源啦!!! 框架簡述 mykit架構中獨立出來的mykit-cache元件,封裝了mykit架構下對於快取cache的各種操作,使用者只需要引入相關的Jar包,即可實現對快取的輕鬆操作。 框架結構描述 封裝

【Zanuck 鎮】編寫php高效能snowflake演算法外掛(分散式64位唯一性自增id生成演算法)

好了,現在開始,先用C語言實現snowflake演算法,用C語言實現非常簡單,只要按照snowflake演算法的規則來就行了,我摘抄了csdn上一個比較好的演算法,地址如下:http://blog.csdn.net/wallwind/article/details/49701397,但是博主沒有做註釋,但是我

PostgreSQL 邏輯複製外掛 UDR,可以愉快的玩類似MySQL的binlog複製了。

Postgres2015全國使用者大會將於11月20至21日在北京麗亭華苑酒店召開。本次大會嘉賓陣容強大,國內頂級PostgreSQL資料庫專家將悉數到場,並特邀歐洲、俄羅斯、日本、美國等國家和地區的資料庫方面專家助陣: Postgres-XC專案的發起人鈴木市

由test_decoding學習如何編寫PostgreSQL邏輯解碼外掛

PostgreSQL提供很多介面,允許使用者定製自己需要的功能,很多時候文件並不能讓我們完全理解和把握它們的使用。如果需要開發一個

Pytest系列(16)- 分散式測試外掛之pytest-xdist的詳細使用

如果你還想從頭學起Pytest,可以看看這個系列的文章哦! https://www.cnblogs.com/poloyy/category/1690628.html   前言 平常我們功能測試用例非常多時,比如有1千條用例,假設每個用例執行需要1分鐘,如果單個測試人員執行需要1000分鐘才能跑完

go 自己封的postgresql操作包

rep make query res urn mod .exe errors exe 1 package myDB 2 3 import ( 4 "database/sql" 5 "errors" 6 7 _ "g

postgis 賦予postgresql空間數據庫的能力

href sta key 空間 creat 提示 database .com pos 安裝:   Windows:postgresql的bin目錄下:運行stackbuilder,一步一步按照提示來就行了   Ubuntu: apt-get install postgres

postgresql mogo數據庫允許其它主機訪問

dip main mongod change address clas postgresq ted hba postgres: /etc/postgresql/9.5/main/ environment pg_ctl.conf pg_hba.conf pg_ident

程序外掛之修改名稱

技術 img png idt chan http alt die 動態 1.建立運行應用程序如PicPick 2.使用工具OllyDbg v1.0窗口工具捕獲該窗口的類名和標題如下圖 3.根據獲取的類名TfrmMDIEditor和標題PPP編寫c代碼如下 #inclu

PostgreSQL (簡稱gp)小集

times ear logs server 日期 cnblogs date sta blog 1. SQLyog & Navicat   SQLyog可以管理 MySQL Navicat 可以管理 SQL Server,MySQL,PostgreSQL,SQ

postgresql 和.NET類型對照表

varchar acad cit dense bool list geometry .net col PostgreSQL type默認的 .NET 類型特定提供的類型其他 .NET 類型 bool bool int2 short byte, sb