BGPmon-Analytics-db-1

 view release on metacpan or  search on metacpan

bin/bgpmon_analytics_db_0_pphTables.psql  view on Meta::CPAN

/* 
To create the database, run this file through psql like so:
prompt> psql -f 0_pph_createTables.postgresql bgpmon_db bgpmon_db_user
*/

/* pph = peer, prefix history */
drop schema if exists pph cascade;
create schema pph;


CREATE TABLE pph.rib_import(
	peer INET,
	collector VARCHAR(30),
	prefix CIDR,
	ts TIMESTAMP WITHOUT TIME ZONE,
	origin INTEGER,
	lasthop INTEGER,
	aspath INTEGER ARRAY
);
CREATE TABLE pph.update_import(
	peer INET,
	collector VARCHAR(30),
	prefix CIDR,
        update BOOLEAN,
	ts TIMESTAMP WITHOUT TIME ZONE,
	origin VARCHAR,
	lasthop VARCHAR,
	aspath VARCHAR ARRAY
);
	

CREATE TABLE pph.prefixes (
	pref CIDR UNIQUE NOT NULL, 
	dbid SERIAL NOT NULL, 
	PRIMARY KEY (dbid)
);

CREATE TABLE pph.peers (
	dbid SERIAL NOT NULL, 
	name VARCHAR(30), 
	addr INET NOT NULL, 
	collector VARCHAR(30) NOT NULL,
        UNIQUE(addr,collector),
	PRIMARY KEY (dbid)
);
create index peers_n1 on pph.peers (addr,collector);

CREATE TABLE pph.ppms (
	dbid SERIAL NOT NULL,
	peer_dbid INTEGER NOT NULL, 
	prefix_dbid INTEGER NOT NULL, 
	last_timerange_dbid INTEGER NULL, 
	prefix_safi INTEGER, 
	PRIMARY KEY (dbid), 
        UNIQUE(prefix_dbid,peer_dbid),
	FOREIGN KEY(peer_dbid) REFERENCES pph.peers (dbid), 
	FOREIGN KEY(prefix_dbid) REFERENCES pph.prefixes (dbid)
);

CREATE TABLE pph.timeranges (
	dbid SERIAL NOT NULL, 
	ppm_dbid INTEGER NOT NULL,
	start_time TIMESTAMP WITHOUT TIME ZONE, 
	end_time TIMESTAMP WITHOUT TIME ZONE, 
	last_hop VARCHAR, 
	origin_as VARCHAR, 
	as_path VARCHAR ARRAY,
	PRIMARY KEY (dbid), 
	FOREIGN KEY (ppm_dbid) REFERENCES pph.ppms (dbid)
);



( run in 1.174 second using v1.01-cache-2.11-cpan-39bf76dae61 )