Deploy and monitor Greenplum clusters with Pigsty to build Massively Parallel Processing (MPP) PostgreSQL data warehouses.
Pigsty supports deployment of Greenplum clusters and the derivative distribution YMatrixDB.
You can also add existing Greenplum deployments to Pigsty monitoring.
Overview
Only the professional/enterprise editions provide Greenplum / YMatrix cluster deployment.
This capability is not currently open source.
Installation
Pigsty provides installation packages for Greenplum 6 (@el7) and Greenplum 7 (@el8).
Open-source users can install and configure them manually.
# EL 7 Only (Greenplum6)./node.yml -t node_install -e '{"node_repo_modules":"pgsql","node_packages":["open-source-greenplum-db-6"]}'# EL 8 Only (Greenplum7)./node.yml -t node_install -e '{"node_repo_modules":"pgsql","node_packages":["open-source-greenplum-db-7"]}'
Configuration
To define a Greenplum cluster, set pg_mode = gpsql.
Also set the identity parameters pg_shard and gp_role.
#================================================================## GPSQL Clusters ##================================================================##----------------------------------## cluster: mx-mdw (gp master)#----------------------------------#mx-mdw:hosts:10.10.10.10:{pg_seq:1, pg_role:primary , nodename:mx-mdw-1 }vars:gp_role:master # this cluster is used as greenplum masterpg_shard:mx # pgsql sharding name & gpsql deployment namepg_cluster:mx-mdw # this master cluster name is mx-mdwpg_databases:- {name:matrixmgr , extensions:[{name:matrixdbts } ] }- {name:meta }pg_users:- {name:meta , password:DBUser.Meta , pgbouncer:true}- {name:dbuser_monitor , password:DBUser.Monitor , roles:[ dbrole_readonly ], superuser:true}pgbouncer_enabled:true# enable pgbouncer for greenplum masterpgbouncer_exporter_enabled:false# enable pgbouncer_exporter for greenplum masterpg_exporter_params:'host=127.0.0.1&sslmode=disable'# use 127.0.0.1 as local monitor host#----------------------------------## cluster: mx-sdw (gp master)#----------------------------------#mx-sdw:hosts:10.10.10.11:nodename:mx-sdw-1 # greenplum segment nodepg_instances:# greenplum segment instances6000:{pg_cluster:mx-seg1, pg_seq:1, pg_role:primary , pg_exporter_port:9633}6001:{pg_cluster:mx-seg2, pg_seq:2, pg_role:replica , pg_exporter_port:9634}10.10.10.12:nodename:mx-sdw-2pg_instances:6000:{pg_cluster:mx-seg2, pg_seq:1, pg_role:primary , pg_exporter_port:9633}6001:{pg_cluster:mx-seg3, pg_seq:2, pg_role:replica , pg_exporter_port:9634}10.10.10.13:nodename:mx-sdw-3pg_instances:6000:{pg_cluster:mx-seg3, pg_seq:1, pg_role:primary , pg_exporter_port:9633}6001:{pg_cluster:mx-seg1, pg_seq:2, pg_role:replica , pg_exporter_port:9634}vars:gp_role:segment # these are nodes for gp segmentspg_shard:mx # pgsql sharding name & gpsql deployment namepg_cluster:mx-sdw # these segment clusters name is mx-sdwpg_preflight_skip:true# skip preflight check (since pg_seq & pg_role & pg_cluster not exists)pg_exporter_config:pg_exporter_basic.yml # use basic config to avoid segment server crashpg_exporter_params:'options=-c%20gp_role%3Dutility&sslmode=disable'# use gp_role = utility to connect to segments
PG Exporter also requires extra connection parameters to collect metrics from Greenplum Segment instances.